Doporuceni

Meteorologická stanice Volna 42 – Návod a pomoc s nastavením

Rozhraní ve firmwaru je optimalizováno pro 4.2′ displeje s rozlišením 400×300; implementace podpory pro jiná rozlišení je možná, ale vyžaduje optimalizaci rozhraní a napsání ovladače pro konkrétní displej.

Firmware je kompatibilní s 1.5′ displeji – výstup rozhraní je přizpůsoben pro rozlišení 200×200, lze vytvářet vlastní grafiku, ale takové displeje nebyly prioritou a některé widgety nemusí být optimalizované (fotografie výchozího rozhraní).

Instalace vývojového prostředí (IDE)

Pro aktualizaci firmwaru budete muset nainstalovat Microsoft Visual Studio a jeho rozšíření Platform IO.

  • Stáhněte a nainstalujte Microsoft Visual Studio
  • Spusťte Microsoft Visual Studio a v levém postranním panelu vyberte sekci Rozšíření (CTRL+SHIFT+X)
  • Do vyhledávacího řádku zadejte „PlatformIO“ a vyberte PlatformIO IDE (platformio.org) ze seznamu
  • klikněte instalovat a počkejte na dokončení instalace a poté restartujte Microsoft Visual Studio

Nastavení prostředí

  • Stáhněte si nejnovější verzi firmwaru ze sekce Firmware a nástroje
  • Rozbalte firmware do libovolného adresáře, zkopírujte konfiguraci třetí strany do souboru “Volna42/platformio.ini”, pokud se používá ESP32

Soubor platformio.ini obsahuje konfiguraci vhodnou pro desky ESP8266 D1 Mini a podobné. Pro mikrokontrolér ESP32 můžete konfiguraci ze souboru platformio.esp32.ini přejmenovat nebo zkopírovat. Konfigurace pro ESP32 je připravena pro desku YD-ESP32-23 – esp32-s3-devkitc-1 (ESP32S3, 8MB FLASH) a může se lišit od té, kterou potřebujete – vše záleží na konkrétním modelu desky ESP32 – různé modely se mohou lišit jak počtem pinů, tak i číslováním nohou a obecnou konfigurací. Aktualizace. Byly přidány konfigurace pro různé modely – ESP32 S2 Mini ESP32 S3 SuperMini atd. Pokud se konfigurace neshoduje, můžete si na webových stránkách PlatformIO vyhledat příklad konfigurace.

Konfigurace, kompilace a nahrání firmwaru

Pro počáteční kontrolu mikrokontroléru můžete nahrát firmware bez připojení externích modulů (displej, teplotní senzor). Zapojení displeje a dalších možností naleznete na schématu sestavení.

    Nastavte konfiguraci v souboru UserDefines.h

— Ponechte bez komentáře pouze nezbytnou definici pro váš typ zobrazení (viz Zobrazení)

#definovat WAVESHARE_BW_42_UC8176 WaveShare 4.2 BW rev 2.1
#definovat WAVESHARE_BW_42_SSD1683 WaveShare 4.2 BW 4barevná stupnice šedi rev. 2.2
WeAct 4.2 BW
#definovat WAVESHARE_RY_BW_42_UC8176 WaveShare 4.2 BW + Žlutá rev. 2.1 V2
WaveShare 4.2 BW + Red rev 2.1
#definovat HELTEC_BW_15_S810F Heltec 1.5 BW

— Ponechte bez komentáře pouze nezbytnou definici s předponou „BAT_“ v závislosti na tom, zda se používá baterie — podrobné komentáře ke každé z možností jsou uvedeny v samotném souboru UserDefines.h
— Nastavte piny (definováno s předponou „EPD_“), ke kterým je připojena obrazovka E-Ink

Ve výchozím nastavení je zapojení pinů ESP8266 „EPD_“ definováno dle diagramu na stránce Diagramy a při použití ESP8266 D1 Mini není třeba nic měnit.

Ruština — #zahrnout #include

Z bezpečnostních důvodů není nutné explicitně registrovat nastavení vaší domácí WiFi sítě v souboru nastavení, protože zařízení ve výchozím nastavení vytvoří přístupový bod, pokud neexistují žádná nastavení nebo je WiFi síť zadána nesprávně. Výchozí název přístupového bodu: VOLNA42-EINK, heslo: volnaaccess Připojením k tomuto přístupovému bodu a přechodem na adresu http://192.168.1.1/ můžete nastavit nastavení sítě WiFi pro správné automatické určení času synchronizace dat ze senzorů.

minify_einkdisplay.bat — pro Windows (viz podsložku _uiToolshtmlpack pro kompilaci nástroje pro rozbalování nebo stažení zkompilovaného exe souboru — soubor může být označen jako nebezpečný)
minify_einkdisplay.sh — pro Linux (kompilaci nástroje pro balení naleznete v podsložce _uiToolshtmlpack)

Pokud se jedná o bateriovou verzi, je pro její konfiguraci nutné dočasně vypnout přepínač BAT_SENSOR a restartovat meteorologickou stanici (vypnout, zapnout nebo stisknout RST). Poté meteorologická stanice přejde do trvalého provozního režimu a na obrazovce zobrazí svou IP adresu pro další konfiguraci. Po dokončení konfigurace také znovu zapněte BAT_SENSOR a restartujte (lze to provést přes webové rozhraní) -> zařízení se vrátí do úsporného režimu.

Toto je volitelné nastavení integrace. Tato část obsahuje informace o tom, jak připojit meteorologickou stanici k systému chytré domácnosti tak, aby přenášela data ze senzoru BME280. Předpokládá se, že jste již nakonfigurovali server s brokerem MQTT a systémem pro řízení chytré domácnosti – Domoticz nebo Home Assistant.

Odesílání dat ze senzorů meteorologické stanice do Home Assistant

  • Otevřete ovládací panel aplikace Home Assistant (obvykle dostupný na adrese http://[adresa serveru]:8123)
  • Přejděte do sekce „Nastavení“ -> „Zařízení a služby“ (config/integrations/dashboard)

Odesílání dat ze senzorů meteorologické stanice do Domoticz

  • Otevřete ovládací panel Domoticz (obvykle dostupný na adrese http://[adresa serveru]:8080)
  • Přejděte do sekce „Nastavení“ -> „Vybavení“

Čtení dat o počasí ze služby OpenWeather přes API 2.5

  • Dostupné od verze firmwaru >= 0.92
  • Vytvořte si účet ve službě OpenWeather
  • Přejděte do sekce „Mapy“ a najděte místo, které vás zajímá.

Čtení meteorologických dat ze služby Open-Meteo

  • Dostupné od verze firmwaru >= 0.95
  • Otevřete web s geolokací. Například

http://api.open-meteo.com/v1/forecast?latitude=[Значение из lat]&longitude=[Значение из lon]&current=temperature_2m,weather_code,relative_humidity_2m&format=json&timeformat=unixtime

Měli byste dostat takový řádek

Čtení dat z externích senzorů ze systému Home Assistant na meteorologické stanici

  • Otevřete ovládací panel aplikace Home Assistant (obvykle dostupný na adrese http://[adresa serveru]:8123)
  • Přejděte do sekce „Nastavení“ -> „Zařízení a služby“ (config/integrations/dashboard)
  • Klikněte na „Zařízení“ v části „Integrace MQTT“.

http://[IP или домен сервера]:8123/api/states/[Идентификатор объекта temperature],[Идентификатор объекта humidity]

Čtení dat z externích senzorů ze systému Domoticz na meteorologické stanici

  • Otevřete ovládací panel Domoticz (obvykle dostupný na adrese http://[adresa serveru]:8080)
  • Přejděte do sekce „Nastavení“ -> „Zařízení“
  • Najděte požadovaný teplotní senzor a zapamatujte si [ID zařízení] v poli Idx.

http://[IP или домен сервера]:8080/json.htm?type=command&param=getdevices&rid=[ID устройства]
http://[IP или домен сервера]:8080/json.htm?type=devices&rid=[ID устройства]

Dostupné metody REST API

Všechny požadavky jsou relativní vzhledem ke kořenové URL cestě

Příklad požadavku: Restartování zařízení

// Pokud spouštíte kód z prohlížeče, aby nedošlo k chybám při provádění CORS
// je nutné spustit provádění ze stránky webového rozhraní zařízení

var formData = new FormData();
formData.append(“restart”, ‘1’);

Změnit obrázek podle názvu uloženého stylu designu

  • Název souboru — povinný parametr označující název designového stylu uloženého v systému

Pokud odpověď obsahuje reboot_required = true, poté pro inicializaci restartu spusťte
http://[адрес устройства]/api/update (GET) или http://[адрес устройства]/api/reboot?reboot=1 (POST)

Pozastavit a vymazat obrazovku

Vymaže obrazovku a pozastaví všechny události (částečné a plné obnovení obrazovky), dokud se obrazovka neobnoví ručně pomocí ovládacího panelu nebo dokud nedojde k úplnému restartu.

Skrýt IP adresu na obrazovce až do restartu

Odesílání dat ze senzorů přes MQTT

Obnovit obrazovku

Restartujte zařízení

  • restart — povinný parametr pro potvrzení

Vymazat paměť vlastních stylů

  • potvrzení formátu — povinný parametr pro potvrzení

Resetování nastavení systému

  • obnovit — povinný parametr pro potvrzení
  • resetovat Wi-Fi – pokud je parametr zadán, budou vymazána i autorizační data z WiFi

Vymazání paměti EEPROM (obnovení továrního nastavení)

Úplně vymažte paměť EEPROM (kde jsou uložena všechna nastavení a data autorizace WiFi) a nahraďte data nulovými hodnotami.

  • potvrdit-vymazat — povinný parametr pro potvrzení

Vynutit částečné obnovení oblasti hodin na obrazovce

Vynutí aktualizaci oblasti hodin pro otestování funkčnosti

ESP8266 se neprobudí z režimu spánku

Některé neoficiální klony desek D1 Mini mohou mít podobný problém. Nejprve zkontrolujte, zda je pin D0 správně připojen k pinu RST (pro správné blikání by měl být připojen přes rezistor 510 Ohmů, ale pro testy režimu spánku stačí jednoduchá propojka).

Firmware nabízí několik režimů pro ukončení režimu spánku v případě „klonovaných desek“, způsob ukončení režimu spánku lze změnit v souboru UserDefines.h pomocí parametru FIX_DEEPSLEEP (pokud parametr neexistuje, stáhněte si aktuální firmware z hlavní větve projektu na GitHubu).

Zkuste nastavit parametr FIX_DEEPSLEEP na hodnotu 1 nebo 2 a zkontrolujte to znovu. Pokud problém přetrvává, mikrokontrolér je s největší pravděpodobností poškozený nebo má vážnější problémy.

Nesprávné datum a čas

Ve výchozím nastavení se meteorologická stanice pokouší synchronizovat čas pomocí NTP serveru. Zařízení musí být připojeno k přístupovému bodu WiFi s povoleným připojením k internetu.

Pokud jste si jisti, že s vaším internetovým připojením nejsou žádné problémy, zkuste restartovat zařízení, abyste znovu inicializovali synchronizaci NTP, nebo změňte server NTP v nastavení.

Chcete-li znovu inicializovat čas bez restartu, můžete přejít na ovládací panel zařízení a kliknout na položku mě (poté po informaci, že příkaz byl proveden – “Ovládání obrazovky” -> “Obnovit obrazovku”)

Pokud nemáte připojení k internetu, můžete čas nastavit ručně úpravou nastavení Datum a čas v části Obecná nastavení. Zaškrtnutí možnosti Časové pásmo můžete zrušit, aby to dále neovlivňovalo výstup.

Nelze nahrát firmware

Relevantní pro ESP8266

  • [Verze s baterií a možností hlubokého spánku] Zkontrolujte, zda byl pin D0 (GPIO16) připojen k RESETu přes rezistor (měl by mít přibližně 510 Ohmů), a nikoli přímo.
  • Zařízení se možná nepřepnulo do režimu firmwaru – stiskněte tlačítko RST na zařízení a zkuste to znovu.
  • Zkontrolujte, zda je ESP flashovaný, pokud od něj odpojíte vše nepotřebné, zkuste ho flashnout nějakým minimálním testovacím příkladem s výstupem “Hello World” v konzoli.
  • Pokud je zařízení připojeno přes RX TX, zkontrolujte, zda je zařízení přepnuto do režimu firmwaru (GPIO0 je připojen k GND) a GND je také připojen k USB k TTL.
  • Zkontrolujte, zda se při připojení ESP v systému zobrazí zařízení COM. Pokud zařízení systém nerozpozná, je třeba nainstalovat ovladač USB – obvykle CH340 (nenašel jsem oficiální odkaz, můžete hledat ručně, ale ve Windows 8-11 je tento ovladač obvykle automaticky rozpoznán), pro správnou funkci USB – UART.
  • Zkuste ručně vybrat požadovaný COM port (ikona „Auto“ ve spodním panelu VS)
  • Vyskytly se případy, kdy se ovladač ukázal jako vadný – v podobné situaci byla jedna deska blikána bez problémů, druhá jednoduše vydávala chyby během blikání a žádné resetování nastavení nepomohlo.

Relevantní pro ESP32

  • Zkontrolujte, zda je ESP flashovaný, pokud od něj odpojíte vše nepotřebné, zkuste ho flashnout nějakým minimálním testovacím příkladem s výstupem “Hello World” v konzoli.
  • Zařízení se možná nevstoupilo do režimu firmwaru – stiskněte tlačítko RST na zařízení a zkuste to znovu. Pro aktivaci režimu UART bude pravděpodobně nutné nejprve současně podržet klávesy RST + BOOT (může to ovlivnit detekci zařízení COM v systému).
  • Zkontrolujte, zda se při připojení ESP v systému objeví zařízení COM. Pokud zařízení systém nerozpozná, je třeba nainstalovat ovladač USB – CH340 (nenašel jsem oficiální odkaz, můžete hledat ručně, ale ve Windows 8-11 je tento ovladač obvykle automaticky rozpoznán), pro správnou funkci USB – UART.
  • Zkuste ručně vybrat požadovaný COM port (ikona „Auto“ ve spodním panelu VS)

Displej nic nezobrazuje

Pokud jste si jisti, že je v souboru UserDefines.h vybrán správný typ displeje (a v podstatě existují pouze dvě možnosti – buď displeje s prefixem SSD1683, nebo s UC8176 – při nesprávném zadání řadiče nebude vůbec žádný výstup), pak jsou s největší pravděpodobností piny nesprávně zapojeny nebo někde není kontakt. Je třeba znovu zkontrolovat, zda jsou všechny piny správně zapojeny. Pokud si nejste jisti, zda samotná deska esp funguje, můžete ji zkusit připojit k jiné desce ESP. Nejprve můžete minimálně zkontrolovat funkčnost jednotlivých pinů esp, například napsáním jednoduchého náčrtu implementujícího tlačítko nebo blikání LED diody. Obvykle se ale, pokud se deska esp ukázala jako vadná, problémy začaly ve fázi firmwaru (buď blikala obden, nebo neblikala vůbec). U mě byl problém obvykle vyřešen opětovnou kontrolou všech pinů a spuštěním minimálních příkladů od výrobce, aby se potvrdilo, že chyba rozhodně nebyla v mém kódu.

Displej zobrazuje informace přerušovaně nebo k výstupu přidává nepředvídatelné „odpadkové“ artefakty.

Kontakt pinu BUSY může být poškozený nebo jeho hodnota může být nesprávně nastavena v souboru UserDefines.h -> EPD_BUSY_PIN (například může být zaměněn s EPD_RST_PIN)

Displej nefunguje v režimu částečného obnovení obrazovky

Výrobce obvykle specifikuje, zda je tento režim provozu podporován či nikoli. I když řadič displeje podporuje částečnou aktualizaci, nemusí ve skutečnosti fungovat, protože to výrobce desky nedeklaroval. Můžete si ověřit, zda existují metody částečného výstupu či nikoli, v příkladech poskytnutých samotným výrobcem.

Po přeprogramování se ESP spustí nekonečný restart.

  • ESP32 Možná byla v souboru platformio.ini vybrána nesprávná konfigurace zařízení – více podrobností lze načíst ve výstupu v terminálu po připojení k COM portu. Můžete vytvořit prázdný projekt a zkontrolovat minimální výstup pomocí příkazu hello world, abyste se ujistili, že je konfigurace poškozená nebo správná.
  • V konfiguraci UserDefines.h byly vybrány neexistující nebo neplatné piny (s ohledem na vstupy zobrazení).

Pokud problém přetrvává a žádné další faktory kromě připojeného displeje na něj neovlivňují a úplné vypnutí nepomůže, je třeba zkontrolovat, který pin toto chování ovlivňuje, zkusit přeřadit to, co je na něm zavěšené, na jiný pin.

Zkoušel jsem použít zbývající piny například pro přepínače a vedlo to k podobnému problému, protože ESP8266 má jen několik bezpečných GPIO pinů GPIO14, GPIO12, GPIO13, GPIO4, GPIO5, všechny ostatní by při spuštění neměly být v určitém logickém stavu.

Nyní je pinout pro připojení konkrétního displeje vybrán tak, aby nenarušil logiku esp a nezpůsoboval mi problémy při připojení různých displejů, ale možná vám to nevyhovuje, pokud zjistíte, že problém je konkrétně v připojení displeje (například se používá netestovaná nová obrazovka, která produkuje jiné signály).

Zde je také alternativní zapojení pinů, které jsem použil předtím, než jsem použil pin D4 přes rezistor. Zařízení se po přeflashování a restartu přes UART na různých displejích mohlo někdy zaseknout, ale v normálním provozním režimu vše fungovalo bez problémů.

#define EPD_BUSY_PIN 2 // D4 — GPIO — 2 (+20kOhm rezistor na VCC) nebo volitelně D8 — GPIO — 15 (pokud je pin CS volný — připojen k GND — trvale v režimu SLAVE)
#define EPD_RST_PIN 12 // D6 – GPIO – 12 (MISO)
#definice EPD_DC_PIN 0 // D3 – GPIO – 0
#define EPD_CS_PIN -1 // Zem (-1)

ESP se náhodně neprobudí z hlubokého spánku

Stalo se to s jedním řadičem esp, možná byl vadný, ale po výměně samotného esp za jiný problém zmizel. V případě ESP8266 můžete také zkusit změnit metodu pro ukončení spánku v souboru UserDefines.h nastavením pomocí parametru FIX_DEEPSLEEP.

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button