Innehållsförteckning:
- Steg 1: Vad du behöver
- Steg 2: Brödbräda -prototyp
- Steg 3: Programinstallation
- Steg 4: Förbered Solar Charging Board
- Steg 5: Bygg en mikrokontrollkrets
- Steg 6: Installera kabelförskruvningar
- Steg 7: Komplett kretsmontering
- Steg 8: Förbered solpanel
- Steg 9: Testa det
- Steg 10: Använd den utanför
Video: Solar Soil Moisture Meter med ESP8266: 10 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:36
I denna instruktör gör vi en soldriven jordfuktighetsmonitor. Den använder en ESP8266 wifi -mikrokontroller med låg effektkod, och allt är vattentätt så att det kan lämnas utanför. Du kan följa detta recept exakt, eller ta därifrån användbara tekniker för dina egna projekt.
Om du är ny på programmering av mikrokontroller, kolla in min Arduino -klass och Internet of Things -klass för att komma in på grunderna för kabeldragning, kodning och anslutning till internet.
Detta projekt är en del av min gratis solklass, där du kan lära dig fler sätt att utnyttja solens energi genom gravyr och solpaneler.
För att hänga med i det jag jobbar med, följ mig på YouTube, Instagram, Twitter, Pinterest och prenumerera på mitt nyhetsbrev.
Steg 1: Vad du behöver
Du behöver ett laddningsbräda för solbatterier och ESP8266 -utbrott, till exempel NodeMCU ESP8266 eller Huzzah, samt en jordsensor, batteri, strömbrytare, lite tråd och ett hölje för att sätta in kretsen inuti.
Här är komponenterna och materialen som används för markfuktmätaren:
- ESP8266 NodeMCU mikrokontroller (eller liknande, Vin måste tåla upp till 6V)
- Adafruit solar laddningskort med valfri termistor och 2,2K ohm motstånd
- 2200mAh li-ion batteri
- Perma-proto tavla
- Jordfuktighet/temperaturgivare
- 2 kabelförskruvningar
- Vattentät kapsling
- Vattentätt DC -strömkabelpar
- Krympslang
- 3,5 W solpanel
- Tryckknapp strömbrytare
- Dubbelstickad skumtejp
Här är de verktyg du behöver:
- Lödkolv och löd
- Hjälpande händer verktyg
- Wire strippers
- Spola klipp
- Pincett (valfritt)
- Värmepistol eller tändare
- Multimeter (valfritt men praktiskt för felsökning)
- USB A-microB-kabel
- Sax
- Stegborr
Du behöver gratis konton på molndatasidor io.adafruit.com och IFTTT.
Som Amazon Associate tjänar jag på kvalificerade köp som du gör med mina länkar.
Steg 2: Brödbräda -prototyp
Det är viktigt att skapa en lödlös prototyp för brödbräda för sådana här projekt, så att du kan se till att din sensor och kod fungerar innan du gör permanenta anslutningar.
I detta fall har jordsensorn strängade trådar till det var nödvändigt att tillfälligt fästa fasta huvuden till sensortrådarnas ändar med lödning, hjälpande händer och lite värmekrympslang.
Följ kretsschemat för att koppla upp sensorns effekt, jord, klocka och datapinnar (data får också ett 10K uppdragningsmotstånd som följer med jordsensorn).
- Sensor grön tråd till GND
- Sensor röd tråd till 3,3V
- Sensor gul tråd till NodeMCU -stift D5 (GPIO 14)
- Sensor blå kabel till NodeMCU -stift D6 (GPIO 12)
- 10K uppdragningsmotstånd mellan blå datastift och 3,3V
Du kan översätta detta till din föredragna mikrokontroller. Om du använder en Arduino Uno eller liknande stöds ditt kort redan av Arduino -programvaran. Om du använder ESP8266, kolla in min Internet of Things-klass för steg-för-steg-hjälp med att konfigurera ESP8266 i Arduino (genom att lägga till ytterligare URL: er i fältet Extra Boards Manager URLs i Arduinos inställningar, sedan söka efter och välja nya styrelser från styrelsechefen). Jag brukar använda Adafruit ESP8266 Huzzah -korttyp för att programmera NodeMCU ESP8266 -kortet, men du kan också installera och använda det generiska ESP8266 -kortstödet. Du behöver också SiLabs USB -kommunikationschip -drivrutin (tillgänglig för Mac/Windows/Linux).
För att få sensorn igång med mitt Arduino-kompatibla kort laddade jag ner SHT1x Arduino-biblioteket från Practical Arduinos github-sida, packade sedan upp filen och flyttade biblioteksmappen till min Arduino/bibliotek-mapp och döpte om den till SHT1x. Öppna exempelskissen ReadSHT1xValues och ändra stiftnumren till 12 (dataPin) och 14 (clockPin), eller kopiera den modifierade skissen här:
#omfatta
#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instansera SHT1x objekt void setup () {Serial.begin (38400); // Öppna seriell anslutning för att rapportera värden till värden Serial.println ("Starta upp"); } void loop () {float temp_c; float temp_f; flytande luftfuktighet; temp_c = sht1x.readTemperatureC (); // Läs värden från sensorn temp_f = sht1x.readTemperatureF (); fuktighet = sht1x.readHumidity (); Serial.print ("Temperatur:"); // Skriv ut värdena till serieporten Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Luftfuktighet:"); Seriellt tryck (luftfuktighet); Serial.println ("%"); fördröjning (2000); }
Ladda upp den här koden till ditt kort och öppna den seriella bildskärmen för att se sensordataströmmen.
Om din kod inte kommer att kompileras och klagar över att SHT1x.h inte hittas har du inte det nödvändiga sensorbiblioteket installerat korrekt. Kontrollera din Arduino/biblioteksmapp för en som heter SHT1x, och om det är någon annanstans, som din nedladdningsmapp, flytta den till din Arduino biblioteksmapp och byt namn om det behövs.
Om din kod kompilerar men inte laddar upp till ditt kort, dubbelkolla dina kortinställningar, se till att kortet är anslutet och välj rätt port på menyn Verktyg.
Om din kod laddas upp men din seriella bildskärmsingång inte känns igen, dubbelkolla dina överföringshastigheter som anges i din skiss (38400 i det här fallet).
Om din seriella bildskärmsingång inte verkar stämma, dubbelkolla kabeldragningen mot kretsschemat. Är ditt 10K uppdragningsmotstånd på plats mellan datapinnen och 3,3V? Är data och klocka anslutna till rätt stift? Är ström och jord anslutna som de ska vara i hela kretsen? Fortsätt inte förrän den här enkla skissen fungerar!
Nästa steg är specifikt för ESP8266 och konfigurerar den valfria trådlösa sensorrapporteringsdelen av provprojektet. Om du använder en standard (icke-trådlös) Arduino-kompatibel mikrokontroller, fortsätt att utveckla din sista Arduino-skiss och hoppa till Preparera solcellsladdningskort.
Steg 3: Programinstallation
För att kompilera koden för detta projekt med ESP8266 måste du installera några fler Arduino -bibliotek (tillgängliga via bibliotekshanteraren):
- Adafruit IO Arduino
- Adafruit MQTT
- ArduinoHttpClient
Ladda ner koden som bifogas detta steg, packa upp filen och öppna Solar_Powered_Soil_Moisture_Monitor_Tutorial i din Arduino -programvara.
#omfatta
#include #include #include #include // Ange data och klockanslutningar och instansera SHT1x -objektet #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // ställ in flödet AdafruitIO_Feed *fuktighet = io.feed ("fuktighet"); AdafruitIO_Feed *temperatur = io.feed ("temperatur"); const int sleepTime = 15; // 15 minuter
void setup ()
{Serial.begin (115200); // Öppna seriell anslutning för att rapportera värden till värden Serial.println ("Starta upp"); // ansluta till io.adafruit.com Serial.print ("Ansluter till Adafruit IO"); io.connect (); // vänta på en anslutning medan (io.status () <AIO_CONNECTED) {Serial.print ("."); fördröjning (500); } // vi är anslutna Serial.println (); Serial.println (io.statusText ()); }
void loop ()
{io.run (); // io.run (); håller klienten ansluten och krävs för alla skisser. float temp_c; float temp_f; flyta fukt; temp_c = sht1x.readTemperatureC (); // Läs värden från sensorn temp_f = sht1x.readTemperatureF (); fukt = sht1x.readHumidity (); Serial.print ("Temperatur:"); // Skriv ut värdena till serieporten Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Luftfuktighet:"); Serial.print (fukt); Serial.println ("%"); fukt-> spara (fukt); temperatur-> spara (temp_f); Serial.println ("ESP8266 sover …"); ESP.deepSleep (sleepTime * 1000000 * 60); // Sömn }
Denna kod är en sammanställning av sensorkoden från tidigare i den här självstudien och ett grundläggande exempel från molndatatjänsten Adafruit IO. Programmet går in i lågeffektläge och sover för det mesta, men vaknar var 15: e minut för att läsa av temperaturen och fuktigheten i jorden och rapporterar sina data till Adafruit IO. Navigera till fliken config.h och fyll i ditt Adafruit IO -användarnamn och nyckel, samt ditt lokala wifi -nätverksnamn och lösenord, ladda sedan upp koden till din ESP8266 mikrokontroller.
Du måste göra lite förberedelser på io.adafruit.com. När du har skapat flöden för temperatur och luftfuktighet kan du skapa en instrumentpanel för din bildskärm med en graf över sensorvärdena och båda inkommande flödesdata. Om du behöver en uppdatering för att komma igång med Adafruit IO, kolla in den här lektionen i min Internet of Things -klass.
Steg 4: Förbered Solar Charging Board
Förbered solcells laddningskortet genom att lödda på dess kondensator och några ledningar till lastutmatningsdynorna. Jag anpassar min för att ladda snabbare med ett tilläggsmotstånd (2.2K lödt över PROG) som tillval och gör det säkrare att lämna obevakad genom att ersätta ytmonteringsmotståndet med en 10K termistor ansluten till själva batteriet. Detta kommer att begränsa laddningen till ett säkert temperaturintervall. Jag täckte mer om dessa ändringar i mitt Solar USB -laddarprojekt.
Steg 5: Bygg en mikrokontrollkrets
Löd upp mikrokontrollerkortet och strömbrytaren till ett perma-proto-kort.
Anslut solcellsladdarens uteffekt till ingången på din switch, som bör ha en effekt på minst 1 ampere.
Skapa och löd brödbrädans trådanslutningar som beskrivs i kretsschemat ovan (eller enligt din personliga version), inklusive 10K uppdragningsmotstånd på sensorns datalinje.
Solladdarens laddningsstift kommer att ge 3,7 V batteri när det inte finns någon solenergi, men kommer att drivas direkt från solpanelen om den är inkopplad och solig. Därför måste mikrokontrollern kunna tolerera en mängd olika spänningar, så låga som 3,7V och upp till 6V DC. För dem som kräver 5V kan en PowerBoost (500 eller 1000, beroende på den aktuella strömmen) användas för att modulera lastspänningen till 5V (som visas i Solar USB Charger -projektet). Här är några vanliga kort och deras ingångsspänningsområden:
- NodeMCU ESP8266 (används här): 5V USB eller 3.7V-10V Vin
- Arduino Uno: 5V USB eller 7-12V Vin
- Adafruit Huzzah ESP8266 Breakout: 5V USB eller 3.4-6V VBat
För att uppnå den längsta möjliga batteritiden bör du ta dig tid att överväga och optimera den totala strömmen som din nuvarande drar. ESP8266 har en djup sömnfunktion som vi använde i Arduino -skissen för att minska dess strömförbrukning dramatiskt. Den vaknar för att läsa sensorn och drar mer ström medan den ansluter till nätverket för att rapportera sensorns värde och går sedan tillbaka till viloläge under en viss tid. Om din mikrokontroller drar mycket ström och inte lätt kan få vila, överväg att porta ditt projekt till ett kompatibelt kort som drar mindre ström. Ställ en fråga i kommentarerna nedan om du behöver hjälp med att identifiera vilken tavla som kan vara rätt för ditt projekt.
Steg 6: Installera kabelförskruvningar
För att göra väderbeständiga ingångspunkter för solpanelkabeln och sensorkabel installerar vi två kabelgenomföringar på sidan av det väderbeständiga höljet.
Testa dina komponenter för att identifiera den perfekta placeringen, markera och borra sedan hål i ett vattentätt hölje med en stegborr. Installera de två kabelförskruvningarna.
Steg 7: Komplett kretsmontering
Sätt i babordssidan på en vattentät strömkabel i en och löd den till solcellsladdarens DC -ingång (röd till + och svart till -).
För in jordsensorn genom den andra körteln och anslut den till perma-proto enligt kretsschemat.
Tejpa termistorsonden till batteriet. Detta kommer att begränsa laddningen till ett säkert temperaturintervall medan projektet lämnas utan uppsikt utanför.
Laddning när den är för varm eller för kall kan skada batteriet eller starta en brand. Exponering för extrema temperaturer kan orsaka skador och förkorta batteriets livslängd, så ta med det inuti om det är under fryspunkten eller över 45 ℃/113F.
Dra åt kabelförskruvningarna för att göra en väderbeständig tätning runt sina respektive kablar.
Steg 8: Förbered solpanel
Följ min instruktionsbok för att skarva kabeln till din solpanel med pluggsidan på det vattentäta likströmssatsen.
Steg 9: Testa det
Anslut batteriet och slå på kretsen genom att trycka på strömbrytaren.
Testa det och se till att det rapporterar till internet innan du stänger höljet och installerar sensorn i din örtagård, dyrbara krukväxt eller annan jord inom signalområdet för ditt wifi -nätverk.
När data från sensorn loggas online är det enkelt att skapa ett recept för e -post eller textvarningar på API -gateway -webbplatsen If This Then That. Jag konfigurerade min för att mejla mig om markfuktigheten sjunker under 50.
För att testa det utan att vänta på att min anläggning ska torka ut skrev jag in en datapunkt manuellt i mitt fuktighetsmatning på Adafruit IO som föll under tröskeln. Några ögonblick senare kommer mejlet! Om jordens nivåer faller under min angivna nivå får jag ett mejl varje gång fodret uppdateras tills jag vattnar jorden. För min förnuft uppdaterade jag min kod för att prova jorden mycket mindre ofta än var 15: e minut.
Steg 10: Använd den utanför
Detta är ett roligt projekt att anpassa baserat på din anläggnings hydratiseringsbehov, och det är lätt att byta ut eller lägga till sensorer eller integrera solenergifunktionerna i dina andra Arduino -projekt.
Tack för att du följer med! Jag vill gärna höra vad du tycker; skriv gärna i kommentarerna. Detta projekt är en del av min kostnadsfria solklass, där du kan hitta enkla bakgårdsprojekt och fler lektioner om att arbeta med solpaneler. Kolla in det och anmäl dig!
Om du gillar det här projektet kan du vara intresserad av några av mina andra:
- gratis Internet of Things Class
- YouTubes prenumerationsräknare med ESP8266
- Social Stats Tracker Display med ESP8266
- WiFi -väderskärm med ESP8266
- Internet Valentine
Följ mig på YouTube, Instagram, Twitter, Pinterest och Snapchat för att hålla koll på vad jag arbetar med.
Rekommenderad:
Arduino Soil Moisture Monitoring Stick - Glöm aldrig att vattna dina växter: 4 steg (med bilder)
Arduino Soil Moisture Monitoring Stick - Glöm aldrig att vattna dina växter: Glömmer du ofta att vattna dina inomhusväxter? Eller kanske du ger dem för mycket uppmärksamhet och övervattnar dem? Om du gör det bör du göra dig till en batteridriven jordfuktighetsövervakningspinne. Denna bildskärm använder en kapacitiv jordfuktighet
Easy Soil Moisture Sensor Arduino 7 Segment Display: 4 steg (med bilder)
Easy Soil Moisture Sensor Arduino 7 Segment Display: Hej! Karantän kan vara tuff. Jag har turen att ha en liten gård och massor av växter i huset och det fick mig att tänka på att jag skulle kunna göra ett litet verktyg för att hjälpa mig att ta hand om dem medan jag sitter fast hemma. Detta projekt är ett enkelt och funktionellt
Arduino Soil Moisture Project: 4 steg
Arduino Soil Moisture Project: Hej killar Idag presenterar jag mitt första projekt om instruktörer. Det handlar om att mäta jordfuktighet med Arduino och bara en sensor. Detta projekt är väldigt enkelt att göra, och alla som vill börja lära sig arbeta med Arduino -plattformen ska
Thirsty Flamingo Soil Moisture Detector: 5 steg (med bilder)
Thirsty Flamingo Soil Moisture Detector: Fuktsensorer används i en mängd olika projekt. Du kan använda dem för att testa fuktnivåerna i olika material och till och med testa fuktnivåerna i väggarna i ditt hem om du misstänker att de är fuktiga. I det törstiga flamingoprojektet
Soil Moisture Sensing - SF: 4 Steps (with Pictures)
Soil Moisture Sensing - SF: För att påbörja testplanen började vi med vårt mål som var att designa en enhet som skulle kunna upptäcka om ett jordprov är blött av regn eller inte. För att genomföra denna plan var vi tvungna att lära oss hur vi ska använda och sätta upp en jordfuktighet på rätt sätt