Obsah:

ESP8266 NodeMCU s měřidly a grafem BME280: 5 kroků
ESP8266 NodeMCU s měřidly a grafem BME280: 5 kroků

Video: ESP8266 NodeMCU s měřidly a grafem BME280: 5 kroků

Video: ESP8266 NodeMCU s měřidly a grafem BME280: 5 kroků
Video: Arduino Nano, Blynk, DHT11 - ENC28J60 (Subtittled) 2024, Listopad
Anonim
ESP8266 NodeMCU s měřidly a grafem BME280
ESP8266 NodeMCU s měřidly a grafem BME280
ESP8266 NodeMCU s měřidly a grafem BME280
ESP8266 NodeMCU s měřidly a grafem BME280

Efektní měřidla a graf pro vývojovou desku ESP8266 NodeMCU se snímačem teploty, vlhkosti a tlaku BME280. Společnost Thingspeak uloží všechna vaše data v cloudu a kdykoli je bude možné (doufejme), že je bude možné kdykoli načíst. Měřidla a grafy se vyplňují z dat uložených na thingspeak a aktualizují se automaticky každých 5 minut.

Potřebné položky:

Vývojová deska ESP8266 NodeMCU (3,79 $ od Banggood.com Hong Kong)

Bosch BME280 (5,63 $ od Banggood.com Hong Kong)

Propojovací můstky (3,09 $ od Banggood.com Hong Kong)

Breadboard (2,28 $ od Banggood.com Hong Kong)

Napájecí zdroj, zdarma, pokud máte nabíječku telefonu micro USB

Micro USB kabel, zdarma, pokud ho již máte

Arduino IDE, bezplatné stažení

Soubory s kódy.ino a. HTML získáte zde

Krok 1: Vytvořte a nastavte kanály Thingspeak

Vytvářejte a nastavujte své kanály Thingspeak
Vytvářejte a nastavujte své kanály Thingspeak

1. Vytvořte si bezplatný účet Thingspeak a nový kanál na adrese https://thingspeak.com, zavolejte na kanál „ESP8266-NodeMCU-12E-BME280“

2. Nový kanál by měl mít 3 pole s názvem Teplota Vlhkost Tlak v tomto konkrétním pořadí (velká písmena první písmeno).

3. Poznamenejte si své nové „ID kanálu“XXXXXX v části „Nastavení kanálu“

4. Klikněte na odkaz „API Keys“a poznamenejte si své „API Write“a „Read API Keys“XXXXXXXXXXXXXXXX. Nastavit jako veřejný kanál také ve sdílení.

5. Vytvořte druhý kanál Thingspeak, který bude obsahovat data „Today“(od půlnoci) High Low. Říkejte tomu „BME280 Daily High Low Data“

6. Tento nový kanál by měl mít 6 polí s názvem Tmax Tmin Hmax Hmin Pmax Pmin v tomto konkrétním pořadí (velká písmena prvního písmene).

7. Všimněte si „ID kanálu“kanálu „BME280 Daily High Low Data“, „Čtení“a „Zápis klíčů API“stejně jako ve výše uvedených krocích.

Krok 2: Nastavení IDE Arduino, knihoven a konfigurace BME280

Nastavte Arduino IDE, knihovny a nakonfigurujte BME280
Nastavte Arduino IDE, knihovny a nakonfigurujte BME280

8. Postupujte podle pokynů k instalaci jádra Arduino IDE & ESP8266 na adrese

9. Spusťte Arduino IDE, abychom mohli nainstalovat čtyři knihovny, které budeme potřebovat.

10. Budete potřebovat knihovnu „Adafruit Unified Sensor Driver“, nainstalujte ji do „Library Manager“v Arduino IDE. Nabídka Skica Zahrnout Knihovna Správa knihoven proveďte vyhledávání podle Type = "Doporučené" Téma = "Senzory" a poté vložte do vyhledávacího pole slova Adafruit Unified Sensor Driver. Ten, který chcete, říká „Adafruit Unified Sensor Driver by Adafruit“

11. Kromě toho budete také vyžadovat instalaci „Knihovny Adafruit BME280“ve „Správci knihoven“v Arduino IDE. Nabídka Skica Zahrnout Knihovna Správa knihoven proveďte vyhledávání podle Type = "Doporučené" Téma = "Senzory" a poté vložte do vyhledávacího pole slova Knihovna Adafruit BME280. Ten, který chcete, říká „Knihovna Adafruit BME280 od Adafruit“

12. Další knihovna, kterou potřebujete, je Wire.h, nainstalujte ji do „Správce knihoven“v Arduino IDE. Nabídka, Skica Zahrnout Knihovna Správa knihoven Proveďte vyhledávání podle Type = "Contributed" Téma = "Vstup/výstup signálu" a poté vložte do vyhledávacího pole slovo Wire. Ten, který chcete, říká „Wire Built-in by Arduino“S největší pravděpodobností ve spodní části výběru.

13. Ještě jedna knihovna, ESP8266WiFi, nainstalujte ji do „Správce knihoven“v Arduino IDE. Nabídka, Skica Zahrnout Knihovna Správa knihoven Proveďte vyhledávání podle Type = "Contributed" Téma = "Komunikace" a poté vložte do vyhledávacího pole slovo ESP8266wifi. Ten, který chcete, říká „ESP8266wifi Vestavěný Ivan Grokhotkov“

14. Adresa I2C pro BME280 je pevně zakódována v souboru Adafruit_BME280.h (hledejte řádek #define BME280_ADDRESS 0x77) uvnitř složky Adafruit_BME280_Library. Moduly senzoru BME společnosti Adafruit jsou pevně zapojeny tak, aby používaly adresu I2C 0x77. BME280 však může mít mírně odlišnou adresu I2C (0x76), pokud je jeho externí pin SDO uzemněn. Pokud používáte senzorové moduly od třetí strany, je pravděpodobné, že se jeho adresa neshoduje s výchozí hodnotou v knihovně Adafruit. Například pro většinu senzorových modulů BME280 dostupných na eBay nebo Aliexpress má jejich I2C adresa 0x76. Pokud nedostanete odpověď od senzoru pomocí výchozí adresy nastavené v souboru Adafruit_BME280.h, bude možná nutné jej změnit na 0x76.

Připojovací body BME280 a ESP8266. ESP8266 3,3 V až BME280 Vin, ESP8266 GND až BME280 GND, ESP8266 D4 až BME280 SCL, ESP8266 D3 až BME280 SDA. 15. Otevřete dodaný soubor ESP8266-NodeMCU-12E-BME280.html v textovém editoru a zadejte pro „ proměnné key1 & chan1. Také zadejte „Přečíst klíč API“a „ID kanálu“pro „BME280 Daily High Low Data“(druhý kanál, který jste vytvořili) pro key2 a chan2. Kromě toho zadejte posun časového pásma od UTC. Pro mě jako -5. Všechny hodnoty musí být uvnitř uvedených jednoduchých uvozovek „XXXXX“. Uložte a ukončete textový editor.

Připojte svůj ESP8266 pomocí kabelu USB k počítači a poté vyberte svůj sériový port jako port USB.

Uživatelé Linuxu možná budou muset změnit vlastní port USB, aby komunikovali s /dev /ttyUSB0 jako v 'sudo chown yourusername /dev /ttyUSB0' nebo cokoli, co jste vybrali jako port v nastavení.

Krok 3: Naprogramujte ESP8266 pomocí Arduino IDE

Naprogramujte ESP8266 pomocí Arduino IDE
Naprogramujte ESP8266 pomocí Arduino IDE

16. Dále naprogramujeme ESP8266. Připojte kabel USB mezi váš ESP8266 a počítač.

Načtěte dodaný soubor New_BME_Sensor.ino do Arduino IDE. Váš snímač BME280 by měl být připojen k D3 (SDA) a D4 (SCL) na ESP8266. Do správné části náčrtu zadejte svůj „ESP8266-NodeMCU-12E-BME280“(první kanál, který jste vytvořili) „Napište klíč“„Wireless SSID“a „Heslo“. Poté klikněte na položku nabídky „Skica“a „Nahrát“. Poté, co načtete skicu (Progress dosáhne 100%) do vašeho ESP8266, můžete otevřít sériový monitor (ikona vpravo nahoře vypadá jako zvětšovací sklo) a uvidíte svá data vytisknout po 5 minutách, každých 5 minut. Data se odesílají na thingspeak v 5minutových intervalech, takže nějakou dobu potrvá, než budete mít smysluplná data z grafu, ale měli byste mít měřené hodnoty po 5 minutách.

Zajistěte správné odečty z BME280 na sériovém monitoru.

První měření bude pravděpodobně neplatná nan.

Počkejte několik minut do dalšího čtení a ověřte, že údaje vypadají dobře.

Krok 4: Vraťte se zpět k programu Thingspeak a proveďte vylepšení dat

Vraťte se na Thingspeak a proveďte vylepšení dat
Vraťte se na Thingspeak a proveďte vylepšení dat

17. Nyní, zatímco se data pomalu odesílají do thingspeak, proveďte nějaké vylepšení, abyste získali další data z toho, co se nahrává. Vraťte se na web thingspeak a na stránce kanálu Thingspeak „BME280 Daily High Low Data“(Druhý kanál, který jste vytvořili) klikněte na zelené tlačítko „Analýza MATLAB“. Vyberte šablonu „Vlastní (bez startovacího kódu)“

18. Pojmenujte analýzu MATLAB „Vypočítat min. Maximum od půlnoci“.

19. Zkopírujte kód MATLAB Analysis.txt do určeného prostoru. Do pole „readChannelID“zadejte „ID kanálu“pro „ESP8266-NodeMCU-12E-BME280“(první kanál, který jste vytvořili). Zadejte „BME280 Daily High Low Data“(druhý kanál, který jste vytvořili) Zapište „ID kanálu“a „Klíč pro zápis“do writeNewChannelID & writeAPIKey respektive. Vím, že to zní matoucí (přečtěte si to znovu). Klikněte na uložit a spustit. Pokud jste to udělali správně a kanál pro čtení je veřejný, neuvidíte žádné chyby a úspěšně vytiskne hodnoty. Pokud do tohoto kanálu ještě nebyla nahrána žádná data, může se zobrazit chyba. I přes chybu pokračujte. Pokud je to žádoucí, můžete znovu kliknout na Uložit a spustit, abyste se ujistili, že to funguje, jakmile jsou data nahrána.

20. Dále musíme vytvořit „Time Control“pro spouštění tohoto kódu každých 5 minut a naše data budou zapsána do kanálu „BME280 Daily High Low Data“(Druhý kanál, který jste vytvořili). Na hlavní stránce „BME280 Daily High Low Data“(druhý kanál, který jste vytvořili) vyberte v horní části aplikace. V rámci akcí vyberte „TimeControl“a poté zelené tlačítko „New TimeControl“. Pojmenujte jej „Odeslat vysoké nízké teploty ESP8266“. V případě potřeby vyberte časové pásmo a v části Frekvence vyberte „Opakující se“. V části Opakování vyberte Minuta. Nastavte spuštění každých 5 minut. Akce by měla být MATLAB Analysis a „Code to Execute“je „Calculate Min Max since Midnight“. Šetřete TimeControl.

Krok 5: Upravte poskytovaný soubor HTML

Upravte poskytovaný soubor HTML
Upravte poskytovaný soubor HTML

Upravte soubory HTML a vyhledejte komentáře, které říkají „******** Změňte mě 1 z 8 *********“Změňte je podle svých preferencí.

Poznámky:

Některá textová pole a týdenní graf nebudou vyplněny správně, dokud nebudete mít celý den a celý týden dat pro sekci 24 hodin a týden a graf. Jakmile máte hromadu dat, můžete grafy přiblížit pomocí kolečka myši (kliknutím pravým tlačítkem obnovíte). Můžete také mít čtvrtý měřič (jak je vidět na obrázcích) z jiného senzoru z jiného kanálu, ale příslušné části jsem odstranil. Pokud se cítíte zvlněni, připojte to. Uvědomte si také některé problémy s načasováním. Pravděpodobně nebudete mít absolutně nejaktuálnější data, ale měla by být vždy méně než 5 minut stará. To pochází z doby, kdy dojde k aktivaci ovládání časování, kdy byla data odeslána z ESP8266 a kdy jste načetli / aktualizovali webovou stránku.

Otevřete dodaný soubor ESP8266-NodeMCU-12E-BME280.html ve webovém prohlížeči a měli byste vidět měřidla a grafy naplněné.

Soubory s kódy.ino a. HTML získáte zde

Doporučuje: