Indholdsfortegnelse:

Trådløst havesystem: 7 trin
Trådløst havesystem: 7 trin

Video: Trådløst havesystem: 7 trin

Video: Trådløst havesystem: 7 trin
Video: Обзор Razer Blade 15 Advanced 2024, November
Anonim
Trådløst havesystem
Trådløst havesystem

Dette projekt er baseret på Arduino og bruger "moduler" til at hjælpe dig med at vande dine planter og få log på temp og jord og regn.

Systemet er trådløst gennem 2, 4 GHz og bruger NRF24L01 moduler til at sende og modtage data. Lad mig forklare lidt om, hvordan det fungerer, PS! Undskyld hvis engelsk ikke er 100 % korrekt, jeg er fra Sverige.

Jeg bruger dette system til at styre mine planter, synder Jeg har forskellige planter, jeg havde brug for at logge dem forskellige. Så jeg bygger et zonebaseret logsystem.

Jordsensorerne, der læser jordens fugtighed og temperatur, (kører på batteri) kontrollerer hver time og videregiver dataene til basismaskinen, der har en wifi -forbindelse. Dataene uploades til en server i mit hus og logger på en webside.

Hvis jorden har brug for vand, aktiverer den den korrekte pumpe afhængigt af, hvilken jordsensor der har kontrolleret. Men hvis det regner, vander det ikke. Og hvis det er virkelig varmt, vil det vande lidt ekstra.

Lad os sige, at du har et kartoffelland, et til tobak og et til tomat, så kan du have 3 zoner med 3 forskellige sensorer og 3 pumper.

Der er også pir -sensorer, der kontrollerer bevægelser, og hvis de aktiveres på websiden, begynder en høj sirene at skræmme dyret eller den person, der går tæt på mine planter.

Håber du forstår lidt. Lad os nu begynde at lave nogle sensorer.

Min GitHub-side, hvor du downloader alt:

Trin 1: Jordsensorer

Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer

Hver sensor har et unikt nummer, der tilføjes til websiden. Så når jordsensoren sender dataene fra denne jordføler, tilføjes den til den korrekte zone. Hvis sensoren ikke er registreret, vil der ikke blive indsendt nogen data.

Til denne build har du brug for:

  • 1x Atmega328P-PU-chip
  • 1x nRF24L01 modul
  • 1x 100 uf kondensator
  • 1x NPN BC547 Transistor
  • 2x 22 pF kondensatorer
  • 1x 16.000 MHz krystal
  • 1x Jordfugtighedssensor
  • 1x DS18B20 Temp sensor
  • 1x RGB LED (Common Anode bruges af mig)
  • 3x 270 ohm modstande
  • 1x 4, 7 K ohm modstand
  • Batteri (jeg bruger 3.7v Li-Po batteri)
  • Og hvis der bruges li-po, et opladermodul til batteri.

For at holde sensorerne kørende i lang tid, må du ikke bruge noget præfabrikeret Arduino -kort, de tømmer hurtigt batteriet. Brug i stedet Atmega328P -chippen.

Tilslut alt, som det fremgår af mit el -ark. (Se billede eller PDF -fil) Anbefal er også at tilføje en afbryder, så du kan afbryde strømmen under opladning.

Når du uploader koden, skal du ikke glemme at definere sensor for at give dem et unikt ID -nummer, koden er tilgængelig på min GitHub -side.

For at holde jordsensorerne i live i lang tid bruger jeg en NPN -transistor til at tænde dem, først når læsningen begynder. Så de aktiveres ikke hele tiden. Hver sensor har et ID -nummer fra 45XX til 5000 (dette kan ændres), så hver sensor skal have unikke tal, alt hvad du skal gøre er at definere i koden.

Sensorerne går i dvale for at spare batteri.

Trin 2: Animal Sensor

Dyrsensor
Dyrsensor
Dyrsensor
Dyrsensor
Dyrsensor
Dyrsensor
Dyrsensor
Dyrsensor

Animal Sensor er en simpel pir sensor. Det fornemmer varmen fra dyr eller mennesker. Hvis sensoren registrerer bevægelse. De sender ud til basestationen.

Men der vil ikke gå nogen alarm, for at gøre det, på siden skal du aktivere den, eller hvis du har konfigureret en timer, aktiveres den automatisk dengang.

Hvis basen får bevægelsessignal fra dyrsensoren, sender den den videre til sirensensoren, og den vil (håber jeg) skræmme dyret væk. Min sirene er på 119 db.

Pir -sensoren kører på batteri, og jeg har placeret den i en gammel pir -sensorkasse fra en gammel alarm. Kablet, der kommer ud fra dyrsensoren, er bare at oplade batteriet.

Til denne sensor har du brug for:

  • ATMEGA328P-PU-chip
  • 1 x 16 000 MHz krystal
  • 2 x 22 pF kondensator
  • 1 x Pir sensor modul
  • 1 x 100 uF kondensator
  • 1 x NRF24L01 modul
  • 1 x LED (jeg bruger ikke nogen RGB -led her)
  • 1 x 220 ohm modstand
  • Hvis du vil køre på et batteri, har du brug for det (jeg bruger Li-Po)
  • Et batterioplader -modul, hvis du har et genopladeligt batteri.
  • En slags afbryder.

Tilslut alt, som du ser, og det elektriske ark. Kontroller, at du kan drive din pir -sensor fra dit batteri (Nogle har brug for 5v for at køre).

Hent koden fra min GitHub og definer den heksesensor, du skal bruge (f.eks. SENS1, SENS2 osv.), Så de får unikke tal.

ATMEGA -chippen vågner først, når bevægelse er registreret. Synder pir -sensormodulet har indbygget timer til forsinkelse, der er ikke noget for det i koden, så juster potten på pir -sensoren for forsinkelsen, den vil være vågen.

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

Trin 3: Vandpumpestyring

Vandpumpe controller
Vandpumpe controller
Vandpumpe controller
Vandpumpe controller
Vandpumpe controller
Vandpumpe controller
Vandpumpe controller
Vandpumpe controller

Vandpumpestyringen skal starte en pumpe eller vandventil for at vande dine marker. Til dette system har du ikke brug for en batterisynder, du har brug for strøm til at køre din pumpe. Jeg bruger et AC 230 til DC 5 v modul til at køre en Arduino Nano. Jeg skal også typer af pumpe, en der bruger en vandventil, der kører på 12 v, så jeg har et AC 230 til DC 12v modul til relækortet.

Den anden er 230 AC ind i relæet, så jeg kan drive en 230 V AC pumpe.

Systemet er ganske enkelt, hver pumpecontroller har unikke id -numre, så lad os sige, at kartoffelmarken er tør, og sensoren er indstillet til automatisk vand, så tilføjes min pumpe, der er til kartoffelmarken, til den sensor, så jordsensoren fortæller basissystemet, at vandingen skal starte, så basissystemet sender et signal til den pumpe for at aktivere.

Du kan indstille, hvor lang tid den skal køre på websiden (f.eks. 5 minutter) synder, at sensorerne kun kontrollerer hver time. Når pumpen stopper, gemmer den også tiden i systemet, så det automatiske system ikke starter pumpen snart. (Også muligt at konfigurere på websiden).

Du kan også via websiden deaktivere vanding i løbet af natten/dagen ved at indstille særlige tider. Og konfigurer også timere for hver pumpe til at starte vanding. Og hvis det regner, vander de ikke.

Håber du forstår:)

Til dette projekt har du brug for:

  • 1 x Arduino Nano
  • 1 x NRF24L01 modul
  • 1 x 100 uF kondensator
  • 1 RGB LED (fælles anode bruges af mig)
  • 3 x 270 ohm modstande
  • 1 x relæbræt

Tilslut alt som det elektriske ark (se pdf -fil eller billede) Download koden fra GitHub, og glem ikke at definere sensornummeret.

Og nu har du en pumpestyring, systemet kan klare mere end bare en.

Trin 4: Regnsensor

Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor

Regnsensoren bruges til at registrere regn. Du behøver ikke mere end en. Men det er muligt at tilføje mere. Denne regnsensor er batteridrevet og kontrollerer hvert 30. minut for regn. De har også et unikt nummer til at identificere dem selv.

Regnsensoren bruger analoge og digitale stifter. Den digitale pin er at kontrollere, om det regner, (det digitale viser kun ja eller nej), og du skal sætte gryden på regnsensormodulet til, når det er ok at advare om "regn" (vandniveauet på sensoren, der indikerer at det regner.)

Den analoge pin bruges til at oplyse i procent, hvor våd den er på sensoren.

Hvis den digitale pin registrerer, at det er regn, sender sensoren den til basissystemet. Og basissystemet vil ikke vande planter, så længe det "regner". Sensoren sender også, hvor våd den er og batteristatus.

Vi driver kun regnsensoren, når det er tid til at læse igennem transistoren, der muliggør en digital pin.

Til denne sensor har du brug for:

  • ATMEGA328P-PU-chip
  • 1x 16 000 MHz krystal
  • 2x 22 pF kondensator
  • 1x Regnsensormodul
  • 1x 100 uF kondensator
  • 1x NRF24L01 modul
  • 1x RGB LED (jeg brugte fælles anode, det er VCC i stedet for GND)
  • 3x 270 Ohm modstande
  • 1x NPN BC547 transistor
  • 1x batteri (jeg bruger Li-Po)
  • 1x Li-Po oplader modul (hvis det bruges Li-Po batteri)

Tilslut alt, som du ser på el -arket (i pdf eller i billedet Upload derefter koden til ATMEGA -chippen, som du kan finde på min GitHub -side under Regnsensor. Glem ikke at definere sensoren for at få det rigtige id -nummer.

Og nu har du en regnsensor, der kører hvert 30. minut. Du kan ændre tiden på dette, hvis du ikke vil det mindre eller mere.

I funktion counterHandler () kan du konfigurere vågningstiden for chippen. Du beregner sådan: Chipsene vågner hvert 8. sekund, og hver gang vil det øge en værdi. Så i 30 minutter får du 225 gange, før det skal udføre handlinger. Så der er 1800 sekunder på en halv time. Så divider det med 8 (1800 /8) får du 225. Det betyder, at det ikke vil kontrollere sensoren, før den kører 225 gange, og det vil være cirka 30 minutter. Du gør det samme på jordsensor også.

Trin 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 registrerer bevægelse, sirenen aktiveres. Jeg bruger en rigtig sirene, så jeg kan endda skræmme folk med den. Men du kan også bruge sirener, som kun dyr hører.

Jeg bruger en Arduino nano i dette projekt og driver den med 12v. Sirenen er også 12 v, så i stedet for et relæ vil jeg bruge en 2N2222A transistor til at aktivere sirenen. Hvis du bruger et relæ, når du har den samme jord, kan du beskadige din Arduino. Så derfor bruger jeg en transistor i stedet for at aktivere sirenen.

Men hvis din sirene og Arduino ikke bruger den samme jord, kan du i stedet bruge et relæ. Spring transistoren og 2,2K modstanden over, og brug et relækort i stedet. Og også ændring i Arduino -koden ved aktiveret ændring fra HIGH til LOW og når inaktiveret ændring fra LOW til HIGH og digital read for pin 10, synder relæet bruger LOW til at aktivere og transistoren bruger HIGH, så du skal skifte dette.

Til denne build har du brug for:

  • 1x Arduino nano
  • 1x 2,2K modstand (Spring hvis du bruger relækort)
  • 1x 2N2222 Transistor
  • 1x sirene
  • 3x 270 Ohm modstand
  • 1x RGB LED (jeg bruger fælles anode, VCC i stedet for GND)
  • 1X NRF24L01 modul
  • 1x 100 uF kondensator

Tilslut alt, som du ser på det elektriske ark i PDF eller på billedet. Upload koden til Arduino, som du finder på min GitHub -side under Animal Siren. Glem ikke at definere sensoren til det korrekte ID -nummer.

Og nu har du en fungerende sirene.

Trin 6: Hovedsystem

Hovedsystem
Hovedsystem
Hovedsystem
Hovedsystem
Hovedsystem
Hovedsystem

Hovedsystemet er det vigtigste af alle moduler. Uden det kan du ikke bruge dette system. Hovedsystemet er forbundet til internettet med ESP-01-modulet, og vi bruger Arduino Megas Serial1 pins til at forbinde det. RX på Mega til TX på ESP, men vi skal igennem to modstande for at få volt ned til 3,3. Og TX på Mega til RX på ESP.

Konfigurer ESP -modulet

For at bruge ESP skal du først indstille baudhastigheden på den til 9600, det er det, jeg har brugt i dette projekt, og jeg har fundet ud af, at ESP fungerer bedst. Ud af kassen satte den til 115200 baudhastighed, du kan prøve den, men min var ikke så stabil. For at gøre det skal du bruge en Arduino (Mega fungerer godt), og du skal forbinde TX for ESP (gennem modstandene som du ser på arket) til Serial TX (ikke Serial1 hvis du bruger Mega) og RX på ESP til Arduino Serial RX.

Upload blinkskitse (eller en skitse, der ikke bruger seriel), og åbn seriel skærm, og indstil baudhastighed til 115200 og NR & CR på linjer

Skriv AT i kommandolinjen, og tryk på enter. Du bør få et svar, der siger OK, så nu ved vi, at ESP fungerer. (Hvis ikke er der et forbindelsesproblem eller et dårligt ESP-01-modul)

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

Det vil svare med et OK, og det betyder, at vi har sat baudhastigheden til 9600. Genstart ESP med følgende kommando: AT+RST, og tryk på enter. Skift baudhastighed i seriel skærm til 9600, indtast AT, og tryk på enter. Hvis du får OK tilbage, er ESP konfigureret til 9600, og du kan bruge den til projektet.

SD -kortmodulet

Jeg vil have det til at være let at ændre WIFI -indstillingerne for systemet, hvis en ny adgangskode ændres eller wifi -navn. Så derfor har vi brug for SD -kortmodulet. Inde i SD -kortet skal du oprette en tekstfil med navnet config.txt, og vi bruger JSON til at læse, så vi har brug for et JSON -format. Så tekstfilen skal have følgende tekst:

}

Skift teksten med de store bogstaver for at korrigere for dit wifi -netværk.

Synder, vi bruger NRF24L01, der bruger SPI, og SD -kortlæseren bruger også SPI, vi har brug for at bruge SDFat -biblioteket, så vi kan bruge SoftwareSPI (vi kan tilføje SD -kortlæseren på alle pins)

DHT -sensor

Dette system er placeret udenfor og har en DHT -sensor, så vi kan kontrollere luftens fugtighed og temperatur. Det bruges til ekstra vanding på varme dage.

Til denne build har du brug for:

  • 1x Arduino Mega
  • 1x NRF24L01 -modul
  • 1x ESP-01-modul
  • 1x SPI Micro SD -kortmodul
  • 1x DHT-22 sensor
  • 1x RGB LED (jeg brugte fælles anode, VCC i stedet for GND)
  • 3x 270 Ohm modstande
  • 1x 22 K Ohm modstand
  • 2x 10 K Ohm modstand

Bemærk, at hvis du ikke får dit ESP-01-modulstabilt, skal du prøve at tænde det fra en ekstern 3,3v strømkilde.

Tilslut alt, som du ser på det elektriske ark i PDF -filen eller på billedet.

Upload koden til din Arduino Mega, og glem ikke at kontrollere hele koden for kommentarer, fordi du skal indstille værten til serveren flere steder (det er ikke den bedste løsning, jeg kender).

Nu er dit basesystem klar til brug. Du behøver ikke at ændre variabler i koden for jordfugtighedssynder, du kan gøre det strengt fra websiden.

Trin 7: Websystemet

Websystemet
Websystemet
Websystemet
Websystemet
Websystemet
Websystemet
Websystemet
Websystemet

For at bruge systemet har du også brug for en webserver. Jeg bruger en hindbær pi med Apache, PHP, Mysql, Gettext. Websystemet er flersproget, så du nemt kan lave det på dit sprog. Det følger med svensk og engelsk (engelsk kan have forkert engelsk, min oversættelse er ikke 100 %.) Så du skal have Gettext installeret til din server, og også lokalerne.

Jeg viser dig nogle skærmbilleder ovenfor fra systemet.

Den leveres med et simpelt loginsystem, og hovedlogin er: admin som bruger og vand som adgangskode.

For at bruge det skal du konfigurere tre cron -job (du finder dem under cronjob -mappen)

Timer.php -filen skal du køre hvert sekund. Dette indeholder al automatisering af hullesystemet. Filnavnet temperatur.php bruges til at fortælle systemet at læse lufttemperaturen og logge det. Så du skal konfigurere et cron -job om, hvor ofte du vil køre det. Jeg har det hvert 5. minut. Så skal filen kaldet dagstatistik.php kun køre en gang før midnat (f.eks. 23:30, 23:30). Det tager værdier rapporteret fra sensorer i løbet af dagen og gemmer det i uge- og månedstatik.

Bemærk, at dette system gemmer temperaturen i celsius, men du kan skifte til Fahrenheit.

I db.php -filen konfigurerer du mysql -databaseforbindelsen til systemet.

Tilføj først sensorerne til systemet. Og lav derefter zoner, og tilføj sensorer til zonerne.

Hvis du har spørgsmål eller finder fejl i systemet, skal du rapportere dem på GitHub -siden. Du kan bruge websystemet, og du må ikke sælge det.

Hvis du har problemer med lokalerne til gettext, skal du huske, at hvis du bruger hindbær som server, hedder de ofte som en_US. UTF-8, så du skal foretage disse ændringer i filen i18n_setup.php og i lokalmappen. Ellers sidder du fast i svensk sprog.

Du downloader det på GitHub -siden.

Anbefalede: