Obsah:

Měřič vlhkosti solární půdy s ESP8266: 10 kroků (s obrázky)
Měřič vlhkosti solární půdy s ESP8266: 10 kroků (s obrázky)

Video: Měřič vlhkosti solární půdy s ESP8266: 10 kroků (s obrázky)

Video: Měřič vlhkosti solární půdy s ESP8266: 10 kroků (s obrázky)
Video: Arduino návody | Půdní vlhkoměr 2024, Červen
Anonim

V tomto Instructable vyrábíme solární monitor vlhkosti půdy. Používá wifi mikrokontrolér ESP8266 s nízkým výkonem a vše je vodotěsné, takže jej můžete nechat venku. Tento recept můžete přesně dodržovat, nebo si z něj vzít užitečné techniky pro vlastní projekty.

Pokud s programováním mikrokontrolérů začínáte, podívejte se prosím na moji třídu Arduino Class a Internet of Things, abyste se seznámili se základy zapojení, kódování a připojení k internetu.

Tento projekt je součástí mé bezplatné sluneční třídy, kde se můžete naučit více způsobů, jak využít sluneční energii pomocí gravírování a solárních panelů.

Chcete -li držet krok s tím, na čem pracuji, sledujte mě na YouTube, Instagramu, Twitteru, Pinterestu a přihlaste se k odběru mého zpravodaje.

Krok 1: Co budete potřebovat

Co budete potřebovat
Co budete potřebovat

Budete potřebovat desku pro nabíjení solární baterie a odpojovač ESP8266, jako je NodeMCU ESP8266 nebo Huzzah, a také snímač půdy, baterii, vypínač, nějaký vodič a skříň, do které zapojíte svůj obvod.

Zde jsou komponenty a materiály použité pro monitor vlhkosti půdy:

  • Mikroprocesor ESP8266 NodeMCU (nebo podobný, Vin musí tolerovat až 6V)
  • Solární nabíjecí deska Adafruit s volitelným termistorem a odporem 2,2 K ohmů
  • Li-ion baterie 2200 mAh
  • Deska Perma-proto
  • Čidlo vlhkosti/teploty půdy
  • 2 kabelové průchodky
  • Vodotěsné pouzdro
  • Vodotěsný pár napájecího kabelu DC
  • Smršťovací bužírky
  • 3,5W solární panel
  • Tlačítko vypínače
  • Dvojitá lepicí pěnová páska

Zde jsou nástroje, které budete potřebovat:

  • Páječka a pájka
  • Pomocné ruce nástroj
  • Odstraňovače drátů
  • Flush snips
  • Pinzeta (volitelně)
  • Tepelná pistole nebo zapalovač
  • Multimetr (volitelný, ale praktický při odstraňování problémů)
  • USB A-microB kabel
  • Nůžky
  • Krokový vrták

Budete potřebovat bezplatné účty na cloudových datových webech io.adafruit.com a IFTTT.

Jako Amazon Associate vydělávám na oprávněných nákupech, které provádíte pomocí mých partnerských odkazů.

Krok 2: Prototyp Breadboardu

Prototyp prkénka
Prototyp prkénka

Je důležité vytvořit prototyp nepájivé desky pro projekty, jako je tento, abyste se mohli ujistit, že váš senzor a kód fungují před jakýmkoli trvalým připojením.

obraz
obraz
obraz
obraz
obraz
obraz
obraz
obraz

V tomto případě má půdní senzor splétané dráty, takže bylo nutné dočasně připojit pevné hlavičky na konce vodičů senzoru pomocí pájky, pomocných rukou a některých smršťovacích hadiček.

obraz
obraz

Podle schématu zapojení zapojte napájení, zem, hodiny a datové piny senzoru (data také získají 10K pull-up odpor, který je dodáván se snímačem půdy).

  • Zelený vodič senzoru k GND
  • Červený vodič senzoru na 3,3V
  • Žlutý vodič senzoru na pin NodeMCU D5 (GPIO 14)
  • Modrý vodič senzoru k pinu NodeMCU D6 (GPIO 12)
  • 10K pull-up odpor mezi modrým datovým pinem a 3,3V

Můžete to přeložit do preferovaného mikrokontroléru. Pokud používáte Arduino Uno nebo podobné, vaše deska je již podporována softwarem Arduino. Pokud používáte ESP8266, podívejte se prosím na moji třídu Internet of Things, kde najdete podrobnou pomoc s nastavením ESP8266 v Arduinu (přidáním doplňkových adres URL do pole URL doplňkových správců desek v předvolbách Arduina, vyhledáním a výběr nových desek ze správce desek). K programování desky NodeMCU ESP8266 používám typ desky Adafruit ESP8266 Huzzah, ale můžete také nainstalovat a používat obecnou podporu desky ESP8266. Budete také potřebovat ovladač komunikačního čipu SiLabs USB (k dispozici pro Mac/Windows/Linux).

Aby senzor fungoval s mojí deskou kompatibilní s Arduino, stáhl jsem si SHT1x Arduino Library ze stránky github Praktického Arduina, poté rozbalil soubor a přesunul složku knihovny do složky Arduino/libraries, poté ji přejmenoval na SHT1x. Otevřete příklad skici ReadSHT1xValues a změňte čísla pinů na 12 (dataPin) a 14 (clockPin), nebo zkopírujte upravenou skicu zde:

#zahrnout

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instance instance SHT1x object void setup () {Serial.begin (38400); // Otevřete sériové připojení pro hlášení hodnot hostiteli Serial.println ("Spouštění"); } void loop () {float temp_c; float temp_f; plovoucí vlhkost; temp_c = sht1x.readTemperatureC (); // Načtení hodnot ze snímače temp_f = sht1x.readTemperatureF (); vlhkost = sht1x.readHumidity (); Serial.print ("Teplota:"); // Vytiskněte hodnoty na sériový port Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Vlhkost:"); Sériový tisk (vlhkost); Serial.println ("%"); zpoždění (2000); }

Nahrajte tento kód na desku a otevřete sériový monitor, abyste viděli datový proud senzoru.

Pokud se váš kód nezkompiluje a stěžuje si, že SHT1x.h nebyl nalezen, nemáte správně nainstalovanou požadovanou knihovnu senzorů. Zkontrolujte, zda ve složce Arduino/knihovny není složka s názvem SHT1x, a pokud je někde jinde, například ve složce se soubory ke stažení, přesuňte ji do složky knihoven Arduino a v případě potřeby ji přejmenujte.

Pokud se váš kód zkompiluje, ale nenahraje se na vaši desku, zkontrolujte nastavení desky, ujistěte se, že je deska zapojena, a v nabídce Nástroje vyberte správný port.

Pokud se váš kód nahraje, ale váš vstup pro sériový monitor je nerozpoznatelný, znovu zkontrolujte, zda se vaše přenosová rychlost shoduje se specifikací uvedenou ve vašem náčrtu (v tomto případě 38400).

Pokud se váš vstup sériového monitoru nezdá správný, zkontrolujte zapojení podle schématu zapojení. Je váš 10K pull-up odpor na místě mezi datovým pinem a 3,3 V? Jsou data a hodiny připojeny ke správným pinům? Je v celém obvodu zapojeno napájení a uzemnění tak, jak by mělo? Nepokračujte, dokud tento jednoduchý náčrt nefunguje!

Další krok je specifický pro ESP8266 a konfiguruje volitelnou část pro hlášení bezdrátového senzoru ukázkového projektu. Pokud používáte standardní (ne bezdrátový) mikrokontrolér kompatibilní s Arduino, pokračujte ve vývoji své konečné skici Arduino a přeskočte na Prepare Solar Charging Board.

Krok 3: Nastavení softwaru

Nastavení softwaru
Nastavení softwaru

Chcete -li zkompilovat kód pro tento projekt s ESP8266, budete muset nainstalovat několik dalších knihoven Arduino (k dispozici prostřednictvím správce knihoven):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Stáhněte si kód připojený k tomuto kroku, rozbalte soubor a otevřete software Solar_Powered_Soil_Moisture_Monitor_Tutorial v softwaru Arduino.

#zahrnout

#include #include #include #include // Specifikujte datová a hodinová připojení a vytvořte instanci objektu SHT1x #define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // nastavení zdroje AdafruitIO_Feed *vlhkost = io.feed ("vlhkost"); AdafruitIO_Feed *teplota = io.feed ("teplota"); const int sleepTime = 15; // 15 minut

neplatné nastavení ()

{Serial.begin (115200); // Otevřete sériové připojení pro hlášení hodnot hostiteli Serial.println ("Spouštění"); // připojení k serveru io.adafruit.com Serial.print ("Připojení k Adafruit IO"); io.connect (); // počkejte na připojení while (io.status () <AIO_CONNECTED) {Serial.print ("."); zpoždění (500); } // jsme připojeni Serial.println (); Serial.println (io.statusText ()); }

prázdná smyčka ()

{io.run (); // io.run (); udržuje klienta připojeného a je vyžadován pro všechny skici. float temp_c; float temp_f; plovoucí vlhkost; temp_c = sht1x.readTemperatureC (); // Čtení hodnot ze snímače temp_f = sht1x.readTemperatureF (); vlhkost = sht1x.readHumidity (); Serial.print ("Teplota:"); // Vytiskněte hodnoty na sériový port Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Vlhkost:"); Sériový tisk (vlhkost); Serial.println ("%"); vlhkost-> uložit (vlhkost); teplota-> uložit (temp_f); Serial.println („ESP8266 spí …“); ESP.deepSleep (sleepTime * 1000000 * 60); // Spánek}

Tento kód je mashupem kódu senzoru z dříve v tomto kurzu a základním příkladem cloudové datové služby Adafruit IO. Program přejde do režimu nízké spotřeby a většinu času prospí, ale každých 15 minut se probudí, aby odečetl teplotu a vlhkost půdy, a svá data nahlásí Adafruit IO. Přejděte na kartu config.h a zadejte své uživatelské jméno a klíč Adafruit IO, název místní sítě Wi -Fi a heslo a poté nahrajte kód do svého mikrokontroléru ESP8266.

obraz
obraz

Na io.adafruit.com se budete muset trochu připravit. Po vytvoření kanálů pro teplotu a vlhkost můžete pro svůj monitor vytvořit řídicí panel s grafem hodnot senzorů a daty obou příchozích kanálů. Potřebujete -li si zopakovat začátek Adafruit IO, podívejte se na tuto lekci v mé třídě Internet of Things.

Krok 4: Připravte si solární nabíjecí desku

Připravte si solární nabíjecí desku
Připravte si solární nabíjecí desku

Připravte si solární nabíjecí desku připájením jejího kondenzátoru a několika vodičů k výstupním podložkám zátěže. Přizpůsobuji svůj k rychlejšímu nabíjení pomocí volitelného přídavného rezistoru (2,2K pájeného napříč PROG) a díky tomu je bezpečnější ponechat bez dozoru výměnou rezistoru pro povrchovou montáž za 10K termistor připojený k samotné baterii. To omezí nabíjení na bezpečný teplotní rozsah. Podrobněji jsem se těmto úpravám věnoval ve svém projektu Solar USB Charger.

Krok 5: Sestavte obvod mikrokontroléru

Sestavte obvod mikrokontroléru
Sestavte obvod mikrokontroléru
obraz
obraz
obraz
obraz

Pájejte desku mikrokontroléru a vypínač na desku perma-proto.

obraz
obraz

Připojte výstupní výkon solární nabíječky ke vstupu vašeho spínače, který by měl být dimenzován alespoň na 1 ampér.

obraz
obraz

Vytvořte a připájejte zapojení vodičů na breadboardu popsaná ve schématu zapojení výše (nebo podle specifikací vaší osobní verze), včetně 10K výsuvného odporu na datové lince senzoru.

Zátěžové piny solární nabíječky poskytnou energii baterie 3,7 V, pokud neexistuje žádná solární energie, ale budou napájeny přímo ze solárního panelu, pokud je zapojený a slunečný. Mikrokontrolér proto musí být schopen tolerovat různá napětí, od 3,7 V do 6 V DC. Pro ty, kteří vyžadují 5V, lze použít PowerBoost (500 nebo 1000, v závislosti na požadovaném proudu) k modulaci napájecího napětí na 5V (jak je uvedeno v projektu solární USB nabíječky). Zde jsou některé běžné desky a jejich rozsahy vstupního napětí:

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

Abyste dosáhli co nejdelší životnosti baterie, měli byste nějaký čas zvážit a optimalizovat celkový proud, který vaše aktuální čerpá. ESP8266 má funkci hlubokého spánku, kterou jsme použili v náčrtu Arduino, abychom dramaticky snížili spotřebu energie. Probudí se, aby přečetl senzor, a odebírá více proudu, zatímco se připojuje k síti, aby hlásil hodnotu senzoru, a poté se na určitou dobu vrátí do režimu spánku. Pokud váš mikrokontrolér čerpá hodně energie a nelze jej snadno uspat, zvažte přenesení projektu na kompatibilní desku, která odebírá méně energie. Pokud potřebujete pomoc s určením, která deska by mohla být pro váš projekt vhodná, napište do níže uvedených komentářů otázku.

Krok 6: Nainstalujte kabelové průchodky

obraz
obraz

Abychom vytvořili vstupní body odolné proti povětrnostním vlivům pro kabel solárního panelu a kabel senzoru, nainstalujeme dvě kabelové průchodky do boku krytu odolného proti povětrnostním vlivům.

obraz
obraz
obraz
obraz

Vyzkoušejte, zda vaše součásti vyhovují, aby bylo možné identifikovat ideální umístění, poté pomocí krokového vrtáku označte a vyvrtejte otvory ve vodotěsném pouzdře. Namontujte dvě kabelové průchodky.

obraz
obraz

Krok 7: Dokončete montáž obvodu

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

Vložte portovou stranu vodotěsného napájecího kabelu do jednoho a připájejte jej ke stejnosměrnému vstupu solární nabíječky (červený na + a černý na -).

obraz
obraz

Zasuňte snímač půdy skrz druhou ucpávku a připojte jej k perma-proto podle schématu zapojení.

obraz
obraz

Přilepte sondu termistoru k baterii. Tím se omezí nabíjení na bezpečný teplotní rozsah, zatímco je projekt ponechán bez dozoru venku.

obraz
obraz

Nabíjení za tepla nebo za studena může poškodit baterii nebo způsobit požár. Vystavení extrémním teplotám může způsobit poškození a zkrátit životnost baterie, proto ji vezměte dovnitř, pokud je pod bodem mrazu nebo nad 45 ℃/113F.

obraz
obraz

Utáhněte kabelové průchodky tak, aby kolem jejich kabelů bylo těsnění odolné vůči povětrnostním vlivům.

Krok 8: Příprava solárního panelu

Připravte si solární panel
Připravte si solární panel

Postupujte podle mých pokynů a spojte kabel pro váš solární panel se zástrčkou vodotěsné sady napájecích kabelů DC.

Krok 9: Otestujte to

Otestujte to
Otestujte to

Připojte baterii a zapněte obvod stisknutím vypínače.

obraz
obraz

Vyzkoušejte to a ujistěte se, že se hlásí na internet, než zavřete kryt a nainstalujete senzor do vaší bylinkové zahrady, vzácné rostliny v květináči nebo jiné půdy v dosahu signálu vaší wifi sítě.

obraz
obraz

Jakmile jsou data ze senzoru zaznamenána online, je snadné nastavit recept na e -mailová nebo textová upozornění na webu brány API If This Then That. Konfiguroval jsem svůj, aby mi poslal e -mail, pokud úroveň vlhkosti půdy klesne pod 50.

Abych to otestoval, aniž bych čekal, až moje rostlina vyschne, ručně jsem zadal datový bod do svého krmiva pro vlhkost na Adafruit IO, který klesl pod práh. O chvíli později přijde e -mail! Pokud hladiny půdy klesnou pod zadanou úroveň, dostanu e -mail pokaždé, když se zdroj aktualizuje, dokud půdu nezalévám. Pro svůj zdravý rozum jsem aktualizoval svůj kód, abych vzorkoval půdu mnohem méně často než každých 15 minut.

Krok 10: Použijte jej venku

Použijte jej venku!
Použijte jej venku!
Použijte jej venku!
Použijte jej venku!

Jedná se o zábavný projekt, který lze přizpůsobit podle potřeb hydratace vaší rostliny, a je snadné jej vyměnit nebo přidat senzory nebo integrovat funkce solární energie do vašich dalších projektů Arduino.

Děkujeme za sledování! Rád bych slyšel, co si myslíte; prosím napište do komentářů. Tento projekt je součástí mé bezplatné solární třídy, kde najdete snadné projekty na zahradě a další lekce práce se solárními panely. Podívejte se na to a zaregistrujte se!

Pokud se vám tento projekt líbí, můžete se zajímat o některé z mých dalších:

  • bezplatná třída internetu věcí
  • Počítadlo odběratelů YouTube s ESP8266
  • Zobrazení sledování sociálních statistik s ESP8266
  • WiFi předpověď počasí s ESP8266
  • Internetový Valentýn

Abyste udrželi krok s tím, na čem pracuji, sledujte mě na YouTube, Instagramu, Twitteru, Pinterestu a Snapchatu.

Doporučuje: