Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Wekker waar je 's ochtends echt je bed voor uit komt

Componenten en benodigdheden

Arduino Nano Elke
Ik ga de Nano Every gebruiken voor de eindmontage. Maar je kunt vrijwel elke andere Arduino gebruiken (in het begin gebruik ik een Mega2560).
× 1
Klokmodule
× 1
HC-SR501
Dit is de bewegingssensor
× 1
Zoemer
× 1

Apps en online services

Arduino IDE

Over dit project

Omdat het soms erg moeilijk is om 's ochtends op te staan, heb ik besloten om een ​​wekker te maken, waar je echt je bed voor uit komt. Het idee is om een ​​bewegingssensor te gebruiken, zodat de wekker weet of je weer in bed bent gegaan nadat je op de snooze-knop hebt gedrukt. Als dat het geval is, gaat het alarm weer af. Anders gaat de wekker niet meer af als je lang genoeg wakker was (bijvoorbeeld 2 minuten). Gedurende deze tijd moet je ongeveer voor de sensor zijn (binnen een paar meter) waar je je ochtendroutine al zou kunnen beginnen.

Montage

Voor dit project hebben we een klokmodule, een bewegingssensor, een zoemer, een kleine knop en een Arduino nodig.

Nu moet alles worden aangesloten:

  • de negatieve pin van de zoemer --> GND
  • de positieve zoemerpin --> D11
  • knop pin --> GND
  • de andere knoppen --> D9
  • bewegingssensor VCC --> 5V
  • uitgang bewegingssensor --> D7
  • bewegingssensor GND --> GND
  • klokmodule GND --> GND
  • klokmodule VCC --> 5V
  • klokmodule SDA --> SDA (pin 20 voor de Mega2560)
  • klokmodule SCL --> SCL (pin 21 voor de Mega2560)

Na de bedrading zoals weergegeven in het schema:

Code

Eerst moet je het ZIP-bestand downloaden van de codesectie. Dit is de bibliotheek voor de klokmodule. Als u problemen ondervindt bij het toevoegen van het bestand aan uw bibliotheek, kunt u de instructie volgen die ook in het codegedeelte staat.

Nu kunt u de code uploaden vanuit het softwaregedeelte. Direct nadat je de code hebt geüpload, moet je commentaar geven op de regel:

clock.setDateTime(__DATE__, __TIME__); 

Deze regel bevindt zich in de setup-functie.

Nu moet je de code direct opnieuw uploaden.

Als je er geen commentaar op geeft, wordt de tijd in de klokmodule gereset naar de laatste uploadtijd elke keer dat je het bord reset.

Daarna kunt u de tijd instellen waarop het alarm moet afgaan. U kunt het uur van de dag en de minuut instellen:

//--------------------------------------int set_hour =6;int set_minute =55;//-------------------------------------- 

Nu gaat het alarm op dit moment elke dag af. Het zou ook mogelijk zijn om de code te bewerken, zodat u een ander tijdstip voor het weekend of een aantal andere dagen kunt hebben.

Als u nu de wekker aanzet, wacht deze tot de ingestelde tijd. Vervolgens wordt de functie alarm() uitgevoerd. In eerste instantie begint het te piepen totdat u op de snooze-knop drukt. Daarna kijkt de bewegingssensor of er een persoon voor staat. Je moet een bepaalde tijd voor de sensor staan ​​en je moet ook een beetje bewegen, zodat de bewegingssensor wordt geactiveerd. Als u lang genoeg binnen het zicht van de bewegingssensor blijft, klinkt er een kort piepsignaal om u te vertellen dat het alarm nu voor die dag is uitgeschakeld en zal wachten tot de volgende ochtend.

Als u echter weer naar bed gaat in de tijd nadat u op de knop hebt gedrukt, gaat het alarm af en begint de hele procedure opnieuw. Deze wekker zorgt er dus voor dat je niet zomaar de wekker uitzet en weer naar bed gaat. Hopelijk ben je na de tijd dat je voor de sensor stond wakker genoeg om niet meer naar bed te gaan.

In deze regel kunt u de tijd (in minuten) aanpassen gedurende welke u voor de sensor moet zijn:

if(abs(dt.minute - minute)>=1){ //stel de tijdsperiode in waar je // moet zijn 

Sensoraanpassing

De bewegingssensor heeft enige aanpassing nodig om goed te werken voor deze wekker. Eerst moeten we de trigger-selectiejumper op de juiste plaats plaatsen. Het moet in de herhaalbare triggermodus staan!

Nu moet je ook de tijdvertraging en de gevoeligheid aanpassen. Voor mij werkte het het beste als ik de gevoeligheid op het maximum zette en de vertraging iets boven het minimum. De tijdvertraging bepaalt hoe lang na de laatste detectie van een persoon de output hoog is. Als de vertraging te kort is, is het erg moeilijk om te voorkomen dat het alarm opnieuw afgaat omdat de sensor je niet altijd zal detecteren. Aan de andere kant, als de vertraging te lang is, zal de wekker het niet merken als je weer naar bed gaat.

Nu maken we het compact

Na wat testen zijn we klaar om de wekker compacter te maken. Daarvoor gebruik ik een Arduino Nano Every, maar je kunt daar ook vrijwel elk ander Arduino-bord voor gebruiken.

We beginnen met alles aan elkaar te solderen volgens het tweede schema (het is in principe hetzelfde als voorheen alleen zonder het breadboard).

Na testen of alles nog werkt kunnen we een kast voor de wekker bouwen. Ik besloot om de koffer te maken van 3 mm balsahout omdat het heel gemakkelijk is om mee te werken. Hier zijn een paar foto's van het proces van het bouwen van de behuizing. De afmetingen van mijn koffer zijn 55 mm x 35 mm x 40 mm.

Ik heb een groot gat gemaakt voor de bewegingssensor en ook een gleuf voor de micro-USB-kabel en een opening voor de luidspreker.

De voltooide wekker:

Code

  • Wekker Arduino-code
  • Klokbibliotheek
Wekker Arduino-codeArduino
#include #include DS3231 klok;RTCDateTime dt;int knop =9;int pirPin =7; // Invoer voor HC-S501int pirValue; // Plaats om gelezen PIR-waarde op te slaan //--------------------------------------int set_hour =7;int set_minute =0;//-------------------------------------- ongeldige setup () { klok.begin(); pinMode (knop, INPUT_PULLUP); pinMode (LED_BUILTIN, UITGANG); //clock.setDateTime(__DATE__, __TIME__); // !!NA DE EERSTE UPLOADEN MOET U EEN COMMENTAREN OP DEZE REGEL. ANDERS KRIJG JE EEN VERKEERDE TIJD!! pinMode (pirPin, INPUT);}alarm ongeldig (int minuut){ bool button_pressed =false; bool wakker =false; bool beweging =false; while(!button_pressed){ ​​//het alarm is aan zolang de knop niet wordt ingedrukt voor(int i =0; i <4; i++){ tone (11, 523, 100); vertraging (100); toon (11, 784, 50); for(int i =0; i <20; i++){ if(digitalRead(button) ==LOW){ button_pressed =true; wakker =waar; dt =klok.getDateTime(); minuut =dt.minuut; } vertraging(65); } } } dt =klok.getDateTime(); minuut =dt.minuut; while(wakker){ beweging =false; dt =klok.getDateTime(); for(int i =0; i <30; i++){if(digitalRead(pirPin)){movement =true;}} digitalWrite(LED_BUILTIN, movement); if(!pirValue){ vertraging (5000); for(int i =0; i <40; i++){ if(digitalRead(pirPin)){movement =true;} } if(!movement){ alarm(minuut); // als er te lang geen beweging wordt gedetecteerd, wordt het alarm gereset } } if(abs(dt.minute - minute)>=1){ //stel de tijdsperiode in waarin je voor de sensortoon moet zijn (11, 698 , 50); vertraging (100); toon (11, 698, 50); digitalWrite(LED_BUILTIN, 0); wakker =vals; } vertraging(100); }} void loop() { dt =klok.getDateTime(); if(set_minute ==dt.minute &&set_hour ==dt.hour){ alarm(set_minute); } vertraging (10000);}
KlokbibliotheekArduino
Dit is een zipbestand voor de DS3231-bibliotheek. U moet dit als volgt downloaden en aan uw bibliotheken toevoegen:
open Arduino --> ga naar "Sketch" -> "Include Library" -> "Add .ZIP Library" --> ga naar het zipbestand en klik op ok
Geen voorbeeld (alleen downloaden).

Schema's

Ik ben vergeten een verbinding te maken met VCC en GND op het breadboard. Je hoeft dus alleen 5V op de Arduino aan te sluiten op de positieve rail en GND op de Arduino op de negatieve rail.

Productieproces

  1. De Troll's Hat die de manier waarop je over je auto denkt zal veranderen
  2. Eenvoudige wekker met DS1302 RTC
  3. Met de Industrie 4.0-training van SICK gaat u aan de slag met IO-Link op de PLC
  4. Factoren die het succes en de veiligheid van het ponsproces beïnvloeden
  5. Belangrijkste factoren die de resultaten van het vlakslijpproces beïnvloeden
  6. Een CNC-draaibank is misschien wel de enige machine die u nodig heeft!
  7. De horizontale bewerkingsapparatuur die u mogelijk nodig heeft:
  8. U wilt de beste soort korte staafaanvoer?
  9. De belangrijkste redenen waarom u kotterbewerkingen nodig hebt:
  10. Waterpomp Direct - die van invloed zijn op het circulatiesysteem
  11. Wat u moet weten over de wisselplaatfrees