Stap 1: Hoe het werkt?
Dus na het bekijken van de invoering moet u wellicht een idee over het hele project. Maar voordat het gebouw, is het belangrijk om te weten van de werking van dit project, dat wil zeggen, de sensoren gebruikt in dit project, de code gebruikt voor het uitvoeren van dit ding, en andere minder belangrijke dingen.
Voeding:
De voeding in dit project gebruikt bestaat voornamelijk uit een transformator en een brug gelijkrichter. De transformator verlaagt de hoge wisselspanning van 240v ac naar 12v ac en brug gelijkrichter zet deze om in dc. Het heeft ook een spanningsregelaar die dat dc 12v naar 5v converteert.
Het stopcontact:
De beige kleur stopcontact aanwezig op de doos is de plek waar u al uw elektrische apparaten kunt aansluiten. Een vraag komt dat het stopcontact 240v ac geeft aan de macht van de toestellen als de arduino vertelt om te doen. Maar de arduino geeft alleen 5v. Dus hoe is dit mogelijk om 240v ac met een laag signaal voor 5v dc? Dit wordt mogelijk gemaakt met behulp van een apparaat genaamd relay dat als een switch die is fungeert ingeschakeld wanneer een laag signaal wordt ontvangen via het. Deze schakeloptie kan omgaan met een groot tekort dus kunnen worden gebruikt om deze socket gemakkelijk.
Sensoren:
Zoals al verteld, heeft het project in totaal zes sensoren gebruikt. Hieronder is een beschrijving van hoe ze werken.
- Temperatuursensor (LM35): geeft een spanning op één van de pinnen wordt hoog of laag afhankelijk van de temperatuur van de sensor. De arduino leest de spanning en converteert deze naar leesbare temperatuur.
- Vochtigheid sensor (DHT11): geeft een bepaalde kloksignaal van zowel de temperatuur en de vochtigheid. De arduino converteert deze signalen naar leesbare temperatuur en vochtigheid. (Hier alleen gebruikt voor vochtigheid).
- Lichtsensor (LDR): geeft een hoge weerstand wanneer geplaatst in donkere en lage weerstand wanneer geplaatst op een plek vol van licht. De wijzigingen van de weerstand met verandering in lichtintensiteit. De arduino leest de weerstand.
- Clap sensor (Electret microfoon): een energiebesparende signaal wanneer een luid geluid wordt gedetecteerd. De arduino detecteert de laag signaal en wordt de hoge uitlaat ingesteld.
- Bewegingssensor (PIR Sensor): Detecteert de beweging van een mens en geeft een hoge output wanneer gedetecteerd. Eigenlijk detecteert dat straling die door een mens.
- Aanwezigheid Sensor (ultrasone afstand Sensor - HC-SR04): Zendt een echografie dat gaat, weerspiegelt en terugkomt. Arduino meet de tijd genomen door het en geeft de afstand. Wanneer de afstand laag wordt, dat betekent dat u voor het aanwezig zijn, zodat het detecteert uw aanwezigheid.
Code:
Het proces begint wanneer de arduino schakelaars op en u een modus via knoppen selecteren vraagt door het weer te geven op het LCD-scherm. Het deel van de onderstaande code verwerkt en de modus die u hebt geselecteerd weergegeven.
<p>while(digitalRead(11) == LOW) <br>{ if(digitalRead(10) == HIGH) { delay(500); count++; } lcd.clear(); lcd.print("Choice:"); lcd.print(count); delay(100); }</p>
11 is de pin verbonden met knop 2. Dus de eerste regel betekent dat totdat u druk niet op de tweede knop (until it's laag) de lus gaan op voor eeuwig lopen zal. En als pin 10 hoog is (knop 1 ingedrukt) het zal de graaf variabele door een vooraf. Op deze manier telt de lus het aantal keren dat de knop wordt ingedrukt. Dit ding wordt ook gebruikt voor het instellen van de drempel die je kan zien in sommige delen van de code.
Daarna is het grootste deel van de code, de "switch-statement', die overschakelt op een volgens de waarde van count. Het is geschreven als:
<p>switch(count)</p>
Daarna is de case-statement dat het deel van switch uitmaakt. Die verklaring genoemde eronder als de waarde van de variabele van de schakelaar gelijk aan de waarde vermeld na geval is wordt uitgevoerd. Voor bijvoorbeeld als ik schrijf:
switch(count) { case 1: { statement a; } break; case 2: { statement b; } break; }
Dit betekent dat als de waarde van count 1 is, het programma verklaring uitvoeren zal een en als er twee, het programma verklaring 2 zal uitvoeren. U kan de zaak verklaringen in de code als volgt. Zodat de waarde aanwezig na elke case-instructie in de belangrijkste code is eigenlijk hij code niet. zoals:
<p>case 1: // Toggle mode<br> { delay(1000); Serial.println("Toggle mode selected"); Serial.println("Press the button to switch the outlet on/off"); int a8 = 0; while(a8 == 0) { lcd.clear(); lcd.print("Curr. State: "); lcd.print(state); lcd.setCursor(0,1); lcd.print("Press Button"); if(digitalRead(10) == HIGH && state3 == 0) // if button pressed and outlet is off, turn it on { digitalWrite(13, HIGH); state = "ON"; state3++; Serial.println("Switched on"); delay(1000); } if(digitalRead(10) == HIGH && state3 == 1) // if button pressed and outlet is on, turn it off { digitalWrite(13, LOW); state = "OFF"; state3--; Serial.println("Switched off"); delay(1000); } delay(100); } } break;</p>
De rest van de code is vrij ongecompliceerd en gemakkelijk te begrijpen.