Egy másik IoT meteorológiai állomás: 8 lépés
Egy másik IoT meteorológiai állomás: 8 lépés
Anonim
Egy másik IoT meteorológiai állomás
Egy másik IoT meteorológiai állomás
Egy másik IoT meteorológiai állomás
Egy másik IoT meteorológiai állomás
Egy másik IoT meteorológiai állomás
Egy másik IoT meteorológiai állomás
Egy másik IoT meteorológiai állomás
Egy másik IoT meteorológiai állomás

A következő születésnapi ajándék volt apámnak; ihlette egy másik Instructable, amit láttam, és kezdetben bizonyítani akartam neki, mint önálló készítő készlet. Amikor azonban elkezdtem vele dolgozni ezen a projekten, nagyon gyorsan rájöttem, hogy az ajándékot inspiráló kezdeti oktatóanyag elavult, és hogy sok más online oktatóanyagnak jelentős hiányosságai vannak a magyarázatokban. Ezért úgy döntöttem, hogy közzéteszek egy újabb IoT meteorológiai állomást, amely remélhetőleg könnyen követhető lesz az űrlap elejétől a végéig.

Továbbá ez az oktatóanyag bemutatja, hogyan kell használni a Blynk -et, a Google Táblázatokat vagy mindkettőt az érzékelők leolvasásának megfigyelésére és rögzítésére. Ezenkívül a Google Táblázatok bejegyzéseket közvetlenül a lapra írják (anélkül, hogy harmadik féltől származó szolgáltatást kellene igénybe venni).

Ami a Stevenson-képernyőt illeti, sok online elérhető, amelyek 3D-ben nyomtathatók pl. https://www.thingiverse.com/thing:1718334. Erre fogok építeni ehhez az Instructable -hez.

A Stevenson -képernyő egy "műszerház menedék vagy ház a meteorológiai műszerek számára a csapadék és a külső forrásokból származó közvetlen hősugárzás ellen, miközben lehetővé teszi a levegő szabad áramlását körülöttük". (Wikipédia).

Alkatrészek

  • Wemos LolIn - NodeMCU v3 (1,43 USD)
  • BME280 (hőmérséklet-, nyomás- és páratartalom -érzékelő) (2,40 USD)
  • 6V 1000mA napelem (9,96 USD)
  • 5V 1A Micro USB 18650 lítium akkumulátor töltő modul töltőmodul+kettős funkciós védelem TP4056 (0,99 USD)
  • 4x 1,2V NiMH újratölthető akkumulátor
  • Akkumulátor tartó (4x AA, egymás mellett és a végén)
  • Micro USB férfi csatlakozó dugó
  • Kábelkötegelők
  • 3x szárnyas anya
  • Rúd vagy seprű bot
  • Epoxi és/vagy szuperragasztó (utólag a szilícium jobban működhetett)

Szoftver

  • Blynk App
  • Google Táblázatok (ha hozzáférést szeretne kapni a korábbi adatokhoz)
  • EasyEDA (sematikus rajzoláshoz)
  • Arduino IDE

Eszközök

  • Forrasztópáka
  • Forrasztó
  • Hőre zsugorodó cső
  • 3d nyomtató
  • Ragasztópisztoly

1. lépés: 3D nyomtatás - Stevenson képernyő

3D nyomtatás - Stevenson képernyő
3D nyomtatás - Stevenson képernyő
3D nyomtatás - Stevenson képernyő
3D nyomtatás - Stevenson képernyő
3D nyomtatás - Stevenson képernyő
3D nyomtatás - Stevenson képernyő

Amint már említettük, töltse le a fájlokat a https://www.thingiverse.com/thing:1718334 webhelyről, és nyomtassa ki a szükséges biteket. Az összeszerelési utasítások a fenti linken is megtalálhatók. Végeztem néhány módosítást (lásd az alábbi megjegyzéseket).

A nyomtatott alkatrészek a következők:

  • Top_Cover_for_m3_tapping.stl
  • Middle_Ring.stl (x5)
  • Middle_Ring_bottom.stl (x1, STL fent csatolva)
  • 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 fent csatolva)

Az összeszerelési sorrend:

  • Fűzze be a lyukakat
  • Csavarja be az M3 rudakat a menetes foglalatokba
  • Fedőlap
  • Szilárd_lemez
  • Középső gyűrűk
  • Csúsztassa be a Sensor_Rácsot
  • Electronics_Mount
  • Solid_Plate_Bottom
  • Pole_Mount
  • A My_Solar_Cell_Mounts epoxizálva van a Top_Cover tetejére

Furatokat fúrtam a Solid lemezekbe, hogy a napelemes töltőkábel csatlakozzon a töltőhöz, majd egyet, hogy a kábel a vezérlőtől a Sensor_Grid érzékelőig futhasson.

Miután elkészült, az érzékelőt úgy programozták, hogy 60 percenként a következő értékeket vegye le:

  • Hőfok
  • páratartalom
  • Nyomás

Megjegyzések

  • A napelemtartókat úgy testre szabtam, hogy jobban illeszkedjenek a napelemem tartásához.
  • Az elektronikát a Pole_Mount és a Solid_Plate közé telepítettem. Úgy tűnt, ez nem nyújt jó védelmet az elektronika számára. Ezért a Solid_Plate -en úgy módosítottam, hogy legyen egy szoknya, amely majd lezárja a rést, és ezáltal jobb védelmet nyújt az elektronika számára. A fenti fényképek egy része a módosítás előtt készült.
  • Az epoxim leszállt, és nem tartotta a napelemet, amit aztán újra ragasztottam szuper ragasztóval. Azt hiszem, leszállok, és szilíciumot kell használnom.

2. lépés: Az áramkör

Az áramkör
Az áramkör
Az áramkör
Az áramkör

Csatlakoztassa az áramkört az ábrán látható módon, szerelje fel a LoLin és a BME280 készüléket a 3D nyomtatott hálóra, amint az a képen látható.

BME280 -> LiLon

  • VCC -> 3.3V
  • GND -> GND
  • SCL -> D1
  • SDA -> D2

LiLon -> LiLon

D0 -> RST (ez szükséges ahhoz, hogy felébressze a kontrollert a mély alvásból, de csak a kód feltöltése után kell csatlakoztatni)

JEGYZET

Voltak nehézségeim a megfelelő LiLon akkumulátor beszerzésében. Valamilyen oknál fogva nem jártam sikerrel a VIN -n keresztül. Ezért a következőképpen tápoltam:

  • A TP4056 kimenetét a férfi USB -csatlakozóhoz kötötték, amelyet a tápellátás érdekében a tábla USB -aljzatához csatlakoztattak.
  • A TP4056 B- és B+ -át a NiMH elemeket tartó AA elemtartóhoz csatlakoztatta.

3. lépés: IoT - Blynk

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

"A Blynk hardver-agnosztikus IoT-platform, testreszabható mobilalkalmazásokkal, privát felhővel, szabálymotorral és eszközkezelési elemző műszerfallal". Alapvetően lehetővé teszi a távoli érzékelők biztonságos kezelését és felügyeletét a világ bármely pontjáról az interneten keresztül. Bár kereskedelmi szolgáltatás, minden fiókhoz 2000 ingyenes jóváírás tartozik. A hitelek lehetővé teszik különböző mérőkészülékek, kijelzők, értesítések stb. Hozzárendelését az érzékelőhöz vagy érzékelőkhöz. Bár az előfizetési árak kívül esnek a hobbisták költségvetésén, az ingyenes hitelek elegendőek egy ilyen egyszerű projekthez, mint ez.

A szolgáltatás használatának megkezdéséhez először le kell töltenie a Blynk alkalmazást a telefonjára/eszközére, létre kell hoznia és létre kell hoznia (vagy be kell jelentkeznie a meglévő fiókkal), majd létre kell hoznia egy új projektet az alábbiak szerint:

  • Válassza ki a hardvert
  • Adjon nevet a projektnek (ebben az esetben a "Weather Station" -t használtam.
  • Kattintson a "Létrehozás" gombra
  • Ekkor e-mailben kapja meg a hitelesítési kódot.

Nem kell hozzáadnia a szükséges widgeteket. A 2000 ingyenes kreditemmel a következőket adtam hozzá:

  • 3 mérőműszer
  • 1 szuper diagram

A mérőműszereket és a diagramokat a mellékelt fényképek szerint állítottuk be, mindegyikhez hozzárendeltük a saját virtuális tűt, amelyet később használunk a kódban.

Miután elvégezte a beállításokat, a jobb felső sarokban lévő lejátszás gomb megnyomásával megkezdheti a dátum gyűjtését.

További információért lásd

docs.blynk.cc/#getting-started.

4. lépés: Kód - Az Arduino IDE előkészítése

A projekt befejezéséhez a következő könyvtárakat kell hozzáadni az Arduino IDE -hez:

  • https://github.com/adafruit/Adafruit_BME280_Library (szükség van a hőmérséklet-, nyomás- és páratartalom -érzékelőre)
  • https://github.com/adafruit/Adafruit_Sensor
  • https://github.com/esp8266/Arduino (ez hozzáférést biztosít az ESP8266 táblához)
  • https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (a Blynk könyvtár)
  • https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (HTTPSRedicect szükséges a Google Táblázatokhoz való csatlakozáshoz)

Az Arduino IDE könyvtárainak telepítésére vonatkozó utasításokért látogasson el a https://www.arduino.cc/en/guide/libraries weboldalra.

A hardveres beállításaim a következők:

  • Alaplap: NodeMCU 1.0 (ESP-12E modul)
  • Feltöltési sebesség: 115200

Amikor a mellékelt kódot használja a következő lépésekben, kérjük, mindig olvassa el a kód megjegyzéseit az alábbiak hozzáadásával kapcsolatban:

  • Wifi SID
  • Wifi jelszó
  • Blynk engedélyezési kulcs
  • Google Script azonosító
  • Google Táblázat megosztási kulcs

5. lépés: Kód - Blynk

Éveken át küzdöttem azért, hogy a BME280 érzékelőm működjön, amíg nem találtam egy példát, amely a következő sort tartalmazza.

állapot = bme.begin (0x76); // Az általam használt érzékelő I2C címe 0x76

Úgy tűnik, be kellett állítanom az érzékelő címét. Miután ezt megtettem, minden jól működött.

A Blynk nagyon szép mobil felhasználói felülettel rendelkezik, de a következő korlátozásokkal rendelkezik:

  • Csak 2000 ingyenes hitel, az ennél többet igénylő projektek drága havi előfizetést igényelnek (kivéve, ha saját Blynk szervert üzemeltet és tart fenn).
  • Ha nem saját Blynk szerverét üzemelteti, nem exportálhatja a korábbi adatokat.

A fenti okok miatt megvizsgáltam, hogyan integrálhatom adatgyűjtési folyamatomat egy Google Táblázatba. Erről a következő részben lesz szó.

6. lépés: Kód - Google Táblázatok

Kód - Google Táblázatok
Kód - Google Táblázatok
Kód - Google Táblázatok
Kód - Google Táblázatok
Kód - Google Táblázatok
Kód - Google Táblázatok

Annak érdekében, hogy rögzítse az értékeket, hogy később elemezni tudja a történelmi adatokat, be kell írnia azokat valamilyen adatbázisba. A HTTPSRedirect könyvtár lehetővé teszi számunkra, hogy adatainkat egy Google Táblázatba írjuk.

Ennek a megközelítésnek a fő korlátai a következők:

  • Nincs szép mobil felhasználói felület
  • Egy Google Táblázat legfeljebb 400 000 cellát tartalmazhat. Ennél a projektnél ez nem nagy kérdés, mivel alig több mint 11 évbe telik, amíg ezt a határt elérik.

A Google Táblázat a következőképpen van beállítva.

Hozzon létre két munkalapot tartalmazó Google -táblázatot.

1. lap: Adatok

Az adatlapnak 4 oszlopra van szüksége, azaz dátum/idő, hőmérséklet, páratartalom, nyomás (A – D oszlop). Formázza megfelelően az oszlopokat, pl. Az „A” oszlop „Dátum és idő” legyen, így a dátum és az idő megjelenik a cellákban.

2. lap: Műszerfal

Hozza létre az irányítópult lapját a mellékelt fényképek szerint, az alábbi képletek megadásával:

  • B2: = számolás (Adatok! B: B) -1
  • B3: = B1+IDŐÉRTÉK (CONCATENATE ("00:", szöveg (G7, "0"))))
  • B6: = lekérdezés (Adatok! A2: D, "B sorrend kiválasztása A desc limit 1 szerint")
  • C6: = lekérdezés (Adatok! A2: D, "C sorrend kiválasztása A desc limit 1 szerint")
  • D6: = lekérdezés (Adatok! A2: D, "D sorrend kiválasztása A desc limit 1 szerint")
  • B8: = lekérdezés (Adatok! A2: D, "Válassza ki az A sorrendet B desc limit 1 szerint")
  • C8: = lekérdezés (Data! A2: D, "Select A order by C desc limit 1")
  • D8: = lekérdezés (Data! A2: D, "Select A order by D desc limit 1")
  • B9: = lekérdezés (Adatok! A2: D, "B sorrend kiválasztása B desc limit 1 szerint")
  • C9: = lekérdezés (Adatok! A2: D, "C sorrend kiválasztása C desc limit 1 szerint")
  • D9: = lekérdezés (Adatok! A2: D, "D sorrend kiválasztása D desc limit 1 szerint")
  • B11: = lekérdezés (Adatok! A2: D, "Válassza ki az A -t, ahol B nem null sorrend a B asc limit 1 szerint")
  • C11: = lekérdezés (Adatok! A2: D, "Válassza ki az A pontot, ahol C nem null sorrend a C asc limit 1 szerint")
  • D11: = lekérdezés (Adatok! A2: D, "Válassza ki az A pontot, ahol D nem null sorrend a D asc limit 1 szerint")
  • B12: = lekérdezés (Adatok! A2: D, "Válassza ki a B -t, ahol B nem null sorrend a B asc limit 1 szerint")
  • C12: = lekérdezés (Adatok! A2: D, "Válassza ki a C -t, ahol C nem null sorrend a C asc limit 1 szerint")
  • D12: = lekérdezés (Adatok! A2: D, "Válassza ki azt a D -t, ahol D nem null sorrend a D asc limit 1 szerint")
  • 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)

A Google Táblázatok legfeljebb 400 000 cellát tartalmazhat. Ezt használják együtt azzal a ténnyel, hogy minden leolvasás 4 cellát használ, hogy kiszámítsák, mennyi hely van hátra, és mikor fog elfogyni.

Lehet, hogy javítani lehet ezeken a képleteken. Két dolgot csináltam itt, azaz megtanultam a lekérdezési képletet, majd valami formulát is írtam oly módon, hogy segítsen emlékezni a mögöttük rejlő logikára.

A "Diagramszerkesztő" képernyőkép a Hőmérséklet grafikon alapvető beállításait mutatja. A többi grafikon ugyanazzal a beállítással készült. Az egyetlen különbség a grafikonok között a minimális függőleges tengelyérték (a testreszabás fül alatt található). A testreszabás lapon a többi beállítás is megtalálható, például hozzáférési nevek, gráfcímek stb.

Most szükségünk van egy Google Scriptre, amely lehetővé teszi számunkra, hogy URL -cím hívásával írjuk meg adatainkat.

A forgatókönyv létrehozása

A Google Táblázat URL -jében jegyezze fel a "d /" és a " / edit" közötti kulcsot. Ez az Ön Google-lap-megosztási kulcsa, és erre az alábbi kódban lesz szükség.

Ezután lépjen az Eszközök> Szkriptszerkesztő menübe, és hozza létre a Google App Scriptet, illessze be a kódot a mellékelt GS -fájlba. Frissítse a var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit"); hogy tükrözze a megosztási kulcsot.

Most tegye közzé a szkriptet a Közzététel> Telepítés webes alkalmazásként menüpontban.

Másolja ki az aktuális webalkalmazás URL-jét, és mentse el valahová, ahol szüksége lesz a GScriptID (-Your-Google-Script-ID–) kinyeréséhez. A GScriptID az "s /" és a " / exec?" Közötti karakterlánc. Győződjön meg arról, hogy a „Bárki, még névtelen” is hozzáfér az alkalmazáshoz. E folyamat során felkérést kap néhány engedély megadására. Fontos, hogy ezeket megadja.

Megjegyzés: Amikor módosítja a kódot, létre kell hoznia egy „Új” projekt verziót, és közzé kell tennie, különben továbbra is ugyanazt a régi kódot fogja elérni.

Most tesztelheti a szkriptet a https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12 címen. Minden alkalommal, amikor frissíti ezt a linket, új bejegyzést kell hozzáadni a Google Táblázathoz.

Ezt a fenti oktatóanyagból vettük át: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. Ez az oktatóanyag azonban elavult, ezért a következő részben szereplő Arduino kód módosult, hogy illeszkedjen a legújabb HTTPSRedirect könyvtárakhoz.

Az Arduino kód

Lásd a mellékelt kódot.

7. lépés: Kód - Blynk és Google Táblázatok

Annak érdekében, hogy a legjobbat hozza ki mindkét világból, kombinálhatja a Blynk és a Google Táblázatok kódját.

Lásd a mellékelt kódot.

8. lépés: Utolsó megjegyzések

Záró megjegyzések
Záró megjegyzések
Záró megjegyzések
Záró megjegyzések

A fentiek egyike sem az én ötleteim, hanem inkább mások ötleteire és munkájára épülő projekt. Élveztem, hogy összevonhatom egy helyre. különböző technológiákat és eszközöket használva egy szórakoztató és praktikus projekthez. Különösen élveztem, hogy megtanultam, hogyan tárolhatom olvasmányaimat a Google Táblázatban. Ezúton szeretnék köszönetet mondani az ElectronicsGuy -nak (Sujay Phadke).

Frissítés

A projekt befejezése után módosítanom kellett a vezeték nélküli beállításokat. Most egy másik számítógépen dolgoztam. A módosítások feltöltése után a projekt leállt. Némi hibaelhárítás után arra a következtetésre jutottam, hogy a mély alvás funkció nem működik. Hazavittem a projektet, és feltöltöttem oda (ugyanazzal a kóddal), és működött. Ezért arra a következtetésre jutottam, hogy valami változhatott a könyvtárakban, amelyeket hozzáadtam. Ezért ehhez a részhez csatoltam az otthoni számítógépemen jelenleg található könyvtárakat; hátha valaki más találkozik ezzel a problémával.

Ajánlott: