Obsah:

Další meteorologická stanice IoT: 8 kroků
Další meteorologická stanice IoT: 8 kroků

Video: Další meteorologická stanice IoT: 8 kroků

Video: Další meteorologická stanice IoT: 8 kroků
Video: Když tě málem srazí na kole 2024, Červenec
Anonim
Další meteorologická stanice IoT
Další meteorologická stanice IoT
Další meteorologická stanice IoT
Další meteorologická stanice IoT
Další meteorologická stanice IoT
Další meteorologická stanice IoT
Další meteorologická stanice IoT
Další meteorologická stanice IoT

Následoval dárek k narozeninám pro mého otce; inspirovaný dalším Instructable, který jsem viděl a původně měl v úmyslu se mu ukázat jako stavebnice pro vlastní stavbu. Když jsem s ním začal pracovat na tomto projektu, velmi rychle jsem si uvědomil, že úvodní tutoriál, který inspiroval dárek, je zastaralý a že mnoho dalších online tutoriálů mělo ve svých vysvětlivkách značné mezery. Rozhodl jsem se proto vydat další meteorologickou stanici IoT, která by snad mohla být snadno sledovatelná od začátku do konce.

Tento návod vám dále ukazuje, jak používat Blynk, Tabulky Google nebo obojí k monitorování a zaznamenávání údajů ze senzorů. Záznamy v Tabulkách Google se navíc zapisují přímo do listu (bez nutnosti použití služby třetí strany).

Pokud jde o obrazovku Stevenson, existuje mnoho dostupných online, které lze 3D vytisknout, např. https://www.thingiverse.com/thing:1718334. Budu na tom stavět pro tento Instructable.

Stevenson Screen je „úkryt nástroje je úkryt nebo kryt meteorologických přístrojů před srážkami a přímým tepelným zářením z vnějších zdrojů, přičemž stále umožňuje volný pohyb vzduchu kolem nich“. (Wikipedie).

Díly

  • Wemos LolIn - NodeMCU v3 (1,43 USD)
  • BME280 (snímač teploty, tlaku a vlhkosti) (2,40 USD)
  • 6V 1000mA solární panel (9,96 USD)
  • Modul 5V 1A nabíjecí desky lithiové baterie Micro USB 18650+ochrana Duální funkce TP4056 (0,99 USD)
  • 4x 1,2V NiMH dobíjecí baterie
  • Držák baterie (4x AA, bok po boku a konec na konec)
  • Zástrčka konektoru Micro USB Male
  • Stahovací pásky
  • 3x křídlové matice
  • Tyč nebo koště
  • Epoxid a/nebo superlepidlo (při zpětném pohledu mohl křemík fungovat lépe)

Software

  • Blynk App
  • Tabulky Google (pokud chcete mít přístup k historickým datům)
  • EasyEDA (pro kreslení schématu)
  • Arduino IDE

Nástroje

  • Páječka
  • Pájka
  • Smršťovací bužírky
  • 3D tiskárna
  • Tavná pistole

Krok 1: 3D tisk - obrazovka Stevenson

3D tisk - obrazovka Stevenson
3D tisk - obrazovka Stevenson
3D tisk - obrazovka Stevenson
3D tisk - obrazovka Stevenson
3D tisk - obrazovka Stevenson
3D tisk - obrazovka Stevenson

Jak již bylo zmíněno, stáhněte si soubory z https://www.thingiverse.com/thing:1718334 a vytiskněte požadované bity. Pokyny k montáži najdete také ve výše uvedeném odkazu. Udělal jsem nějaké úpravy (viz poznámky níže).

Vytištěné díly jsou:

  • Top_Cover_for_m3_tapping.stl
  • Middle_Ring.stl (x5)
  • Middle_Ring_bottom.stl (x1, STL připojeno výše)
  • Solid_Plate.stl (x1)
  • Solid_Plate_Base.stl (x1)
  • Pole_Mount_1in_Round.stl
  • Sensor_Grid.stl
  • Electronics_Mount.stl
  • My_Solar_Cell_Mount.stl (x2, STL připojeno výše)

Objednávka montáže je:

  • Provlékněte otvory
  • Zašroubujte tyče M3 do závitových hrdel
  • Top_Cover
  • Solid_Plate
  • Střední_kroužky
  • Zasuňte Sensor_Grid
  • Elektronika_Montáž
  • Solid_Plate_Bottom
  • Pole_Mount
  • Hodnoty My_Solar_Cell_Mounts jsou epoxidovány na horní část Top_Cover

Do pevných desek jsem vyvrtal otvory, aby se nabíjecí kabel ze solárního panelu připojil k nabíječce, a poté jeden, aby kabel vedl z ovladače k senzoru na Sensor_Grid.

Po dokončení byl senzor naprogramován tak, aby každých 60 minut prováděl následující měření:

  • Teplota
  • Vlhkost vzduchu
  • Tlak

Poznámky

  • Přizpůsobil jsem držáky solárních článků, aby lépe vyhovovaly držení mého solárního článku.
  • Instaloval jsem elektroniku mezi Pole_Mount a Solid_Plate. Nezdálo se, že by to poskytovalo dobrou ochranu elektroniky. Proto jsem na Solid_Plate upravil tak, aby měl sukni, která by pak zacelila mezeru a tím poskytla lepší ochranu elektroniky. Některé z výše uvedených fotografií byly pořízeny před provedením této změny.
  • Můj epoxid přistál a nedržel solární panel, který jsem poté znovu připevnil super lepidlem. Myslím, že přistoupím na to, že budu muset používat křemík.

Krok 2: Okruh

Okruh
Okruh
Okruh
Okruh

Zapojte obvod podle schématu a upevněte LoLin a BME280 na 3D vytištěnou síť, jak je znázorněno na fotografii.

BME280 -> LiLon

  • VCC -> 3,3 V.
  • GND -> GND
  • SCL -> D1
  • SDA -> D2

LiLon -> LiLon

D0 -> RST (je to nutné k probuzení ovladače z hlubokého spánku, ale musí být připojeno až po nahrání kódu do ovladače)

POZNÁMKA

Při získávání vhodné baterie LiLon jsem měl problémy. Také z nějakého důvodu jsem neměl úspěch při napájení přes VIN. Napájel jsem tedy následovně:

  • Výstup z TP4056 byl připojen ke konektoru Male USB, který byl poté zapojen do zásuvky USB desky, aby bylo možné jej napájet.
  • B- a B+ na TP4056 byly připojeny k držáku baterií AA, který držel baterie NiMH.

Krok 3: IoT - Blynk

IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk

„Blynk je hardwarově agnostická platforma IoT s přizpůsobitelnými mobilními aplikacemi, privátním cloudem, pravidly a nástrojem pro správu zařízení pro správu zařízení“. V zásadě vám umožňuje bezpečně spravovat a monitorovat vzdálená čidla odkudkoli na světě přes internet. Zatímco jde o komerční službu, ke každému účtu je poskytnuto 2 000 kreditů zdarma. Díky kreditům můžete ke svému senzoru nebo senzorům přidružit různá měřidla, displeje, oznámení atd. Zatímco ceny předplatného jsou mimo rozsah rozpočtu fandy, bezplatné kredity stačí na jednoduchý projekt, jako je tento.

Chcete -li službu začít používat, musíte si nejprve stáhnout aplikaci Blynk do telefonu/zařízení, vytvořit si účet a (nebo se přihlásit pomocí stávajícího účtu) a poté vytvořit nový projekt následujícím způsobem:

  • Vyberte si hardware
  • Pojmenujte svůj projekt (v tomto případě jsem použil „meteorologickou stanici“).
  • Klikněte na „Vytvořit“
  • Poté vám přijde e-mailem ověřovací kód.

Nebudete muset přidávat požadované widgety. Ke svým 2000 kreditům zdarma jsem přidal následující:

  • 3 měřidla
  • 1 Super graf

Měřidla a grafy byly nastaveny podle přiložených fotografií, přičemž každému byl přiřazen vlastní virtuální pin, který by byl v kódu použit jako druhý.

Až budete hotovi s nastavením, můžete stisknutím tlačítka přehrávání v pravém horním rohu zahájit shromažďování data.

Další informace viz

docs.blynk.cc/#getting-started.

Krok 4: Kód - Příprava IDE Arduino

K dokončení tohoto projektu bude nutné do Arduino IDE přidat následující knihovny:

  • https://github.com/adafruit/Adafruit_BME280_Library (potřeba snímače teploty, tlaku a vlhkosti)
  • https://github.com/adafruit/Adafruit_Sensor
  • https://github.com/esp8266/Arduino (tím získáte přístup k desce ESP8266)
  • https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (knihovna Blynk)
  • https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (pro připojení k Tabulkám Google je potřeba

Pokyny k instalaci knihoven pro Arduino IDE najdete na

Moje nastavení hardwaru je následující:

  • Deska: NodeMCU 1.0 (modul ESP-12E)
  • Rychlost nahrávání: 115200

Při použití přiloženého kódu v následujících krocích se vždy řiďte komentáři v kódu s ohledem na přidání následujícího:

  • Wifi SID
  • Wifi heslo
  • Autorizační klíč Blynk
  • ID skriptu Google
  • Klíč pro sdílení Google Sheet

Krok 5: Kód - Blynk

Věky jsem bojoval, aby můj snímač BME280 fungoval, dokud jsem nenašel příklad, který obsahoval následující řádek.

status = bme.begin (0x76); // Adresa I2C senzoru, který používám, je 0x76

Zdá se, že jsem potřeboval nastavit adresu senzoru. Jakmile jsem to udělal, všechno fungovalo dobře.

Blynk má opravdu pěkné mobilní uživatelské rozhraní, ale má následující omezení:

  • Pouze 2 000 bezplatných kreditů, projekty vyžadující více než ty vyžadují nákladné měsíční předplatné (pokud hostujete a neudržujete vlastní server Blynk).
  • Pokud nejste hostitelem vlastního serveru Blynk, nemůžete exportovat historická data.

Z výše uvedených důvodů jsem se podíval na to, jak bych mohl svůj proces sběru dat integrovat do Tabulky Google. To je popsáno v další části.

Krok 6: Kód - Tabulky Google

Kód - Tabulky Google
Kód - Tabulky Google
Kód - Tabulky Google
Kód - Tabulky Google
Kód - Tabulky Google
Kód - Tabulky Google

Abyste mohli zaznamenávat údaje, abyste mohli později analyzovat historická data, musíte je zapsat do nějaké databáze. Knihovna HTTPSRedirect nám to umožňuje zapsáním našich dat do Tabulky Google.

Hlavní omezení tohoto přístupu jsou následující:

  • Žádné pěkné mobilní uživatelské rozhraní
  • Tabulka Google může mít maximálně 400 000 buněk. Pro tento projekt to není velký problém, protože bude trvat jen něco málo přes 11 let, než bude dosaženo tohoto limitu.

List Google je nastaven následovně.

Vytvořte list Google se dvěma listy.

List 1: Data

Datový list potřebuje 4 sloupce, tj. Datum/čas, teplotu, vlhkost, tlak (sloupce A až D). Sloupce vhodně formátujte, např. Sloupec A bude „Datum a čas“, aby se v buňkách zobrazovalo datum a čas.

List 2: Dashboard

Vytvořte list řídicího panelu podle přiložených fotografií a zadejte vzorce níže:

  • B2: = počet (Data! B: B) -1
  • B3: = B1+ČASOVÁ HODNOTA (CONCATENATE ("00:", text (G7, "0")))
  • B6: = dotaz (Data! A2: D, "Vyberte pořadí B podle limitu popisu 1")
  • C6: = dotaz (Data! A2: D, "Vyberte pořadí C podle limitu popisu 1")
  • D6: = dotaz (Data! A2: D, "Vyberte pořadí D podle limitu popisu 1")
  • B8: = dotaz (Data! A2: D, "Vyberte objednávku podle B desc limit 1")
  • C8: = dotaz (Data! A2: D, "Vyberte objednávku podle C desc limit 1")
  • D8: = dotaz (Data! A2: D, "Vyberte objednávku podle D desc limit 1")
  • B9: = dotaz (Data! A2: D, "Vyberte B pořadí podle B desc limit 1")
  • C9: = dotaz (Data! A2: D, "Vyberte pořadí C podle C desc limit 1")
  • D9: = dotaz (Data! A2: D, "Vyberte objednávku D podle limitu D desc 1")
  • B11: = dotaz (Data! A2: D, "Vyberte A, kde B není nulové pořadí podle limitu B asc 1")
  • C11: = dotaz (Data! A2: D, "Vyberte A, kde C není nulové pořadí podle limitu C asc 1")
  • D11: = dotaz (Data! A2: D, "Vyberte A, kde D není nulové pořadí podle limitu D asc 1")
  • B12: = dotaz (Data! A2: D, "Vyberte B, kde B není nulové pořadí podle limitu B asc 1")
  • C12: = dotaz (Data! A2: D, "Vyberte C, kde C není nulové pořadí podle C asc limit 1")
  • D12: = dotaz (Data! A2: D, "Vyberte D, kde D není nulové pořadí podle limitu D asc 1")
  • G3: = 4+B2*4+29+17
  • G4: = (G2-G3)/G2
  • G6: = G2/4 G8: = G7*G6
  • G9: = (G8/60)/24
  • G10: = G9/365
  • G11: = ((((((G2-G3)/4)*G7)/60)/24/ 365)

Tabulky Google mohou mít maximálně 400 000 buněk. To se používá spolu se skutečností, že každé čtení používá 4 buňky, k výpočtu, kolik místa zbývá a kdy dojde.

Na těchto vzorcích může být možné zlepšit. Dělal jsem zde dvě věci, tj. Učil jsem se o vzorci dotazu a pak jsem také psal nějaký vzorec takovým způsobem, aby mi pomohl zapamatovat si logiku za nimi.

Screenshot "Chart Editor" ukazuje základní nastavení pro teplotní graf. Ostatní grafy byly vytvořeny pomocí stejného nastavení. Jediným rozdílem mezi grafy byly minimální hodnoty svislé osy (nacházejí se na kartě přizpůsobení). Karta Přizpůsobit má také další nastavení, jako jsou přístupová jména, názvy grafů atd.

Nyní potřebujeme Google Script, který nám umožní psát naše data voláním adresy URL.

Vytvoření skriptu

Na URL listu Google si poznamenejte klíč mezi „d /“a „ / edit“. Toto je váš klíč-váš klíč ke sdílení listů Google-a bude potřeba v níže uvedeném kódu.

Dále přejděte na Nástroje> Editor skriptů a vytvořte skript Google App Script, vložte kód do přiloženého souboru GS. Aktualizujte var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit"); aby odrážel váš klíč sdílení.

Nyní publikujte skript v části Publikovat> Nasadit jako webovou aplikaci.

Zkopírujte adresu URL aktuální webové aplikace a uložte ji někam, jak ji budete potřebovat k extrahování GScriptID (-Vaše-Google-Script-ID–). GScriptID je řetězec mezi „s /“a „ / exec?“. Zajistěte, aby k aplikaci měl přístup „Kdokoli, dokonce i anonymní“. Během tohoto procesu budete požádáni o udělení některých oprávnění. Je důležité, abyste je udělili.

Poznámka: Kdykoli upravíte kód, musíte vytvořit „novou“verzi projektu a publikovat ji, jinak budete stále používat stejný starý kód.

Nyní můžete skript vyzkoušet na adrese https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12. Při každém obnovení tohoto odkazu by měl být do Tabulky Google přidán nový záznam.

Toto výše bylo převzato z následujícího tutoriálu: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. Tento výukový program je však zastaralý, a proto byl přidružený kód Arduino v další části změněn tak, aby vyhovoval nejnovějším knihovnám

Kód Arduino

Viz přiložený kód.

Krok 7: Kód - Blynk a Tabulky Google

Aby bylo možné z obou světů dostat to nejlepší, je možné kombinovat kód pro Blynk a Google Sheets.

Viz přiložený kód.

Krok 8: Závěrečné komentáře

Závěrečné komentáře
Závěrečné komentáře
Závěrečné komentáře
Závěrečné komentáře

Nic z výše uvedeného nejsou moje nápady, ale spíše je to projekt postavený na myšlenkách a práci ostatních. Bavilo mě to tahat úplně na jedno místo. pomocí různých technologií a nástrojů vytvořit skvělý zábavný a praktický projekt. Obzvláště mě bavilo učit se, jak ukládat své hodnoty do Tabulky Google. Za to bych chtěl poděkovat společnosti ElectronicsGuy (Sujay Phadke).

Aktualizace

Po dokončení tohoto projektu jsem potřeboval změnit nastavení bezdrátového připojení. Nyní jsem pracoval na jiném počítači. Po nahrání změn projekt přestal fungovat. Po nějakém řešení problémů jsem dospěl k závěru, že funkce hlubokého spánku selhává. Vzal jsem projekt zpět domů a nahrál jej tam (pomocí stejného kódu) a fungovalo to. Proto jsem dospěl k závěru, že se něco muselo změnit v knihovnách, které jsem přidal. Proto jsem k této sekci připojil knihovny, které jsou aktuálně na mém domácím počítači; jen pro případ, že by na tento problém narazil někdo jiný.

Doporučuje: