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 >> Industriële technologie

Automatisch plantwater- en irrigatiesysteem - Circuit-, code- en projectrapport

Automatische installatie Water geven Systeem – Volledige broncode, circuit en projectrapport – PDF-download

Inleiding

In de dagelijkse bedrijfsvoering zijn de planten water geven de belangrijkste culturele praktijk en de meest arbeidsintensieve taak. Het maakt niet uit welk weer het is, of het nu te warm en koud of te droog en nat is, het is van cruciaal belang om de hoeveelheid water die de planten bereikt te beheersen. Het zal dus effectief zijn om een ​​idee te gebruiken van een automatisch plantenbewateringssysteem dat planten water geeft wanneer ze het nodig hebben. Een belangrijk aspect van dit project is dat:“wanneer en hoeveel water geven”. Om handmatige activiteiten voor de mens om de plant water te geven, te verminderen, wordt een idee van een plantwatergeefsysteem aangenomen. De methode die wordt gebruikt om het bodemvochtgehalte continu te monitoren en om te beslissen of water nodig is of niet, en hoeveel water er nodig is in de bodem van de plant. Dit project kan worden gegroepeerd in subsystemen zoals; voeding, relais, magneetventiel, Arduino GSM schild, Bodemvochtsensor en LCD.

In wezen is het systeem zo ontworpen en geprogrammeerd dat de bodemvochtsensor het vochtgehalte van planten op een bepaald moment waarneemt, als het vochtgehalte van de sensor lager is dan de gespecificeerde waarde van een drempel die vooraf is gedefinieerd op basis van de waterbehoefte van de specifieke plant, dan wordt de gewenste hoeveelheid water toegevoerd totdat deze de vooraf gedefinieerde drempelwaarde bereikt.

Het systeem rapporteert de huidige status en stuurt een herinneringsbericht over het water geven van planten en het toevoegen van water aan de tank. Al deze meldingen kunnen worden gedaan met behulp van het Arduino GSM-schild.

  • Gerelateerd project: Regenalarmcircuit - Sneeuw-, water- en regendetectorproject

Doel van het project:

Sinds tegenwoordig, in het tijdperk van geavanceerde technologie en elektronica, zou de levensstijl van de mens slimmer, eenvoudiger, gemakkelijker en veel handiger moeten zijn. Dus daarom; er is behoefte aan veel geautomatiseerde systemen in de dagelijkse routine van mensen om hun dagelijkse activiteiten en banen te verminderen. Hier is een idee van zo'n systeem, genaamd automatisch plantwatergeefsysteem, erg handig. Omdat veel mensen veel problemen hebben met het water geven van de planten in de tuin, vooral als ze niet thuis zijn. Dit model maakt gebruik van sensortechnologieën met microcontroller om een ​​slim schakelapparaat te maken om miljoenen mensen te helpen.

In zijn meest basale vorm is het systeem zo geprogrammeerd dat een bodemvochtsensor die het vochtniveau van de plant op een bepaald moment waarneemt, als het vochtniveau van de sensor kleiner is dan de gespecificeerde drempelwaarde die vooraf is gedefinieerd volgens de specifieke plant, dan wordt de gewenste hoeveelheid water aan de plant geleverd totdat het vochtniveau de vooraf gedefinieerde drempelwaarde bereikt. Het systeem omvat een vochtigheids- en temperatuursensor die de huidige atmosfeer van het systeem bijhoudt en invloed heeft wanneer er water wordt gegeven. Magneetventiel regelt de waterstroom in het systeem, wanneer Arduino de waarde van de vochtsensor leest, activeert het de magneetventiel volgens de gewenste toestand. Bovendien rapporteert het systeem de huidige status en verzendt het een herinneringsbericht over het bewateren van planten en ontvangt het een sms van de ontvanger. Al deze meldingen kunnen worden gedaan met behulp van het Arduino GSM-schild.

  • Gerelateerd project:circuitdiagram waterniveau-indicator - twee eenvoudige projecten

Achtergrond van het systeem

Het is in de school uit de wetenschappelijke boeken bestudeerd dat de planten in veel opzichten zeer noodzakelijk zijn voor de hele mensheid. Omdat ze het milieu schoon houden door van tijd tot tijd verse zuurstof te produceren. Het automatische bewateringssysteem voor planten is veel meer geworden met de opkomst van alledaagse voorwerpen die worden verbonden met de geavanceerde technologieën, deze systemen worden in een groeiend tempo geïmplementeerd. Plaatsen zoals woningen maar ook op industrieel niveau. Het belangrijkste gebruik van deze systemen is efficiëntie en gebruiksvriendelijk.

Het bewateringssysteem voor planten biedt plantenliefhebbers de mogelijkheid om hun eigen plant weg te halen terwijl ze weg zijn - door het gebruik van efficiënte en betrouwbare componenten zoals verschillende soorten sensortechnologieën.

Er zijn verschillende/ongecompliceerde soorten bewateringssysteem voor binnenplanten, afhankelijk van het benodigde automatiseringsniveau.

  • Gerelateerd project: Slim irrigatiesysteem – schakelschema en code

In het definitieve pdf-rapport (gratis downloadbare link wordt aan het einde van de inhoud van het bericht gegeven), worden de volgende secties in detail beschreven.

  • Plantenbewateringsbollen en spikes
  • Indoor druppelbewateringssysteem
  • Sensortechnologie
  • Temperatuur- en vochtigheidssensoren
  • Temperatuursensor
  • Vochtigheidssensoren
  • Bodemvochtsensoren
  • Bi-metalen thermostaat
  • Thermistor
  • Resistieve temperatuurdetectoren (RTD)
  • Thermokoppels
  • Sensor-IC's, LM35
  • Digitale temperatuursensor (ADT7301)
  • DHT11 en DHT22
  • GSM-module
  • GSM-architectuur
  • Estafette
  • Transistor
  • Hitachi 16×2 LCD

Gerelateerd project:wat is ATMega-microcontrollers en hoe maak je er een LED-project mee?

Producten en componentenspecificaties

Vereiste-ID SRS-GSM-001
Titel GSM-module
Beschrijving Het systeem bevat de GSM-module, die een waarschuwings-sms naar de ontvanger stuurt en een sms van de gebruiker ontvangt.
Versie Versie 1.0
Vereiste-ID SRS-Microcontroller -001
Titel ATmega328p
Beschrijving Het systeem bevat de microcontroller die gewoonlijk bij Arduino Uno wordt geleverd. deze microcontroller leest de meetwaarde van de sensor en bestuurt het totale systeem.
Versie Versie 1.0
Vereiste-ID SRS-Temperatuur en vochtigheid-001
Titel DHT11
Beschrijving Het systeem bevat de temperatuur- en vochtigheidssensor, die de huidige temperatuur- en vochtigheidswaarden van de omgeving bijhoudt en de meetwaarde terugstuurt naar de microcontroller.
Versie Versie 1.0
Vereiste-ID SRS-Moisture-001
Titel Grove Bodemvochtsensor
Beschrijving Het systeem bevat de bodemvochtsensor, die de meting uit het vocht van de bodem haalt en de meting terugstuurt naar de microcontroller.
Versie Versie 1.0
Vereiste-ID SRS-LCD-001
Titel Hitachi 16×2 LCD
Beschrijving Het systeem bevat de LCD-interface voor de gebruiker, die de meting weergeeft die door de verschillende sensoren in het systeem is genomen.
Versie Versie 1.0

Gerelateerd bericht:Arduino-programmering:wat is Arduino en hoe programmeer je het?

Arduino-gebaseerd geautomatiseerd plantenbewateringssysteem:

Automatisch blokschema voor bewatering van planten

Schematisch schakelschema van automatisch plantwater- en irrigatiesysteem

Volgens dit systeem zijn er twee functionele componenten in dit project, namelijk een vochtsensor en een motor/waterpomp. In zijn meest basale vorm meet de vochtsensor het niveau van het bodemvocht. Vervolgens levert de motor/waterpomp water aan de planten.

Klik op afbeelding om te vergroten

Schema hierboven in bovenstaande afbeelding beschrijft het algemene gedrag van het systeem. Project gebruikt Arduino Uno om de motor te besturen. Het bestaat uit een H-brug die de stroom van de servomotor regelt, d.w.z. klok- of antiklokrichting. Vochtsensor meet het niveau van de grond en stuurt het signaal naar Arduino, dan zal Arduino de servomotor openen als water moet worden gegeven. Vervolgens levert de motor/waterpomp water aan de planten totdat het gewenste vochtniveau is bereikt.

Vorm het prototype in bovenstaande figuur. De vochtsensor detecteert het vochtniveau en stuurt het signaal naar Arduino en vervolgens opent Arduino de waterpomp met behulp van de H-brug en geeft het de specifieke plant water. Dit wordt gedaan met behulp van Arduino IDE-software.

Gerelateerd project:Elektronisch project verkeerslichtregeling met IC 4017 &555 Timer

Projectontwerp

In deze sectie wordt gesproken over al het werk dat is voltooid in software-ontwerp en hardware-ontwerp. Ook wordt er inzicht gegeven in wat het systeem inhoudt en waarom er voor verschillende componenten is gekozen om een ​​volledig geautomatiseerd Plantenwatergeefsysteem te maken. Beschouw een diagram in de afbeelding dat het conceptuele basismodel van het systeem toont met behulp van gekozen componenten.

De functionaliteit van het blokschema in de bovenstaande afbeelding van het geautomatiseerde plantwatergeefsysteem wordt hieronder geïllustreerd:

  • Het systeem bevat een GSM-module die SMS naar de ontvanger verzendt en SMS ontvangt van de ontvanger.
  • Het maakt gebruik van bodemvocht-, temperatuur- en vochtigheidssensoren.
  • Het bevat ook magneetventielen en een magneetcircuit dat de waterstroom door de magneetventielen regelt.
  • De vochtsensor wordt gebruikt om het vochtgehalte van de betreffende plant te bepalen. Dit vochtgehalte wordt gelezen door de microcontroller, terwijl deze ronddraait en ziet of de waarde van de sensor boven de drempelwaarde ligt of niet. Als de waarde boven de vooraf gedefinieerde waarde ligt, is de GSM-module klaar om een ​​SMS naar de ontvanger te sturen.
  • De temperatuur- en vochtigheidssensor wordt gebruikt om te bepalen of het te warm is voor de plant of de vochtigheid te hoog is om te verwerken. Dit wordt gelezen door de ATmega328p (Lees meer over Wat is ATmega) chip op Arduino Uno. deze meting wordt gebruikt om te bepalen of alle solenoïdes in het systeem aan of uit moeten zijn.

Meer details over de componenten zijn te vinden in het pdf-bestand (hieronder)

Gerelateerd project:wat is Raspberry Pi? Projecten maken met Raspberry Pi

Hardwareontwerp

Sensorschema

De onderstaande afbeelding toont het schema van het sensorcircuit. Zoals alle sensoren verbonden met de Arduino analoge pin A0-A3. Pin A0 was gereserveerd voor de temperatuur- en vochtigheidssensor, terwijl pinnen A1-A3 waren gereserveerd voor vochtsensoren. Alle sensoren hebben een gemeenschappelijk vermogen van 5V en aarde, zoals weergegeven in het schema.

LCD-schema :

De onderstaande afbeelding toont het schema van het LCD-scherm. Digitale pin 8 - 13 was gereserveerd voor het LCD-scherm, zoals weergegeven in het schema. Pin 1 en Pin 3 zijn de voeding en aarde, terwijl pin 2 de contrastpin op het LCD-scherm is die het contrast regelt en verbonden is met de potentiometer. Houd er bij het aansluiten van het LCD-scherm rekening mee dat digitale pinnen van Arduino en datapinnen van LCD in de juiste volgorde moeten worden aangesloten, anders geeft het LCD-scherm alleen rommel op het scherm weer.

Magneetschema

Het onderstaande diagram in onderstaande afbeelding toont het schakelschema van het magneetcircuit. Digitale pin 4 – 7 was gereserveerd voor de Solenoids. Omdat het circuit bestaat uit relais, transistors, weerstanden en LED's in plaats van de solenoïde (CadStar heeft geen Solenoid-symbool). In het schema gebruikt relais 5V. Terwijl 5V ook in het NO-kanaal van de relais gaat, komt dit omdat in de schematische LED's de solenoïde wordt vervangen die werkt op (5V), gevolgd door een weerstand van 220 ohm.

  • Gerelateerd project:op spraakherkenning gebaseerd domoticasysteem

Dus wanneer de spanning op de basis van de transistors wordt gezet. Transistor schakelt naar aarde waardoor de spoel van het relais gemagnetiseerd wordt en schakelt zichzelf over naar normaal gesloten kanaal, waardoor de LED die op dat specifieke relais is aangesloten gaat branden en wanneer de spanning op de transistorbasis daalt, schakelt de transistor zichzelf terug naar normaal en de spoel van het relais wordt gedemagnetiseerd en relais schakelt weer naar GEEN kanaal, waardoor LED weer uit gaat.

Nadat alle schema's van het circuit zijn voltooid, is de volgende stap om ze op het Veroboard te bouwen. Het is belangrijk om het circuit van tevoren op het stripboard-lay-outplanningsblad te ontwerpen, omdat er bepaalde principes zijn voor het ontwerpen van een circuit op Veroboard, dat als volgt is:

  1. Markeer eerst de Vs- en GND-stroomlijn rechtsboven op het planningsblad voor de lay-out van het stripboard.
  2. Vergeet niet om het spoor tussen de pinnen van een IC te knippen. Markeer de sneden in het diagram met een X.
  3. Probeer de weerstand en axiale condensatoren plat op het stripbord te leggen. Weerstanden vereisen meestal een opening van 4 gaten, condensator een opening van 8 gaten.
  4. Nummers zo mogelijk de pin van de IC's. De onderkant van het Veroboard bestaat uit de koperen rails waarin de spanning loopt en werkt horizontaal. Verschillende Veroboard-ontwerpen van de bovenstaande schema's worden hieronder weergegeven:

Gerelateerd project:Volautomatische waterniveauregelaar met SRF04

Softwareontwerp

Nadat de hardware klaar is, is het tijd om de hardware met de software te testen. In deze sectie wordt de implementatie van het softwareontwerp in detail beschreven voor elk van de verschillende automatiseringen/technologieën die binnen het systeem worden gebruikt. Dit omvat de Arduino-code die is geschreven en geüpload naar de Arduino.

Het eerste wat gedaan werd, was om het solenoïdecircuit te laten werken en hoe de solenoïde zou werken vanuit het perspectief van de microcontroller. Hiervoor is een klein stroomschema gemaakt dat te zien is onder het gedeelte Softwarestroom in bovenstaande afbeelding.

Arduino IDE werd gebruikt om de software op de Arduino te uploaden. Voor het basismagneetcircuit is een eenvoudig programma geschreven dat in principe elke 1 sec de LED knippert. digitale pin 4, 5, 6 en 7 werd aanvankelijk gedefinieerd die het programma en de schakeling testen. Dus wanneer het programma wordt uitgevoerd, voert het alle basisinitialisaties uit, definieert het alle uitvoerpinnen in void setup () en springt vervolgens in de void-lus () waar het constant draait en elke seconde knippert met LED's.

Daarna werd een klein programma geschreven en geüpload naar de Arduino dat de meetwaarden van de verschillende sensoren ophaalt en op het LCD-scherm afdrukt. Hiervoor is een klein stroomschema gemaakt dat ook te zien is onder het softwarestroomgedeelte in de gegeven figuur. Wanneer het programma in de lege lus () gaat, ontvangt het de meetwaarden van de sensor en voert alle basisberekeningen uit en drukt ze af op het LCD-scherm.

Gerelateerd basiselektronicaproject:automatisch regelsysteem voor straatverlichting met LDR &BC 547-transistor

Het volgende is het uploaden van de software voor de GSM-module naar de Arduino, waardoor GSM met de microcontroller zou kunnen communiceren. Er is aanvankelijk een modemtest gedaan die alle basisinitialisatie en bibliotheken voor de GSM uitvoert en het IMEI-nummer krijgt en kijk of de modem goed functioneert zodra hij met Arduino begint te communiceren. De volgende stap is de netwerkverbindingstest die in feite de GSM initialiseert en al het andere netwerk weergeeft dat de GSM-module kan ondersteunen.

Zodra de GSM-module is getest en naar behoren functioneert, is het tijd om de GSM-module te gebruiken om met de ontvanger te communiceren, wat inhoudt dat hij een sms naar de ontvanger stuurt en een sms van hem ontvangt. Om dat te doen, werd een ander eenvoudig Arduino-bedradingsprogramma geschreven en geüpload naar de Arduino. Het programma initialiseerde de GSM en stuurde een sms naar de ontvanger, terwijl er een ander Arduino-programma werd geschreven waarin GSM de sms van de eindgebruiker ontvangt.

Eindelijk, als al het softwareontwerp klaar is, is het tijd om al het softwareontwerp samen te voegen en een definitieve werkende software voor het systeem te bouwen. Er werden verschillende algoritmebenaderingen toegepast die te zien zijn onder het gedeelte Softwarestroom om de uiteindelijke software te laten werken en doet wat het zou moeten doen. De bovenstaande afbeelding toont de werking van de uiteindelijke software, waar het lezen, sms'en, ontvangen van sms'jes doet en begint te doen wat het eerder deed.

Opmerking:alle softwarecode is te zien in de bijlage hieronder.

OPMERKING:alle softwarecode kan worden bekeken in de appendix. De output van de modemtest en netwerkverbindingstest is niet opgenomen in het rapport omdat het eigenlijke rapport werd gedaan na het indienen van hardware.

Gerelateerd project:Hoe maak je basis elektrische en elektronische projecten in LabVIEW?

Projectconstructie en softwaretesten

Nadat al het hardware- en softwareontwerp met succes is voltooid, is het tijd voor de constructie en het testen van het project. In dit gedeelte van het rapport worden details gegeven over hoe de verschillende hardware-ontwerpen worden geïmplementeerd en getest. Deze sectie bespreekt ook of er een verborgen probleem in de softwarecode was dat belangrijk was om problemen op te lossen en te evacueren en om het project met succes te bouwen. het stapsgewijze proces is te zien in het volledige projectrapport in pdf-bestand hieronder, zoals de constructie- en testprocedure.

Softwaretesten

Softwaretestfase is ook een belangrijk aspect van de projectontwikkeling. Softwaretesten is een procedure voor het uitvoeren van een programma of toepassing met als doel de softwarefouten te vinden. Het kan ook worden uitgedrukt als het proces van valideren en verifiëren dat een softwareprogramma of applicatie voldoet aan de technische vereisten, werkt zoals geaccepteerd en kan worden uitgevoerd met een soortgelijk handelsmerk. Om de software te testen werden verschillende benaderingen gevolgd. Er is een document met de specificatie van softwarevereisten (SRS) geschreven waarin het verwachte gedrag van een softwaresysteem volledig wordt behandeld.

Gerelateerd project:Clap Switch Circuit Elektronisch project met 555 Timer

Vereiste-ID SRS-sensor -010
Titel Sensor
Beschrijving Sensoren in het systeem nemen de metingen en sturen deze terug naar de microcontroller.
Versie V 1.0
Vereiste-ID SRS-Data -020
Titel Gegevensweergave
Beschrijving Wanneer de gebruikers proberen de uitlezing van het systeem te krijgen. Het scherm zou gegevens aan de gebruiker moeten hebben getoond, bijvoorbeeld:temperatuur en vochtigheidswaarde gevolgd door vochtigheidsmetingen.
Versie V1.0
Vereiste-ID SRS- Microcontroller -030
Titel Microcontroller
Beschrijving Microcontroller in het systeem fungeert als een brein van het systeem dat alles in het systeem beheert
Versie V1.0
Vereiste-ID SRS-Latch -040
Titel Vergrendeling
Beschrijving Latch in het systeem breidt de digitale pinnen voor de microcontroller uit
Versie V1.0
Vereiste-ID SRS-GSM-050
Titel GSM
Beschrijving Het systeem reageert door een sms-waarschuwing naar de ontvanger te sturen wanneer de microcontroller dit zegt.
Versie V1.0

Na het schrijven van het SRS-document ging het softwareontwerp over naar de statische testfase, inclusief het beoordelen van het document. Hier vindt verificatie van de eisen plaats. Er zijn vier verschillende soorten verificatiemethoden die hieronder worden gedefinieerd:

  1. Inspectie (I): controle of visuele verificatie
  2. Analyse (A):verificatie op basis van analytisch bewijs
  3. Demonstratie (D):verificatie van operationele kenmerken, zonder kwantitatieve meting.
  4. Test (T):verificatie van kwantitatieve kenmerken met kwantitatieve meting. Voor elke eis van het SRS-document wordt een verificatiemethode gedefinieerd met afkortingen van I, A, D en T.

Verificatie:

Vereiste-ID Vereiste Titel Methode
REQ-010 Controleer of de sensoren van het systeem metingen krijgen I
REQ-020 Controleer of de gegevens op het scherm worden weergegeven. D
REQ-030 Er is geverifieerd dat de microcontroller van het systeem goed beheert of werkt, aangezien het 100% resultaat geeft voor elk verzoek. D
REQ-040 Controleer of het vergrendelingscircuit deed wat het zou moeten doen. Dat kost sin 3 invoer en spuugt 8 pinnen uit A
REQ-050 Controleer of de sms is verzonden en ontvangen via GSM D

Resultaten

Zoals alle testen met bevredigend resultaat. Aangezien er geen specifiek resultaat is dat moet worden gedocumenteerd. Omdat het systeem werkt met een vochtigheids- en DHT11-sensor (temperatuur en vochtigheid) die de meting uitvoert op basis van de huidige kamertemperatuur en vochtigheid. Uitlezingen van de vochtsensor in het circuit zijn ook afhankelijk van wat het huidige vochtniveau is voor de plant. Anders was het algehele resultaat van het circuit in termen van functionaliteit goed voor de motivatie.

Verwante post:Arduino PWM-programmering en zijn functies in Arduino

Definitieve en volledige softwarecode voor automatische bewatering van planten en irrigatiesystemen

Opmerking: Meer codes met betrekking tot het project zijn te vinden in het pdf-bestand, zoals voorbeeldcode om magneetventiel te testen, code voor het testen van systeemsensoren, gsm-modemtestcode, gsm-netwerkverbindingscode, gsm verzendt sms-waarschuwingscode, gsm ontvangt sms-code,

Definitieve projectcode voor automatische bewatering van planten

#include <dht.h>
#define dht_dpin A0
dht DHT;
//———————–
#include <LiquidCrystal.h>
LiquidCrystal lcd (8, 9, 10, 11, 12, 13);
//———————————-
int plantPotMoisture[3] = {A1, A2, A3};
//———————
#include <GSM.h>
#define PINNUMBER “”
GSM gsmAccess; // include a ‘true’ parameter for debug enabled
GSM_SMS sms;
char remoteNumber[] = “0899506304”;
String moistureMessage = “Moisture is Low on sensor: “;
String SMS_Alert = “Sending SMS!”;
String humidityMsg = “Humidity is High. Open All Solenoids”;
String tempMsg = “Temperature is too HIGH!..Open ALl Solenoids “;
String messageBuffer = “”;
char senderNumber[20];
String stringOne = “Opens1”;
String stringTwo = “Opens2”;
String stringThree = “Opens3”;
String stringFour = “OpenAll”;
//—————
#define solenoidData 5
#define solenoidClockster 4
#define solenoidLatch 6
//—————
const int master = 0;
const int slave1 = 1;
const int slave2 = 2;
const int slave3 = 3;
boolean takeReadings = true;
int serialSolenoidOutput = 0;
void setup()
{
pinMode(solenoidData, OUTPUT);
pinMode(solenoidClockster, OUTPUT);
pinMode(solenoidLatch, OUTPUT);
digitalWrite(solenoidLatch, HIGH);
digitalWrite(solenoidLatch, LOW);
shiftOut(solenoidData, solenoidClockster, MSBFIRST, 0);
digitalWrite(solenoidLatch, HIGH);
//————————-
Serial.begin(9600);
lcd.begin (16, 2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Wait Until”);
lcd.setCursor(0, 1);
lcd.print(“GSM Initialized!”);
boolean notConnected = true;
while (notConnected)
{
if (gsmAccess.begin(PINNUMBER) == GSM_READY)
notConnected = false;
else
{
Serial.println(“Not connected”);
delay(1000);
}
}
}
void loop()
{
if (takeReadings)
{
moistureSensor();
TempAndHumidity ();
if (DHT.humidity > 50 || DHT.temperature > 25 && takeReadings )
{
takeReadings = false;
if (DHT.humidity > 50)
{
sendSMS(humidityMsg);
}
else if (DHT.temperature > 25)
{
sendSMS(tempMsg);
}
while (!takeReadings)
recieveSMS();
}
if (plantPotMoisture[0] > 30 || plantPotMoisture[1] > 30 || plantPotMoisture[2] > 30 && takeReadings)
{
takeReadings = false;
if (plantPotMoisture[0] > 30)
{
sendSMS(moistureMessage + “1”);
}
else if (plantPotMoisture[1] > 30)
{
sendSMS(moistureMessage + “2”);
}
else
{
sendSMS(moistureMessage + “3”);
}
while (!takeReadings)
recieveSMS();
}
}
}
void moistureSensor()
{
for (int i = 0 ; i < 3; i++)
{
lcd.clear();
plantPotMoisture[i] = analogRead(i);
plantPotMoisture[i] = map(plantPotMoisture[i], 550, 0, 0, 100);
Serial.print(“Mositure” + i );
lcd.print(“Mositure” + i);
Serial.print(plantPotMoisture[i]);
lcd.print(plantPotMoisture[i]);
Serial.println(“%”);
lcd.print(“%”);
delay(1000);
}
}
void TempAndHumidity ()
{
DHT.read11(dht_dpin);
lcd.setCursor(0, 0);
lcd.print(“Humidity=”);
Serial.print(“Current humidity = “);
Serial.print(DHT.humidity);
lcd.print(DHT.humidity);
lcd.print(“%”);
Serial.print(“%”);
Serial.print(“temperature = “);
Serial.print(DHT.temperature);
Serial.println(“C”);
lcd.setCursor(0, 1);
lcd.print(“temp=”);
lcd.print(DHT.temperature);
lcd.print(“C “);
delay(1000);
lcd.clear();
}
void sendSMS(String messageToSend)
{
Serial.print(“Sending a message to mobile number: “);
Serial.println(remoteNumber);
Serial.println(“SENDING”);
lcd.print(SMS_Alert);
Serial.println();
Serial.println(“Message:”);
Serial.println(messageToSend);
sms.beginSMS(remoteNumber);
sms.print(messageToSend);
sms.endSMS();
Serial.println(“\nCOMPLETE!\n”);
lcd.clear();
lcd.print(“Completed!!!”);
}
void recieveSMS()
{
char c;
if (sms.available())
{
lcd.clear();
lcd.print(“Message received from:”);
delay(800);
lcd.clear();
sms.remoteNumber(senderNumber, 20);
lcd.print(senderNumber);
while (c = sms.read())
{
Serial.println(c);
messageBuffer += c;
}
Serial.println(messageBuffer);
if (messageBuffer == stringOne)
{
toggleSolenoid1();
takeReadings = true;
}
else if (messageBuffer == stringTwo)
{
toggleSolenoid2();
takeReadings = true;
}
else if (messageBuffer == stringThree)
{
toggleSolenoid3();
takeReadings = true;
}
else if (messageBuffer == stringFour)
{
toggleAll();
takeReadings = true;
}
else
{
takeReadings = true;
}
messageBuffer = “”;
Serial.println(“\nEND OF MESSAGE”);
// Delete message from modem memory
sms.flush();
Serial.println(“MESSAGE DELETED”);
}
delay(1000);
}
void toggleSolenoid1()
{
solenoidWrite(master, HIGH);
delay(1000);
solenoidWrite(slave1, HIGH);
delay(1000);
solenoidWrite(slave1, LOW);
delay(1000);
solenoidWrite(master, LOW);
delay(1000);
}
void toggleSolenoid2()
{
solenoidWrite(master, HIGH);
delay(1000);
solenoidWrite(slave2, HIGH);
delay(1000);
solenoidWrite(slave2, LOW);
delay(1000);
solenoidWrite(master, LOW);
delay(1000);
}
void toggleSolenoid3()
{
solenoidWrite(master, HIGH);
delay(1000);
solenoidWrite(slave3, HIGH);
delay(1000);
solenoidWrite(slave3, LOW);
delay(1000);
solenoidWrite(master, LOW);
delay(1000);
}
void toggleAll()
{
solenoidWrite(master, HIGH);
delay(1000);
solenoidWrite(slave1, HIGH);
delay(1000);
solenoidWrite(slave2, HIGH);
delay(1000);
solenoidWrite(slave3, HIGH);
delay(1000);
solenoidWrite(slave1, LOW);
delay(1000);
solenoidWrite(slave2, LOW);
delay(1000);
solenoidWrite(slave3, LOW);
delay(1000);
solenoidWrite(master, LOW);
delay(1000);
}
void solenoidWrite(int pin, bool state)
{
if ( pin >= 0 && pin < 8)
{
if (state)
serialSolenoidOutput |= (1 << pin);
else
serialSolenoidOutput &= ~(1 << pin);
}
digitalWrite(solenoidLatch, LOW);
shiftOut(solenoidData, solenoidClockster, MSBFIRST, serialSolenoidOutput);
digitalWrite(solenoidLatch, HIGH);
}

Full Project Report Automatic Watering Plants System (PDF) Free Download

  • Title:
  • Format:
  • Size:
  • Pages:
  • Download:
Automated Plant Watering System PDF 4.18MB 77 Here

Gerelateerd bericht:Een PCB ontwerpen (stap voor stap en afbeeldingen)

About the author

-Department of Engineering School of Informatics &Engineering Institute of Technology, Blanchardstown Dublin 15


Industriële technologie

  1. Waarschijnlijke fouten in bewezen systemen
  2. Movement Sensed Automatic Door Opening System Circuit en werkend
  3. Arduino Alarmsysteem:SERENA
  4. Automatisch plantenwatersysteem met Arduino
  5. Bewateringssysteem voor planten voor thuis
  6. Automatisch watergeefsysteem
  7. Een oplossing voor het bewateren van stedelijke planten
  8. Een migratieproject van een besturingssysteem overleven
  9. Veelvoorkomende overtredingen van elektrische codes waarvan u op de hoogte moet zijn
  10. Automatisch transmissiesysteem begrijpen
  11. Automatisch smeersysteem begrijpen