- Vereiste materialen
- Regen sensor
- Werking van regensensor
- Schakelschema
- Code Uitleg
- Werking van een op Arduino gebaseerd regendetectiesysteem
Een eenvoudig regendetectiesysteem kan eenvoudig worden gebouwd door een Arduino te koppelen aan een regensensor. De sensor detecteert elke regen die erop valt en het Arduino-bord detecteert het en kan de vereiste acties uitvoeren. Een dergelijk systeem kan op veel verschillende gebieden worden gebruikt, zoals landbouw en automobielvelden. Neerslagdetectie kan worden gebruikt om het irrigatieproces automatisch te regelen. Ook continue regenvalgegevenskan boeren helpen dit slimme systeem te gebruiken om het gewas alleen automatisch water te geven als dat absoluut nodig is. Evenzo kunnen in de automobielsector ruitenwissers volledig automatisch worden gemaakt met behulp van het regendetectiesysteem. En de Home Automation Systemen kunnen ook regendetectie gebruiken om ramen automatisch te sluiten en de kamertemperatuur aan te passen. In deze tutorial zullen we een eenvoudige regensensor bouwen met Arduino met een zoemer. U kunt deze opstelling vervolgens gebruiken om er alles op te bouwen wat u maar wilt. Merk ook op dat de regensensormodule ook wel een regendruppelsensor of regenmetersensor of regenwatersensor wordt genoemd op basis van gebruik, maar ze verwijzen allemaal naar dezelfde sensor die in dit project wordt gebruikt en ze werken allemaal volgens hetzelfde principe.
We hebben ook een eenvoudig regenalarm en een automatische auto-wisser gebouwd door alleen 555 Timer te gebruiken, dat wil je misschien ook controleren als je geen Arduino wilt gebruiken. Dat gezegd hebbende, laten we teruggaan naar dit project en beginnen met het bouwen van onze Arduino-regenmeter.
Vereiste materialen
- Arduino UNO
- Regen sensor
- Zoemer
- Breadboard
- Draden aansluiten
Regen sensor
De Raindrops-module bestaat uit twee borden, namelijk Rain Board en Control Board.
De Rain board module bestaat uit twee koperen sporen, zo ontworpen dat ze onder droge omstandigheden een hoge weerstand bieden aan de voedingsspanning, en deze uitgangsspanning van deze module zal 5V bedragen. De weerstand van deze module neemt geleidelijk af ten opzichte van een toename van de nattigheid op het bord. Naarmate de weerstand afneemt, neemt ook de uitgangsspanning af ten opzichte van de vochtigheid op de module. De Rainboard-module bestaat uit twee pinnen die worden gebruikt om verbinding te maken met de besturingskaart, zoals hieronder weergegeven.
Besturingskaartmodule regelt de gevoeligheid en converteert de analoge uitgang naar digitale uitgang. Als de analoge waarde lager is dan de drempelwaarde van de besturingskaart, is de output digitaal laag, en als de analoge waarde hoger is dan de drempelwaarde, is de output digitaal hoog. Voor deze vergelijking en conversie wordt een LM393 OP-Amp Comparator gebruikt. Een Op-Amp-comparator is een interessant circuit dat kan worden gebruikt om twee verschillende spanningswaarden te vergelijken, we hebben dit circuit al in veel projecten gebruikt, zoals Smart Electronic Candle, Laser Security Alarm, Line Follower Robot en nog veel meer.
De Rain control-module die hieronder wordt getoond, bestaat uit 4 pinnen om de Arduino aan te sluiten, namelijk VCC, GND, D0, A0 en nog twee pinnen om de rainboard-module aan te sluiten. Samenvattend detecteert de rainboard-module het regenwater en wordt de controlboard-module gebruikt om de gevoeligheid te regelen en de analoge waarden te vergelijken en om te zetten naar digitale waarden.
Werking van regensensor
De werking van de regensensormodule is eenvoudig te begrijpen. Tijdens een zonnige dag biedt deze vanwege de droogte op de rainboard-module een hoge weerstand tegen de voedingsspanning. Deze spanning verschijnt op de uitgangspen van de regenbordmodule als 5V. Deze 5V wordt gelezen als 1023 als deze wordt gelezen door een analoge pin van de Arduino. Tijdens regen zorgt het regenwater voor een toename van de nattigheid op het regenscherm, wat weer resulteert in een afname van de geboden weerstand voor de aanvoer. Naarmate de weerstand geleidelijk afneemt, begint de uitgangsspanning af te nemen.
Als het rainboard helemaal nat is en de weerstand die het biedt minimaal is, zal de uitgangsspanning zo laag mogelijk zijn (circa 0). Deze 0V wordt gelezen als 0-waarde als deze wordt gelezen door een analoge pin van de Arduino. Als de rainboard-module gedeeltelijk nat is, zal de output van deze rainboard-module zijn in verhouding tot de weerstand die deze biedt. Als de weerstand die wordt geboden door de rainboard-module zodanig is dat de output 3V is, zal de afgelezen analoge waarde 613 zijn. Formule om ADC te vinden kan worden gegeven door, ADC = (analoge spanningswaarde X 1023) / 5. Door deze formule te gebruiken, kunt u elke analoge spanning omzetten in een analoge Arduino-leeswaarde.
Schakelschema
Het onderstaande schakelschema toont u de circuitaansluitingen voor de Rain Drop Sensor met Arduino. Het ontwerp is gedaan met proteus, de fysieke modules zijn vergelijkbaar met de modules die in het schakelschema worden getoond.
De regenmetermodule, die wordt weergegeven in het schakelschema, wordt aangesloten op de besturingskaart. De VCC-pin van de besturingskaart is verbonden met de 5V-voeding. De aardpen is verbonden met aarde. Indien nodig is de D0-pin verbonden met een willekeurige digitale pin van de Arduino, en die pin moet in het programma als een outputpin worden aangegeven. Het probleem dat we tegenkomen met de D0-pin is dat we de exacte waarde van de uitgangsspanning niet kunnen krijgen. Als de uitgang de drempelspanning overschrijdt, kan de regeleenheid de verandering in de uitgang waarnemen. We moeten de zoemer laten werken, zelfs als er een aanzienlijke verandering is in de uitgangsspanning in de rainboard-module. Om deze redenen is de A0-pin verbonden met de analoge pin van Arduino, waardoor het volgen van de outputverandering eenvoudig is. De zoemer, die wordt gebruikt als signaal naar de gebruiker,kan worden aangesloten op elke digitale pin van de Arduino. Als de zoemer meer dan 5V nodig heeft, probeer dan een relaiscircuit of een transistor aan te sluiten en vervolgens de belasting erop aan te sluiten.
Code Uitleg
De Arduino-code voor de regensensor is geschreven met de Arduino IDE. De volledige code voor dit project staat aan het einde van de pagina.
#define regenval A0 #define buzzer 5 int waarde; int set = 10;
Pin A0 definiëren als regenval en pin 5 als zoemer en variabele "waarde" en "set" declareren als gehele getallen en de variabele ingestelde waarde instellen op 10. Deze waarde kan worden gewijzigd volgens het vereiste werkingsniveau. Als u wilt dat de zoemer activeert, stelt u deze in op een minimumwaarde, zelfs als er weinig regen valt
void setup () {Serial.begin (9600); pinMode (zoemer, OUTPUT); pinMode (regenval, INPUT); }
Initialiseren van de seriële communicatie en instellen van de zoemer. De regenpin instellen als een outputpin en inputpin.
void loop () {waarde = analogRead (regenval); Serial.println (waarde); waarde = kaart (waarde, 0,1023,225,0);
de functie analogRead leest de waarde van de regensensor uit. De functiekaart brengt de waarde van de regensensor van de uitgangspen in kaart en kent een waarde toe aan de variabele, variërend van 0 tot 225.
if (waarde> = set) {Serial.println ("regen gedetecteerd"); digitalWrite (zoemer, HIGH);
Als de uitgelezen sensorwaarde groter is dan de ingestelde waarde, komt het programma in de lus, drukt het bericht af op seriële monitor en schakelt de zoemer in
anders {digitalWrite (buzzer, LOW);
Het programma voert de else-functie alleen in als de waarde kleiner is dan de ingestelde waarde. Deze functie schakelt de zoemer uit als de ingestelde waarde hoger is dan de waarde van de sensor, die aangeeft dat er geen regen is.
Werking van een op Arduino gebaseerd regendetectiesysteem
Dit systeem werkt zo dat bij regen het regenwater als trigger fungeert, die de zoemer inschakelt. In de Rain Drop Sensor Arduino-code hebben we gedefinieerd dat pinnen 5 en A0 zoemer en regen zijn. Door dit te doen, kunnen we de pinnen in het gedefinieerde deel van de functie wijzigen en blijft het resterende deel van de code onaangeroerd. Hierdoor kan de programmeur de pinnen gemakkelijk bewerken.
In de lege lus leest de opdracht analogRead de waarde van de sensor. Op de volgende regel drukt het commando Serial.println (waarde) de waarde af op de seriële monitor. Dit is handig tijdens het debuggen. De kaartfunctie brengt de inkomende waarde tussen 0-225 in kaart. Het functieformaat voor de kaart is een kaart (waarde, min. Waarde, maximumwaarde, waarde die moet worden toegewezen voor minimumwaarde, waarde die moet worden toegewezen voor maximumwaarde). De zoemer wordt AAN of UIT geschakeld, afhankelijk van de ingestelde waarde en de output van de sensor. Deze waarde wordt in de if-functie vergeleken met de ingestelde waarde. Als de waarde groter is dan de ingestelde waarde, wordt de zoemer ingeschakeld. Als de waarde lager is dan de ingestelde waarde, wordt de zoemer uitgeschakeld.
De volledige werking is te vinden in de onderstaande video. Dit is een van de vele toepassingen, hetzelfde principe zal worden gezien in ruitenwissers, andere domotica, landbouwsectoren, enz. Ik hoop dat je het project begreep en ervan genoten hebt om iets nuttigs te bouwen. Als je vragen hebt, gebruik dan de commentaarsectie hieronder of gebruik onze forums voor andere technische vragen.