Obsah:

Merač vlhkosti solárnej pôdy s ESP8266: 10 krokov (s obrázkami)
Merač vlhkosti solárnej pôdy s ESP8266: 10 krokov (s obrázkami)

Video: Merač vlhkosti solárnej pôdy s ESP8266: 10 krokov (s obrázkami)

Video: Merač vlhkosti solárnej pôdy s ESP8266: 10 krokov (s obrázkami)
Video: Arduino GSM Module Проект по измерению температуры птицы с FireBeetle и Micro Solar Power Manager 2024, Júl
Anonim

V tomto návode vyrábame monitor pôdnej vlhkosti poháňaný slnečnou energiou. Využíva wifi mikrokontrolér ESP8266 s nízkym výkonom a všetko je vodotesné, takže ho môžete nechať vonku. Tento recept môžete presne dodržať, alebo si z neho vziať užitočné techniky pre svoje vlastné projekty.

Ak s programovaním mikrokontrolérov začínate, navštívte moju triedu Arduino a triedu internetu vecí, v ktorej sa zoznámite so základmi zapojenia, kódovania a pripojenia na internet.

Tento projekt je súčasťou mojej bezplatnej slnečnej triedy, kde sa môžete dozvedieť viac spôsobov, ako využiť slnečnú energiu pomocou gravírovania a solárnych panelov.

Aby ste držali krok s tým, na čom pracujem, sledujte ma na stránkach YouTube, Instagram, Twitter, Pinterest a prihláste sa na odber môjho spravodajcu.

Krok 1: Čo budete potrebovať

Čo budete potrebovať
Čo budete potrebovať

Budete potrebovať nabíjaciu dosku solárnej batérie a odpojovač ESP8266, ako napríklad NodeMCU ESP8266 alebo Huzzah, a tiež snímač pôdy, batériu, vypínač, nejaký drôt a kryt, aby ste zapojili svoj obvod dovnútra.

Tu sú komponenty a materiály použité na monitorovanie pôdnej vlhkosti:

  • Mikroprocesor ESP8266 NodeMCU (alebo podobný, Vin musí tolerovať až 6V)
  • Solárna nabíjacia doska Adafruit s voliteľným termistorom a odporom 2,2 K ohmov
  • Li-ion batéria 2200 mAh
  • Doska Perma-proto
  • Senzor vlhkosti/teploty pôdy
  • 2 káblové priechodky
  • Vodotesný kryt
  • Vodotesný pár napájacích káblov DC
  • Teplom zmrštiteľné hadičky
  • 3,5 W solárny panel
  • Tlačidlový vypínač
  • Dvojitá lepiaca penová páska

Tu sú nástroje, ktoré budete potrebovať:

  • Spájkovačka a spájkovačka
  • Pomocné ruky nástroj
  • Odizolovače drôtov
  • Flush snips
  • Pinzeta (voliteľné)
  • Tepelná pištoľ alebo zapaľovač
  • Multimetr (voliteľný, ale vhodný na riešenie problémov)
  • USB kábel A-microB
  • Nožnice
  • Kroková vŕtačka

Budete potrebovať bezplatné účty na serveroch s cloudovými údajmi io.adafruit.com a IFTTT.

Ako spolupracovník Amazonu zarábam na kvalifikovaných nákupoch, ktoré robíte pomocou mojich pridružených odkazov.

Krok 2: Prototyp Breadboardu

Prototyp Breadboardu
Prototyp Breadboardu

Je dôležité vytvoriť prototyp nepájivej dosky pre projekty, ako je tento, aby ste sa pred vytvorením trvalého pripojenia mohli uistiť, že váš senzor a kód fungujú.

Obrázok
Obrázok
Obrázok
Obrázok
Obrázok
Obrázok
Obrázok
Obrázok

V tomto prípade má snímač pôdy splietané drôty, ku ktorým bolo potrebné dočasne pripevniť pevné konektory na konce vodičov snímača pomocou spájky, pomocných rúk a niektorých tepelne zmršťovacích hadičiek.

Obrázok
Obrázok

Podľa schémy zapojenia zapojte napájací, uzemňovací, hodinový a dátový kolík snímača (údaje tiež získajú 10K výsuvný odpor, ktorý sa dodáva so snímačom pôdy).

  • Zelený vodič snímača k GND
  • Senzor červený vodič na 3,3V
  • Žltý vodič snímača k kolíku NodeMCU D5 (GPIO 14)
  • Modrý vodič snímača na kolíku NodeMCU D6 (GPIO 12)
  • 10K pull-up odpor medzi modrým dátovým pinom a 3,3V

Môžete to preložiť do vami preferovaného mikrokontroléra. Ak používate Arduino Uno alebo podobné, vašu dosku už podporuje softvér Arduino. Ak používate ESP8266, pozrite sa do mojej triedy Internet of Things, kde nájdete podrobnú pomoc s nastavením ESP8266 v Arduino (pridaním doplnkových adries URL do poľa URL dodatočných správcov dosiek v nastaveniach Arduina, potom vyhľadaním a výber nových dosiek od správcu dosiek). Na programovanie dosky NodeMCU ESP8266 používam typ dosky Adafruit ESP8266 Huzzah, ale môžete tiež nainštalovať a používať generickú podporu dosky ESP8266. Budete tiež potrebovať ovládač USB komunikačného čipu SiLabs (k dispozícii pre Mac/Windows/Linux).

Aby senzor fungoval s mojou doskou kompatibilnou s Arduino, stiahol som SHT1x Arduino Library z github stránky Praktického Arduina, potom rozbalil súbor a presunul priečinok knižnice do priečinka Arduino/libraries, potom som ho premenoval na SHT1x. Otvorte vzorový náčrt ReadSHT1xValues a zmeňte čísla pinov na 12 (dataPin) a 14 (clockPin) alebo skopírujte upravený náčrt tu:

#zahrnúť

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // inštancia objektu SHT1x void setup () {Serial.begin (38400); // Otvorte sériové pripojenie a nahláste hodnoty hostiteľovi Serial.println („Spustenie“); } void loop () {float temp_c; float temp_f; plaváková vlhkosť; temp_c = sht1x.readTemperatureC (); // Načítanie hodnôt zo snímača temp_f = sht1x.readTemperatureF (); vlhkosť = sht1x.readHumidity (); Serial.print ("Teplota:"); // Vytlačte hodnoty na sériový port Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Vlhkosť:"); Sériový tlač (vlhkosť); Serial.println ("%"); oneskorenie (2000); }

Odošlite tento kód na dosku a otvorte sériový monitor, aby ste videli prúd údajov senzora.

Ak sa váš kód neskompiluje a sťažuje sa, že súbor SHT1x.h sa nenašiel, nemáte správne nainštalovanú potrebnú knižnicu senzorov. Skontrolujte, či v priečinku Arduino/knižnic nie je priečinok s názvom SHT1x, a ak je niekde inde, napríklad v priečinku na sťahovanie, presuňte ho do priečinka s knižnicami Arduino a v prípade potreby ho premenujte.

Ak sa váš kód skompiluje, ale neodošle sa na vašu dosku, dvakrát skontrolujte nastavenia dosky, uistite sa, že je doska zapojená a v ponuke Nástroje vyberte správny port.

Ak sa váš kód nahrá, ale vstup sériového monitora sa nedá rozpoznať, dvakrát skontrolujte, či sa prenosová rýchlosť zhoduje s údajmi uvedenými vo vašom náčrte (v tomto prípade 38 400).

Ak sa váš vstup sériového monitora nezdá správny, dvakrát skontrolujte zapojenie podľa schémy zapojenia. Je váš 10K výsuvný odpor na mieste medzi dátovým kolíkom a 3,3 V? Sú údaje a hodiny pripojené k správnym pinom? Sú v celom obvode zapojené napájanie a uzemnenie tak, ako by mali? Nepokračujte, kým tento jednoduchý náčrt nefunguje!

Ďalší krok je špecifický pre ESP8266 a konfiguruje voliteľnú časť hlásenia bezdrôtového senzora vzorového projektu. Ak používate štandardný (nie bezdrôtový) mikrokontrolér kompatibilný s Arduino, pokračujte vo vývoji svojej konečnej náčrtu Arduino a preskočte na Prepare Solar Charging Board.

Krok 3: Nastavenie softvéru

Nastavenie softvéru
Nastavenie softvéru

Na zostavenie kódu pre tento projekt pomocou ESP8266 budete musieť nainštalovať niekoľko ďalších knižníc Arduino (dostupné prostredníctvom správcu knižníc):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Stiahnite si kód priložený k tomuto kroku, potom súbor rozbaľte a otvorte vo svojom softvéri Arduino návod Solar_Powered_Soil_Moisture_Monitor_Tutorial.

#zahrnúť

#include #include #include #include // Špecifikujte dátové a hodinové spojenia a vytvorte inštanciu objektu SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // nastavenie krmiva AdafruitIO_Feed *vlhkost = io.feed ("vlhkost"); AdafruitIO_Feed *teplota = io.feed ("teplota"); const int sleepTime = 15; // 15 minút

neplatné nastavenie ()

{Serial.begin (115200); // Otvorte sériové pripojenie a nahláste hodnoty hostiteľovi Serial.println („Spustenie“); // pripojenie na io.adafruit.com Serial.print („Pripojenie k Adafruit IO“); io.connect (); // čakať na spojenie while (io.status () <AIO_CONNECTED) {Serial.print ("."); oneskorenie (500); } // sme pripojení Serial.println (); Serial.println (io.statusText ()); }

prázdna slučka ()

{io.run (); // io.run (); udržuje klienta v spojení a je potrebný pre všetky náčrty. float temp_c; float temp_f; plaváková vlhkosť; temp_c = sht1x.readTemperatureC (); // Načítanie hodnôt zo snímača temp_f = sht1x.readTemperatureF (); vlhkosť = sht1x.readHumidity (); Serial.print ("Teplota:"); // Vytlačte hodnoty na sériový port Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Vlhkosť:"); Sériový tlač (vlhkosť); Serial.println ("%"); vlhkosť-> uložiť (vlhkosť); teplota-> uložiť (temp_f); Serial.println („ESP8266 spí …“); ESP.deepSleep (spánok * 10 000 000 * 60); // Spánok}

Tento kód je kombináciou kódu senzora z predchádzajúceho tohto tutoriálu a základným príkladom z cloudovej dátovej služby Adafruit IO. Program prejde do režimu nízkej spotreby a väčšinu času spí, ale každých 15 minút sa prebudí, aby prečítal teplotu a vlhkosť pôdy, a nahlási svoje údaje Adafruit IO. Prejdite na kartu config.h a zadajte svoje používateľské meno a kľúč Adafruit IO, ako aj názov a heslo miestnej siete Wi -Fi, potom nahrajte kód do svojho mikrokontroléra ESP8266.

Obrázok
Obrázok

Na io.adafruit.com sa budete musieť trochu pripraviť. Po vytvorení kanálov pre teplotu a vlhkosť môžete pre svoj monitor vytvoriť informačný panel s grafom hodnôt senzorov a údajmi oboch prichádzajúcich kanálov. Ak si chcete zopakovať začiatok Adafruit IO, pozrite sa na túto lekciu v mojej triede Internet of Things.

Krok 4: Pripravte si solárnu nabíjaciu dosku

Pripravte si solárnu nabíjaciu dosku
Pripravte si solárnu nabíjaciu dosku

Pripravte si solárnu nabíjaciu dosku spájkovaním jej kondenzátora a niektorých vodičov k výstupným podložkám záťaže. Prispôsobujem svoje, aby sa nabíjal rýchlejšie pomocou voliteľného prídavného rezistora (2,2K spájkovaného naprieč PROG) a zaisťuje bezpečnejšie ponechanie bez dozoru nahradením odporu povrchovej montáže 10K termistorom pripojeným k samotnej batérii. To obmedzí nabíjanie na bezpečný teplotný rozsah. Podrobnejšie som sa týmto úpravám venoval vo svojom projekte Solar USB Charger.

Krok 5: Zostavte obvod mikrokontroléra

Zostavte obvod mikrokontroléra
Zostavte obvod mikrokontroléra
Obrázok
Obrázok
Obrázok
Obrázok

Spájkujte dosku mikrokontroléra a sieťový vypínač na dosku perma-proto.

Obrázok
Obrázok

Pripojte výstupný výkon solárnej nabíjačky k vstupu vášho spínača, ktorý by mal byť dimenzovaný najmenej na 1 ampér.

Obrázok
Obrázok

Vytvorte a spájkujte prepojenia vodičov nepájivého poľa popísané v schéme zapojenia vyššie (alebo podľa špecifikácií vašej osobnej verzie), vrátane 10K výsuvného odporu na dátovom vedení senzora.

Nabíjacie kolíky solárnej nabíjačky poskytnú batériu 3,7 V, ak neexistuje žiadna slnečná energia, ale budú napájané priamo zo solárneho panelu, ak je zapojený a slnečný. Mikrokontrolér preto musí byť schopný tolerovať rôzne napätia až do 3,7 V a až do 6 V DC. Pre tých, ktorí vyžadujú 5 V, je možné použiť PowerBoost (500 alebo 1 000, v závislosti od požadovaného prúdu) na moduláciu zaťažovacieho napätia na 5 V (ako je znázornené na projekte solárnej USB nabíjačky). Tu je niekoľko bežných dosiek a ich rozsahov vstupného napätia:

  • NodeMCU ESP8266 (tu použitý): 5V USB alebo 3,7V-10V Vin
  • Arduino Uno: 5V USB alebo 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB alebo 3,4-6V VBat

Aby ste dosiahli čo najdlhšiu výdrž batérie, mali by ste nejaký čas zvážiť a optimalizovať celkový prúd, ktorý vaše aktuálne čerpá. ESP8266 má funkciu hlbokého spánku, ktorú sme použili v náčrte Arduino na dramatické zníženie spotreby energie. Prebudí sa, aby prečítal senzor, a počas pripojenia k sieti odoberá viac prúdu, aby nahlásil hodnotu senzora, a potom sa na určitý čas vráti do režimu spánku. Ak váš mikrokontrolér spotrebúva veľa energie a nedá sa ľahko uspať, zvážte prenos projektu na kompatibilnú dosku, ktorá spotrebuje menej energie. Ak potrebujete pomoc s určením, ktorá doska by mohla byť pre váš projekt správna, položte otázku do komentárov nižšie.

Krok 6: Nainštalujte káblové priechodky

Obrázok
Obrázok

Aby boli vstupné body odolné voči poveternostným vplyvom pre kábel solárneho panelu a kábel senzora, nainštalujeme dve káblové priechodky na bočnú stranu krytu odolného voči poveternostným vplyvom.

Obrázok
Obrázok
Obrázok
Obrázok

Otestujte, či vaše komponenty vyhovujú, identifikujte ideálne umiestnenie, potom pomocou krokového vŕtačky označte a vyvŕtajte otvory do vodotesného krytu. Namontujte dve káblové priechodky.

Obrázok
Obrázok

Krok 7: Kompletná montáž obvodu

Kompletná montáž obvodu
Kompletná montáž obvodu

Pripojte portovú stranu vodotesného napájacieho kábla do jedného a pripájajte ho k DC vstupu solárnej nabíjačky (červený na + a čierny na -).

Obrázok
Obrázok

Vložte snímač pôdy cez druhú žľazu a pripojte ho k perma-proto podľa schémy zapojenia.

Obrázok
Obrázok

Prilepte sondu termistora k batérii. Tým sa obmedzí nabíjanie na bezpečný teplotný rozsah, pokiaľ je projekt ponechaný bez dozoru vonku.

Obrázok
Obrázok

Nabíjanie za tepla alebo za studena môže poškodiť batériu alebo spôsobiť požiar. Vystavenie extrémnym teplotám môže spôsobiť poškodenie a skrátenie životnosti batérie, preto ju vezmite dovnútra, ak je pod bodom mrazu alebo nad 45 ℃/113F.

Obrázok
Obrázok

Utiahnite káblové priechodky tak, aby boli okolo príslušných káblov utesnené proti poveternostným vplyvom.

Krok 8: Príprava solárneho panelu

Pripravte si solárny panel
Pripravte si solárny panel

Postupujte podľa mojich pokynov a spojte kábel pre svoj solárny panel s koncovkou vodotesnej sady káblov jednosmerného prúdu.

Krok 9: Otestujte to

Otestujte to
Otestujte to

Pripojte batériu a zapnite obvod stlačením vypínača.

Obrázok
Obrázok

Pred zatvorením krytu a inštaláciou senzora do bylinkovej záhrady, vzácnej rastliny v črepníku alebo na inú pôdu v dosahu signálu vašej siete Wi -Fi to vyskúšajte a overte si, či sa hlási na internete.

Obrázok
Obrázok

Akonáhle sa údaje zo senzora zaznamenávajú online, je ľahké nastaviť recept na e -mailové alebo textové upozornenia na webe brány API, ak toto, potom potom. Nakonfiguroval som ten svoj, aby mi poslal e -mail, ak hladina pôdnej vlhkosti klesne pod 50.

Aby som to otestoval bez toho, aby som čakal, kým mi rastlina vyschne, ručne som zadal dátový bod do svojho krmiva pre vlhkosť na Adafruit IO, ktorý klesol pod prah. O chvíľu neskôr príde e -mail! Ak hladiny pôdy klesnú pod moju zadanú úroveň, budem dostávať e -maily vždy, keď sa informačný kanál aktualizuje, kým pôdu nepolejem. Pre svoj zdravý rozum som aktualizoval svoj kód, aby som odoberal vzorky pôdy oveľa menej často ako každých 15 minút.

Krok 10: Používajte ho vonku

Použite ho vonku!
Použite ho vonku!
Použite ho vonku!
Použite ho vonku!

Jedná sa o zábavný projekt, ktorý je možné prispôsobiť na základe potrieb hydratácie vašej rastliny, a je ľahké ho vymeniť alebo pridať senzory alebo integrovať funkcie slnečnej energie do vašich ďalších projektov Arduino.

Ďakujeme, že nás sledujete! Rád by som počul, čo si myslíte; prosím napíšte do komentárov. Tento projekt je súčasťou mojej bezplatnej solárnej triedy, kde nájdete jednoduché projekty na záhrade a ďalšie lekcie práce so solárnymi panelmi. Pozrite sa na to a zaregistrujte sa!

Ak sa vám páči tento projekt, mohli by vás zaujímať niektoré z mojich ďalších:

  • bezplatná trieda internetu vecí
  • Počítadlo predplatiteľov YouTube s ESP8266
  • Displej sledovača sociálnych štatistík s ESP8266
  • WiFi meteorologický displej s ESP8266
  • Internetový Valentín

Aby ste držali krok s tým, na čom pracujem, sledujte ma na stránkach YouTube, Instagram, Twitter, Pinterest a Snapchat.

Odporúča: