Innholdsfortegnelse:

Trådløst hagesystem: 7 trinn
Trådløst hagesystem: 7 trinn

Video: Trådløst hagesystem: 7 trinn

Video: Trådløst hagesystem: 7 trinn
Video: 121 Mic 🎙️ 121 System Android app All phone || 100% Working Live Full Settings|| fghter mic System | 2024, November
Anonim
Trådløst hagesystem
Trådløst hagesystem

Dette prosjektet er basert på Arduino, og bruker "moduler" for å hjelpe deg med å vanne plantene dine, og få logg på temp og jord og regn.

Systemet er trådløst gjennom 2, 4 GHz og bruker NRF24L01 -moduler til å sende og motta data. La meg forklare litt om hvordan det fungerer, PS! Unnskyld meg hvis engelsk ikke er 100 % korrekt, jeg er fra Sverige.

Jeg bruker dette systemet til å kontrollere plantene mine, synder Jeg har forskjellige planter jeg trengte for å logge dem annerledes. Så jeg bygger et sonebasert loggsystem.

Jordsensorene som leser jordfuktighet og temperatur (kjører på batteri) sjekker hver time og sender dataene til basismaskinen som har wifi -tilkobling. Dataene lastes opp til en server i huset mitt og logger på en webside.

Hvis jorda trenger vann, vil den aktivere riktig pumpe avhengig av hvilken jordsensor som har kontrollert. Men hvis det regner vil det ikke vanne. Og hvis det er veldig varmt, vil det vanne litt ekstra.

La oss si at du har ett potetland, ett for tobakk og ett for tomat, så kan du ha 3 soner med 3 forskjellige sensorer og 3 pumper.

Det er også pir -sensorer som kontrollerer bevegelser, og hvis de er aktivert på nettsiden vil en høy sirene begynne å skremme dyret eller personen som går nær plantene mine.

Håper du skjønner litt. La oss begynne å lage noen sensorer.

Min GitHub-side der du laster ned alt:

Trinn 1: Jordsensorer

Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer

Hver sensor har et unikt nummer som legges til nettsiden. Så når jordsensoren overfører dataene fra den jordsensoren vil bli lagt til den riktige sonen. Hvis sensoren ikke er registrert, vil ingen data bli sendt inn.

For denne bygningen trenger du:

  • 1x Atmega328P-PU-brikke
  • 1x nRF24L01 -modul
  • 1x 100 uf kondensator
  • 1x NPN BC547 Transistor
  • 2x 22 pF kondensatorer
  • 1x 16.000 MHz krystall
  • 1x Jordfuktsensor
  • 1x DS18B20 Temp sensor
  • 1x RGB LED (vanlig anode brukes av meg)
  • 3x 270 ohm motstander
  • 1x 4, 7 K ohm motstand
  • Batteri (jeg bruker 3,7v Li-Po batteri)
  • Og hvis li-po brukes, en ladermodul for batteri.

For ikke å holde sensorene i gang lenge, ikke bruk noe ferdiglaget Arduino -kort, de tømmer batteriet raskt. Bruk i stedet Atmega328P -brikken.

Koble til alt som det vises på det elektriske arket mitt. (Se bilde eller PDF -fil) Anbefal er å også legge til en strømbryter, slik at du kan kutte strømmen når du lader.

Når du laster opp koden, ikke glem å definere sensor for å gi dem et unikt ID -nummer. Koden er tilgjengelig på min GitHub -side.

For å holde jordsensorene i live lenge, bruker jeg en NPN -transistor for å slå dem på, bare når avlesningen begynner. Så de blir ikke aktivert hele tiden. Hver sensor har et ID -nummer fra 45XX til 5000 (dette kan endres) så hver sensor må ha unike tall, alt du trenger å gjøre er å definere i koden.

Sensorene går i dvale for å spare batteri.

Trinn 2: Animal Sensor

Dyrsensor
Dyrsensor
Dyrsensor
Dyrsensor
Dyrsensor
Dyrsensor
Dyrsensor
Dyrsensor

Animal Sensor er en enkel pir -sensor. Det kjenner varmen fra dyr eller mennesker. Hvis sensoren føler bevegelse. De vil sende ut til basestasjonen.

Men det vil ikke gå på noen alarm, for å gjøre det, på siden må du aktivere den, eller hvis du har konfigurert en tidtaker, aktiveres den automatisk den gangen.

Hvis basen får bevegelsessignal fra dyresensoren, vil den sende den videre til sirensensoren, og den (håper jeg) skremmer dyret vekk. Sirenen min er på 119 db.

Pir -sensoren kjører på batteri, og jeg har plassert den i en gammel pir -sensorkasse fra en gammel alarm. Kabelen som kommer ut fra dyresensoren er bare å lade batteriet.

For denne sensoren trenger du:

  • ATMEGA328P-PU-brikke
  • 1 x 16 000 MHz krystall
  • 2 x 22 pF kondensator
  • 1 x Pir -sensormodul
  • 1 x 100 uF kondensator
  • 1 x NRF24L01 -modul
  • 1 x LED (jeg bruker ikke noen RGB -led her)
  • 1 x 220 ohm motstand
  • Hvis du vil kjøre på et batteri trenger du det (jeg bruker Li-Po)
  • En batterilader hvis du har et oppladbart batteri.
  • En slags strømbryter.

Koble til alt som du ser på det elektriske arket. Kontroller at du kan drive pir -sensoren fra batteriet (noen trenger 5v for å kjøre).

Få koden fra min GitHub og definer heksesensoren du skal bruke (Eks: SENS1, SENS2 osv.) Så får de unike tall.

ATMEGA -brikken vil bare våkne når bevegelse er registrert. Synder pir -sensormodulen har innebygd timer for forsinkelse det er ingenting for det i koden, så juster potten på pir -sensoren for forsinkelsen den vil være våken.

Det er det for dyrsensoren, vi går videre.

Trinn 3: Vannpumpekontroller

Vannpumpe -kontroller
Vannpumpe -kontroller
Vannpumpe -kontroller
Vannpumpe -kontroller
Vannpumpe -kontroller
Vannpumpe -kontroller
Vannpumpe -kontroller
Vannpumpe -kontroller

Vannpumpestyringen skal starte en pumpe eller vannventil for å vanne feltene dine. For dette systemet trenger du ikke batterisynder du trenger strøm for å kjøre pumpen. Jeg bruker en AC 230 til DC 5 v -modul for å kjøre en Arduino Nano. Jeg må også typer pumpe, en som bruker en vannventil som går på 12 V, så jeg har en AC 230 til DC 12V modul til relékortet.

Den andre er 230 AC til reléet, så jeg kan drive en 230 V AC pumpe.

Systemet er ganske enkelt, hver pumpekontroller har unike ID -numre, så la oss si at potetfeltet er tørt og sensoren er satt til automatisk vann, så blir pumpen min for potetfeltet lagt til den sensoren, så jordsensoren forteller basissystemet at vanningen skal starte, så basissystemet sender ut et signal til pumpen for å aktivere.

Du kan angi hvor lenge den skal kjøre på nettsiden (for eksempel 5 minutter) synder sensorene bare sjekker hver time. Også når pumpen stopper, lagrer den tiden i systemet, slik at det automatiske systemet ikke starter pumpen snart. (Også mulig å sette opp på nettsiden).

Du kan også via websiden deaktivere vanning i løpet av natten/dagen ved å angi spesielle tider. Og konfigurer også tidtakere for hver pumpe for å begynne å vanne. Og hvis det regner, vil de ikke vanne.

Håper du forstår:)

For dette prosjektet trenger du:

  • 1 x Arduino Nano
  • 1 x NRF24L01 -modul
  • 1 x 100 uF kondensator
  • 1 RGB LED (vanlig anode brukes av meg)
  • 3 x 270 ohm motstander
  • 1 x relébrett

Koble til alt som det elektriske arket (se pdf -fil eller bilde) Last ned koden fra GitHub og ikke glem å definere sensornummeret.

Og nå har du en pumpestyring, systemet kan håndtere mer enn bare en.

Trinn 4: Regnsensor

Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor

Regnsensoren brukes til å oppdage regn. Du trenger ikke mer enn en. Men det er mulig å legge til mer. Denne regnsensoren er batteridrevet og kontrollerer hvert 30. minutt for regn. De har også et unikt nummer for å identifisere dem selv.

Regnsensoren bruker analoge og digitale pinner. Den digitale pinnen er å sjekke om det regner, (den digitale viser bare ja eller nei), og du må sette potten på regnsensormodulen på når det er ok å advare om "regn" (vannstanden på sensoren som indikerer at det regner.)

Den analoge pinnen brukes til å informere i prosent hvor våt den er på sensoren.

Hvis den digitale pinnen oppdager at det regner, sender sensoren den til basissystemet. Og basissystemet vil ikke vanne planter så lenge det "regner". Sensoren sender også hvor våt den er og batteristatus.

Vi driver regnsensoren bare når det er på tide å lese gjennom transistoren som muliggjør gjennom en digital pinne.

For denne sensoren trenger du:

  • ATMEGA328P-PU-brikke
  • 1x 16 000 MHz krystall
  • 2x 22 pF kondensator
  • 1x regnsensormodul
  • 1x 100 uF kondensator
  • 1x NRF24L01 -modul
  • 1x RGB LED (jeg brukte vanlig anode, det er VCC i stedet for GND)
  • 3x 270 Ohm motstander
  • 1x NPN BC547 transistor
  • 1x batteri (jeg bruker Li-Po)
  • 1x Li-Po ladermodul (hvis det brukes Li-Po batteri)

Koble til alt som du ser på det elektriske arket (i pdf eller på bildet. Last deretter opp koden til ATMEGA -brikken som du finner på min GitHub -side under Regnsensor. Ikke glem å definere sensoren for å få riktig ID -nummer.

Og nå vil du ha en regnsensor som går hvert 30. minutt. Du kan endre tiden på dette hvis du ikke vil det mindre eller mer.

I funksjon counterHandler () kan du konfigurere vekketiden for brikken. Du beregner slik: Sjetongene våkner hvert 8. sekund og hver gang vil det øke en verdi. Så i 30 minutter får du 225 ganger før den skal gjøre handlinger. Så det er 1800 sekunder på en halv time. Så divider den med 8 (1800/8) får du 225. Det betyr at den ikke vil sjekke sensoren før den går 225 ganger og det vil være omtrent 30 minutter. Du gjør det samme på jordsensor også.

Trinn 5: Animal Siren

Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren

Dyresirenen er enkel når dyresensoren oppdager bevegelse, sirenen vil bli aktivert. Jeg bruker en ekte sirene, så jeg kan til og med skremme folk med den. Men du kan også bruke sirener som bare dyr hører.

Jeg bruker en Arduino nano i dette prosjektet og driver den med 12v. Sirenen er også 12 V, så i stedet for et relé vil jeg bruke en 2N2222A transistor for å aktivere sirenen. Hvis du bruker et relé når du har samme grunn, kan du skade Arduino. Så det er derfor jeg bruker en transistor i stedet for å aktivere sirenen.

Men hvis sirenen og Arduino ikke bruker samme bakken, kan du bruke et relé i stedet. Hopp over transistoren og 2,2K motstanden, og bruk et relékort i stedet. Og også endring i Arduino -koden når aktivert endring fra HIGH til LOW og når inaktivert endring fra LOW til HIGH og digital read for pin 10, synder reléet bruker LOW for å aktivere og transistoren bruker HIGH, så du må bytte dette.

For denne bygningen trenger du:

  • 1x Arduino nano
  • 1x 2.2K motstand (Hopp over hvis du bruker relékort)
  • 1x 2N2222 Transistor
  • 1x sirene
  • 3x 270 Ohm motstand
  • 1x RGB LED (jeg bruker vanlig anode, VCC i stedet for GND)
  • 1X NRF24L01 modul
  • 1x 100 uF kondensator

Koble til alt som du ser på det elektriske arket i PDF eller i bildet. Last opp koden til Arduino som du finner på min GitHub -side under Animal Siren Ikke glem å definere sensoren for riktig ID -nummer.

Og nå har du en fungerende sirene.

Trinn 6: Hovedsystem

Hovedsystem
Hovedsystem
Hovedsystem
Hovedsystem
Hovedsystem
Hovedsystem

Hovedsystemet er det viktigste av alle modulene. Uten det kan du ikke bruke dette systemet. Hovedsystemet er koblet til internett med ESP-01-modulen, og vi bruker Arduino Megas Serial1-pinner for å koble det til. RX på Mega til TX på ESP, men vi må gå gjennom to motstander for å få volt til 3,3. Og TX på Mega til RX på ESP.

Sett opp ESP -modulen

For å bruke ESP må du først sette baudhastigheten på den til 9600, det er det jeg har brukt i dette prosjektet, og jeg har funnet ut at ESP fungerer best slik. Ut av esken satt den til 115200 baud rate, du kan prøve den, men min var ikke så stabil. For å gjøre det trenger du en Arduino (Mega fungerer bra), og du må koble TX til ESP (gjennom motstandene som du ser på arket) til Serial TX (ikke Serial1 hvis du bruker Mega) og RX på ESP til Arduino Serial RX.

Last opp blinkskisse (eller en skisse som ikke bruker seriell) og åpne seriell skjerm og sett overføringshastigheten til 115200 og NR & CR på linjer

Skriv AT på kommandolinjen og trykk enter. Du bør få et svar som sier OK, så nå vet vi at ESP fungerer. (Hvis ikke er det tilkoblingsproblem eller dårlig ESP-01-modul)

Skriv nå AT+UART_DEF = 9600, 8, 1, 0, 0 på kommandolinjen og trykk enter.

Den vil svare med en OK, og dette betyr at vi har satt overføringshastigheten til 9600. Start ESP på nytt med følgende kommando: AT+RST og trykk enter. Endre overføringshastigheten i seriell skjerm til 9600, og angi AT og trykk enter. Hvis du får OK tilbake, er ESP konfigurert for 9600, og du kan bruke den til prosjektet.

SD -kortmodulen

Jeg vil at det skal være enkelt å endre WIFI -innstillingene for systemet, hvis et nytt passord endres eller wifi -navnet. Så derfor trenger vi SD -kortmodulen. Inne i SD -kortet lager du en tekstfil med navnet config.txt, og vi bruker JSON til å lese, så vi trenger et JSON -format. Så tekstfilen skal ha følgende tekst:

}

Endre teksten med de store bokstavene for å korrigere for wifi -nettverket ditt.

Synder vi bruker NRF24L01 som bruker SPI og SD -kortleseren bruker også SPI vi trenger for å bruke SDFat -biblioteket slik at vi kan bruke SoftwareSPI (vi kan legge til SD -kortleseren på alle pins)

DHT -sensor

Dette systemet er plassert utenfor og har en DHT -sensor, slik at vi kan kontrollere luftens fuktighet og temperatur. Den brukes til ekstra vanning på varme dager.

For denne bygningen trenger du:

  • 1x Arduino Mega
  • 1x NRF24L01 -modul
  • 1x ESP-01-modul
  • 1x SPI Micro SD -kortmodul
  • 1x DHT-22 sensor
  • 1x RGB LED (jeg brukte vanlig anode, VCC i stedet for GND)
  • 3x 270 Ohm motstander
  • 1x 22 K Ohm motstand
  • 2x 10 K Ohm motstand

Vær oppmerksom på at hvis du ikke får ESP-01-modulen stabil, kan du prøve å koble den fra en ekstern 3,3v strømkilde.

Koble til alt som du ser på det elektriske arket i PDF -filen eller på bildet.

Last opp koden til Arduino Mega, og ikke glem å sjekke hele koden for kommentarer, fordi du må sette verten til serveren på flere steder (det er ikke den beste løsningen jeg vet).

Nå er basesystemet ditt klart til bruk. Du trenger ikke å endre variabler i koden for jordfuktighetssynder. Du kan gjøre det rett fra nettsiden.

Trinn 7: Nettsystemet

Nettsystemet
Nettsystemet
Nettsystemet
Nettsystemet
Nettsystemet
Nettsystemet
Nettsystemet
Nettsystemet

For å bruke systemet trenger du også en webserver. Jeg bruker en bringebær pi med Apache, PHP, Mysql, Gettext. Nettsystemet er flerspråklig, slik at du enkelt kan lage det på ditt språk. Den kommer med svensk og engelsk (engelsk kan ha feil engelsk, oversettelsen min er ikke 100 %.) Så du må ha Gettext installert for serveren din, og også lokalene.

Jeg viser deg noen skjermdumper ovenfor fra systemet.

Den kommer med et enkelt påloggingssystem, og hovedinnloggingen er: admin som bruker og vann som passord.

For å bruke den må du sette opp tre cron -jobber (du finner dem under cronjob -mappen)

Timer.php -filen du trenger for å kjøre hvert sekund. Dette inneholder all automatisering for hullsystemet. Filnavnet temperatur.php brukes til å be systemet om å lese lufttemperaturen og logge den. Så du må sette opp en cron -jobb for hvor ofte du skal kjøre den. Jeg har det hvert 5. minutt. Da skal filen kalt dagstatistik.php bare kjøre en gang før midnatt (som 23:30, 23:30). Det tar verdier rapportert fra sensorer i løpet av dagen og lagrer det for ukes- og månedsstatistikk.

Vær oppmerksom på at dette systemet lagrer temperaturen i celsius, men du kan bytte til Fahrenheit.

I db.php -filen konfigurerer du mysql -databasetilkoblingen for systemet.

Legg først til sensorene i systemet. Og lag deretter soner, og legg til sensorer i sonene.

Hvis du har spørsmål eller finner feil i systemet, kan du rapportere dem på GitHub -siden. Du kan bruke nettsystemet, og du har ikke lov til å selge det.

Hvis du har problemer med lokalene for gettext, må du huske at hvis du bruker bringebær som server, blir de ofte navngitt som en_US. UTF-8, så du må gjøre disse endringene i i18n_setup.php-filen og under lokal mappe. Ellers vil du bli sittende fast i svensk språk.

Du laster den ned på GitHub -siden.

Anbefalt: