Innehållsförteckning:

Trådlöst trädgårdssystem: 7 steg
Trådlöst trädgårdssystem: 7 steg

Video: Trådlöst trädgårdssystem: 7 steg

Video: Trådlöst trädgårdssystem: 7 steg
Video: Anrika trädgårdens hemligheter avslöjas 2024, November
Anonim
Trådlöst trädgårdssystem
Trådlöst trädgårdssystem

Detta projekt är baserat på Arduino och använder "moduler" för att hjälpa dig att vattna dina växter och få logg på temp och jord och regn.

Systemet är trådlöst till 2, 4 GHz och använder NRF24L01 -moduler för att skicka och ta emot data. Låt mig förklara lite om hur det fungerar, PS! Ursäkta om engelska inte är 100 % korrekt, jag är från Sverige.

Jag använder detta system för att styra mina växter, synder Jag har olika växter jag behövde för att logga dem olika. Så jag bygger ett zonbaserat loggsystem.

Jordsensorerna som avläser markfuktighet och temp, (körs på batteri) kontrollerar varje timme och skickar data till basmaskinen som har en wifi -anslutning. Data laddas upp till en server i mitt hus och loggar in på en webbsida.

Om jorden behöver vatten aktiverar den rätt pump beroende på vilken jordsensor som har kontrollerat. Men om det regnar kommer det inte att vattna. Och om det är riktigt varmt kommer det att vattna lite extra.

Låt oss säga att du har en potatisland, en för tobak och en för tomat, då kan du ha 3 zoner med 3 olika sensorer och 3 pumpar.

Det finns också pir -sensorer som kontrollerar rörelser, och om de aktiveras på webbsidan börjar en hög siren skrämma djuret eller personen som går nära mina växter.

Hoppas du förstår lite. Nu kan vi börja göra några sensorer.

Min GitHub-sida där du laddar ner allt:

Steg 1: Jordsensorer

Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer
Jordsensorer

Varje sensor har ett unikt nummer som läggs till på webbsidan. Så när jordsensorn överför data till jordmätaren läggs till i rätt zon. Om sensorn inte är registrerad kommer ingen data att skickas.

För detta bygge behöver du:

  • 1x Atmega328P-PU-chip
  • 1x nRF24L01 -modul
  • 1x 100 uf kondensator
  • 1x NPN BC547 Transistor
  • 2x 22 pF kondensatorer
  • 1x 16.000 MHz Crystal
  • 1x Jordfuktningssensor
  • 1x DS18B20 Temp -sensor
  • 1x RGB LED (vanlig anod används av mig)
  • 3x 270 ohm motstånd
  • 1x 4, 7 K ohm motstånd
  • Batteri (jag använder 3,7v Li-Po-batteri)
  • Och om li-po används, en laddarmodul för batteri.

För att hålla sensorerna igång länge, använd inte något färdigt Arduino -kort, de tömmer batteriet snabbt. Använd istället Atmega328P -chipet.

Anslut allt som det visas i mitt elark. (Se bild eller PDF -fil) Rekommendera är att också lägga till en strömbrytare, så att du kan dra av strömmen när du laddar.

När du laddar upp koden, glöm inte att definiera sensorn för att ge dem ett unikt ID -nummer, koden är tillgänglig på min GitHub -sida.

För att hålla jordsensorerna vid liv under en längre tid använder jag en NPN -transistor för att starta dem, bara när avläsningen börjar. Så de aktiveras inte hela tiden. Varje sensor har ett ID -nummer från 45XX till 5000 (detta kan ändras) så att varje sensor måste ha unika nummer, allt du behöver göra är att definiera i koden.

Sensorerna somnar för att spara batteri.

Steg 2: Animal Sensor

Djur sensor
Djur sensor
Djur sensor
Djur sensor
Djur sensor
Djur sensor
Djur sensor
Djur sensor

Animal Sensor är en enkel pir -sensor. Det känner av värmen från djur eller människor. Om sensorn känner av rörelse. De kommer att skicka ut till basstationen.

Men det kommer inte att gå på något larm, för att göra det, på sidan måste du aktivera det, eller om du har ställt in en timer aktiveras den automatiskt den tiden.

Om basen får rörelsessignal från djursensorn, kommer den att överföra den till sirensensorn och den (hoppas jag) skrämmer bort djuret. Min siren är på 119 db.

Pir -sensorn körs på batteri och jag har placerat den i ett gammalt pir -sensorhus från ett gammalt larm. Kabeln som kommer ut från djursensorn är bara att ladda batteriet.

För denna sensor behöver du:

  • ATMEGA328P-PU-chip
  • 1 x 16 000 MHz kristall
  • 2 x 22 pF kondensator
  • 1 x Pir -sensormodul
  • 1 x 100 uF kondensator
  • 1 x NRF24L01 -modul
  • 1 x LED (jag använder ingen RGB -led här)
  • 1 x 220 ohm motstånd
  • Om du kommer att köra på ett batteri behöver du det (jag använder Li-Po)
  • En batteriladdarmodul om du har ett laddningsbatteri.
  • Någon slags strömbrytare.

Anslut allt som du ser på elarket. Kontrollera så att du kan driva din pir -sensor från ditt batteri (Vissa behöver 5v för att köra).

Hämta koden från min GitHub och definiera häcksensorn som du ska använda (Ex: SENS1, SENS2 etc) så att de får unika nummer.

ATMEGA -chipet vaknar bara när rörelse registreras. Syndar pir -sensormodulen har inbyggd timer för fördröjning det finns inget för det i koden, så justera potten på pir -sensorn för fördröjningen den kommer att vara vaken.

Det är det för djursensorn, vi går vidare.

Steg 3: Vattenpumpregulator

Vattenpumpregulator
Vattenpumpregulator
Vattenpumpregulator
Vattenpumpregulator
Vattenpumpregulator
Vattenpumpregulator
Vattenpumpregulator
Vattenpumpregulator

Vattenpumpens styrenhet är att starta en pump eller vattenventil för att vattna dina fält. För detta system behöver du inte batterisynder du behöver ström för att köra din pump. Jag använder en AC 230 till DC 5 v -modul för att köra en Arduino Nano. Jag måste också pumptyper, en som använder en vattenventil som går på 12 V så att jag har en AC 230 till DC 12V modul till reläkortet.

Den andra är 230 AC in i reläet så att jag kan driva en 230 V AC pump.

Systemet är ganska enkelt, varje pumpstyrenhet har unika id -nummer, så låt oss säga att potatisfältet är torrt och sensorn är inställd på automatiskt vatten, sedan läggs min pump som är för potatisfältet till den sensorn, så jordsensorn säger till bassystemet att vattningen ska starta, så bassystemet skickar ut en signal till pumpen för att aktivera.

Du kan ställa in hur länge den ska köras på webbsidan (till exempel 5 minuter) syndar sensorerna bara kontrollera varje timme. När pumpen stannar lagrar den också tiden i systemet så att det automatiska systemet inte startar pumpen snart. (Även möjligt att installera på webbsidan).

Du kan också via webbsidan inaktivera vattning under natten/dagen genom att ställa in särskilda tider. Och ställ också in timers för varje pump för att börja vattna. Och om det regnar kommer de inte att vattna.

Hoppas du förstår:)

För detta projekt behöver du:

  • 1 x Arduino Nano
  • 1 x NRF24L01 -modul
  • 1 x 100 uF kondensator
  • 1 RGB LED (vanlig anod används av mig)
  • 3 x 270 ohm motstånd
  • 1 x reläbräda

Anslut allt som elarket (se pdf -fil eller bild) Ladda ner koden från GitHub och glöm inte att definiera sensornumret.

Och nu har du en pumpstyrenhet, systemet klarar mer än bara en.

Steg 4: Regnsensor

Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor
Regnsensor

Regnsensorn används för att upptäcka regn. Du behöver inte mer än en. Men det är möjligt att lägga till mer. Denna regnsensor är batteridriven och kontrollerar var 30: e minut för regn. De har också ett unikt nummer för att identifiera dem själva.

Regnsensorn använder analoga och digitala stift. Den digitala stiftet är att kontrollera om det regnar, (den digitala visar bara ja eller nej) och du måste sätta in kruka på regnsensormodulen när det är ok att varna för "regn" (vattennivån på sensorn som indikerar att det regnar.)

Den analoga stiftet används för att i procent informera om hur våt det är på sensorn.

Om den digitala stiftet upptäcker att det regnar kommer sensorn att skicka den till bassystemet. Och bassystemet kommer inte att vattna växter så länge det "regnar". Sensorn skickar också hur våt den är och batteristatus.

Vi driver bara regnsensorn när det är dags att läsa igenom transistorn som möjliggör genom en digital stift.

För denna sensor behöver du:

  • ATMEGA328P-PU-chip
  • 1x 16 000 MHz Crystal
  • 2x 22 pF kondensator
  • 1x regnsensormodul
  • 1x 100 uF kondensator
  • 1x NRF24L01 -modul
  • 1x RGB LED (jag använde vanlig anod, det är VCC istället för GND)
  • 3x 270 Ohm motstånd
  • 1x NPN BC547 transistor
  • 1x batteri (jag använder Li-Po)
  • 1x Li-Po laddarmodul (om det används Li-Po batteri)

Anslut allt som du ser på elarket (i pdf eller i bilden Ladda sedan upp koden till ATMEGA -chipet som du kan hitta på min GitHub -sida under Regnsensor Glöm inte att definiera sensorn för att få rätt id -nummer.

Och nu kommer du att ha en regnsensor som går var 30: e minut. Du kan ändra tiden på detta om du inte vill det mindre eller mer.

I funktionen counterHandler () kan du ställa in väckningstiden för chipet. Du beräknar så här: Chipsen vaknar var 8: e sekund och varje gång kommer det att öka ett värde. Så i 30 minuter får du 225 gånger innan det ska göra åtgärder. Så det är 1800 sekunder på en halvtimme. Så dividera den med 8 (1800/8) får du 225. Det betyder att den inte kommer att kontrollera sensorn förrän den kör 225 gånger och det kommer att vara cirka 30 minuter. Du gör detsamma på jordsensorn också.

Steg 5: Animal Siren

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

Djurens siren är enkel när djursensorn upptäcker rörelse sirenen kommer att aktiveras. Jag använder en riktig siren så att jag till och med kan skrämma människor med den. Men du kan också använda sirener som bara djur hör.

Jag använder en Arduino nano i detta projekt och driver den med 12v. Sirenen är också 12 V så istället för ett relä kommer jag att använda en 2N2222A transistor för att aktivera sirenen. Om du använder ett relä när du har samma jord kan du skada din Arduino. Så det är därför jag använder en transistor istället för att aktivera sirenen.

Men om din siren och Arduino inte använder samma mark kan du istället använda ett relä. Hoppa över transistorn och 2.2K -motståndet, och använd ett reläkort istället. Och även ändring av Arduino -koden när aktiverad ändring från HIGH till LOW och när inaktiverad ändring från LOW till HIGH och digital läsning för stift 10, syndar reläet använder LOW för att aktivera och transistorn använder HIGH så du måste byta detta.

För detta bygge behöver du:

  • 1x Arduino nano
  • 1x 2,2K motstånd (hoppa över om du använder reläkort)
  • 1x 2N2222 Transistor
  • 1x siren
  • 3x 270 Ohm motstånd
  • 1x RGB LED (jag använder vanlig anod, VCC istället för GND)
  • 1X NRF24L01 -modul
  • 1x 100 uF kondensator

Anslut allt som du ser på elarket i PDF eller i bilden. Ladda upp koden till Arduino som du hittar på min GitHub -sida under Animal Siren Glöm inte att definiera sensorn för korrekt ID -nummer.

Och nu har du en fungerande siren.

Steg 6: Huvudsystem

Huvudsystem
Huvudsystem
Huvudsystem
Huvudsystem
Huvudsystem
Huvudsystem

Huvudsystemet är det viktigaste av alla moduler. Utan det kan du inte använda detta system. Huvudsystemet är anslutet till internet med ESP-01-modulen och vi använder Arduino Megas Serial1-stift för att ansluta det. RX på Mega till TX på ESP men vi måste gå igenom två motstånd för att få ner volt till 3,3. Och TX på Mega till RX på ESP.

Ställ in ESP -modulen

För att använda ESP måste du först ställa in baudhastigheten på den till 9600, det är vad jag har använt i detta projekt och jag har upptäckt att ESP fungerar bäst så. Ur lådan sattes den till 115200 baudhastighet, du kan prova men min var inte så stabil. För att göra det behöver du en Arduino (Mega fungerar bra) och du måste ansluta TX för ESP (genom motstånden som du ser på arket) till Serial TX (inte Serial1 om du använder Mega) och RX på ESP till Arduino Serial RX.

Ladda upp blinkskiss (eller någon skiss som inte använder serie) och öppna seriell bildskärm och ställ in överföringshastighet till 115200 och NR & CR på rader

Skriv AT på kommandoraden och tryck på enter. Du bör få ett svar som säger OK, så nu vet vi att ESP fungerar. (Om inte finns det anslutningsproblem eller dålig ESP-01-modul)

Skriv nu AT+UART_DEF = 9600, 8, 1, 0, 0 på kommandoraden och tryck på enter.

Den kommer att svara med en OK och det betyder att vi har ställt in överföringshastigheten till 9600. Starta om ESP med följande kommando: AT+RST och tryck på enter. Ändra överföringshastigheten i seriell bildskärm till 9600 och ange AT och tryck på enter. Om du får OK tillbaka är ESP inställd på 9600 och du kan använda den för projektet.

SD -kortmodulen

Jag vill att det ska vara enkelt att ändra WIFI -inställningarna för systemet, om ett nytt lösenord ändras eller wifi -namn. Så det är därför vi behöver SD -kortmodulen. Inuti SD -kortet skapar du en textfil med namnet config.txt och vi använder JSON för att läsa, så vi behöver ett JSON -format. Så textfilen ska ha följande text:

}

Ändra texten med de stora bokstäverna för att korrigera för ditt wifi -nätverk.

Synder vi använder NRF24L01 som använder SPI och SD -kortläsaren använder också SPI vi behöver för att använda SDFat -biblioteket så att vi kan använda SoftwareSPI (vi kan lägga till SD -kortläsaren på alla stift)

DHT -sensor

Detta system är placerat utanför och har en DHT -sensor så att vi kan kontrollera luftens fuktighet och temperatur. Den används för extra vattning under varma dagar.

För detta bygge behöver du:

  • 1x Arduino Mega
  • 1x NRF24L01 -modul
  • 1x ESP-01-modul
  • 1x SPI Micro SD -kortmodul
  • 1x DHT-22-sensor
  • 1x RGB LED (jag använde vanlig anod, VCC istället för GND)
  • 3x 270 Ohm motstånd
  • 1x 22 K Ohm motstånd
  • 2x 10 K Ohm motstånd

Observera att om du inte får ESP-01-modulen stabil, försök att driva den från en extern 3,3v strömkälla.

Anslut allt som du ser i elarket i PDF -filen eller på bilden.

Ladda upp koden till din Arduino Mega, och glöm inte att kontrollera hela koden för kommentarer, eftersom du måste ställa in värden till servern på flera platser (det är inte den bästa lösningen jag vet).

Nu är ditt bassystem klart att använda. Du behöver inte ändra variabler i koden för jordfuktighetssynder, du kan göra det direkt från webbsidan.

Steg 7: Webbsystemet

Webbsystemet
Webbsystemet
Webbsystemet
Webbsystemet
Webbsystemet
Webbsystemet
Webbsystemet
Webbsystemet

För att använda systemet behöver du också en webbserver. Jag använder en hallon pi med Apache, PHP, Mysql, Gettext. Webbsystemet är flerspråkigt så att du enkelt kan göra det på ditt språk. Den kommer med svenska och engelska (engelska kan ha fel engelska, min översättning är inte 100 %.) Så du måste ha Gettext installerat för din server, och även lokalerna.

Jag visar dig några skärmdumpar ovan från systemet.

Den har ett enkelt inloggningssystem och huvudinloggningen är: admin som användare och vatten som lösenord.

För att använda det måste du konfigurera tre cron -jobb (du hittar dem under cronjob -mappen)

Timer.php -filen du behöver köra var sekund. Detta innehåller all automatisering för hålsystemet. Filnamnet temperatur.php används för att berätta för systemet att läsa lufttemperaturen och logga den. Så du måste konfigurera ett cron -jobb om hur ofta du ska köra det. Jag har det var 5: e minut. Då ska filen som heter dagstatistik.php bara köras en gång före midnatt (som 23:30, 23:30). Det tar värden som rapporteras från sensorer under dagen och sparar det för veckor och månader.

Observera att detta system lagrar temperaturen i celsius, men du kan ändra till Fahrenheit.

I filen db.php konfigurerar du mysql -databasanslutningen för systemet.

Lägg först till sensorerna i systemet. Och gör sedan zoner och lägg till sensorer i zonerna.

Om du har frågor eller hittar fel i systemet, rapportera dem på GitHub -sidan. Du kan använda webbsystemet och du får inte sälja det.

Om du har problem med lokalerna för gettext, kom ihåg att om du använder hallon som server kallas de ofta som en_US. UTF-8 så du måste göra dessa ändringar i filen i18n_setup.php och under lokal mapp. Annars kommer du att fastna med svenska språket.

Du laddar ner den på GitHub -sidan.

Rekommenderad: