Obsah:

Meteorologická stanice NaTaLia: Meteorologická stanice poháněná solární energií Arduino provedla správnou cestu: 8 kroků (s obrázky)
Meteorologická stanice NaTaLia: Meteorologická stanice poháněná solární energií Arduino provedla správnou cestu: 8 kroků (s obrázky)

Video: Meteorologická stanice NaTaLia: Meteorologická stanice poháněná solární energií Arduino provedla správnou cestu: 8 kroků (s obrázky)

Video: Meteorologická stanice NaTaLia: Meteorologická stanice poháněná solární energií Arduino provedla správnou cestu: 8 kroků (s obrázky)
Video: Sencor - Wi-Fi profesionální meteorologická stanice /45s/ 2024, Červenec
Anonim
Meteorologická stanice NaTaLia: Meteorologická stanice poháněná solární energií Arduino udělala správnou cestu
Meteorologická stanice NaTaLia: Meteorologická stanice poháněná solární energií Arduino udělala správnou cestu
Meteorologická stanice NaTaLia: Meteorologická stanice poháněná solární energií Arduino udělala správnou cestu
Meteorologická stanice NaTaLia: Meteorologická stanice poháněná solární energií Arduino udělala správnou cestu

Po 1 roce úspěšného provozu na 2 různých místech sdílím své plány solárních pohonů meteorologické stanice a vysvětluji, jak se vyvinul do systému, který může skutečně přežít po dlouhou dobu ze sluneční energie. Pokud budete postupovat podle mých pokynů a za použití přesně stejných materiálů, které jsou uvedeny v seznamu, můžete postavit solární meteorologickou stanici, která poběží mnoho let. Vlastně jediným faktorem omezujícím, jak dlouho bude běžet, je životnost baterie, kterou používáte.

Krok 1: Provoz meteorologické stanice

1, vysílač: venkovní box se solárním panelem, který pravidelně odesílá telemetrii počasí (teplota, vlhkost, tepelný index, sluneční síla) do vnitřní přijímací jednotky.

2, přijímač: Vnitřní jednotka vyrobená z Raspberry PI 2 + Arduino Mega s přijímačem RF 433 Mhz připojeným pro příjem dat. V mém nastavení tato jednotka nemá žádnou funkci místního LCD displeje. Běží to nedbale. Hlavní program C se stará o příjem příchozích dat z Arduina přes sériové číslo, poté o jejich protokolování do textového souboru a zpřístupnění posledních přijatých dat prostřednictvím telnetu pro další zařízení, aby na ně mohla dotazovat.

Stanice ovládá světla v mém domě čtením fotorezistoru (který určuje, zda je venku den nebo noc). Přijímač je v mém případě bezhlavý, ale projekt můžete snadno upravit a přidat LCD displej. Jedním ze zařízení využívajících, analyzujících a zobrazujících data o počasí ze stanice je můj další projekt: Ironforge NetBSD Toaster.

Krok 2: První verze

První verze
První verze
První verze
První verze
První verze
První verze
První verze
První verze

Na internetu je mnoho solárních projektů, ale mnoho z nich se dopouští běžné chyby, že systém v průběhu času odebírá z baterie více energie, kterou by solární panel mohl doplnit, zejména během zatažených, temných zimních měsíců.

Když navrhujete solární systém, jediné, na čem záleží, je SPOTŘEBA ENERGIE na všech součástech: MCU, rádiovém vysílači, regulátoru napětí atd.

Používat velký počítač jako malinový pi nebo výkonné wifi zařízení, jako je ESP, jen pro sběr a přepravu několika bitů dat o počasí, by bylo přehnané, ale jak to ukážu v tomto tutoriálu, je to i malá deska Arduino.

Nejlepší je vždy měřit proud během procesu vytváření pomocí měřiče nebo rozsahu (užitečné, když se pokusíte změřit malé špičky v používání během operace ve velmi krátkých časových intervalech (milisekundách)).

Na prvním obrázku můžete vidět moji první (Arduino Nano Based) stanici a druhou desku Arduino Barebone Atmega 328P.

První verze, přestože fungovala perfektně (monitorování prostředí a odesílání dat přes rádio), měla příliš vysokou spotřebu energie ~ 46mA a vybila baterii během několika týdnů.

Všechny verze používaly následující baterii:

Vestavěná ochranná deska 18650 6000mAh chráněná Li-ion dobíjecí baterie

AKTUALIZACE na těchto bateriích ScamFire. Přestože se jedná o poměrně starý instruktáž, stále jsem se cítil nucen to napravit kvůli této falešné baterii. NAKUPUJTE zmíněnou baterii, udělejte si vlastní průzkum o dalších bateriích LION/LIPO, všechny 3,7V baterie budou s tímto projektem fungovat.

Nakonec jsem měl čas odhalit baterii ScamFire, abych zjistil, jaká je její skutečná kapacita. Proto provedeme 2 výpočty vedle sebe se skutečnými a „inzerovanými“kapacitami.

Za prvé je to jedna věc, že tato baterie je falešná a nic z toho, co o ní tvrdí, není pravda, nové verze jsou ještě horší, že kopírovaly falešné s vynecháním ochranného obvodu 2 centy, takže je nic nezastaví ve vybíjení až na nulu.

Malý článek o bateriích LION/LIPO:

TLDR:

To znamená, že maximální napětí článku je 4,2 V a „nominální“(průměrné) napětí je 3,7 V.

Zde je například uveden profil napětí pro „klasickou“baterii 3,7 V/4,2 V. Napětí začíná na maximu 4,2 a po většinu životnosti baterie rychle klesá na přibližně 3,7 V. Jakmile dosáhnete 3,4 V, baterie je vybitá a při napětí 3,0 V odpojí obvody baterii.

Moje měření pomocí atrapy zátěže:

Baterie nabitá: 4,1 V.

Cutoff nastaven na: 3,4V

Simulace zátěže: 0,15 A (moje zařízení mělo trochu problém s poklesem níže než toto).

Naměřená kapacita: 0,77 Ah dává bezúplatných 0,8 Ah, což je 800 mAh místo inzerovaných 6 000 mAh!

Vzhledem k tomu, že tato baterie neměla ani ochranný obvod, mohl jsem volně klesnout, ale při 3,4 V po 10 minutách již spadl na 3,0 V.

Díky jednoduchým výpočtům baterie poskytuje:

Teoretický

Napětí baterie = 3,7V

Výkon = 3,7x6000 = 22000 mWh

Nemovitý

Napětí baterie = 3,7 V Výkon = 3,7 x 800 = 2960 mWh

Verze: 0.1 ARDUINO NANO BASED

I u knihovny LowPower spotřebuje Arduino nano ~ 16 mA (v režimu spánku) -> FAIL.

Teoretický

Pavg = VxIavg = 5Vx16mA = 80 mW

Životnost baterie = 22000/80 = 275 hodin = přibližně 11 dní

RealPavg = VxIavg = 5Vx16mA = 80 mW

Výdrž baterie = 800/80 = 10 hodin

Verze: 0.2 Atmega 328P Barebone

Energie spotřebovaná ATmega328 závisí hodně na tom, co s ním děláte. Když sedí ve výchozím stavu, může používat 16mA @ 5V při běhu na 16MHz.

Když je ATmega328P v aktivním režimu, bude nepřetržitě provádět několik milionů instrukcí za sekundu. Dále převodník analogového signálu na digitální zařízení (ADC), sériové periferní rozhraní (SPI), časovač 0, 1, 2, dvouvodičové rozhraní (I2C), USART, časovač hlídání (WDT) a detekce zhnědnutí (BOD) spotřebovávají energii.

Pro úsporu energie podporuje ATmega328P MCU řadu režimů spánku a nepoužívané periferie lze vypnout. Režimy spánku se liší podle toho, jaké části zůstávají aktivní, podle délky spánku a doby potřebné k probuzení (doba probuzení). Režim spánku a aktivní periferie lze ovládat pomocí knihoven spánku a napájení AVR nebo, výstižněji, pomocí vynikající knihovny Low-Power.

Knihovna s nízkým výkonem se snadno používá, ale je velmi výkonná. Příkaz LowPower.powerDown (SLEEP_8S, ADC_OFF, BOD_OFF); přepne MCU na SLEEP_MODE_PWR_DOWN na 16 ms až 8 s, v závislosti na prvním argumentu. Deaktivuje ADC a BOD. Úsporný režim znamená, že všechny funkce čipu jsou deaktivovány až do dalšího přerušení. Dále je externí oscilátor zastaven. MCU může probudit pouze přerušení úrovně na INT1 a INT2, přerušení změny pinů, shoda adres TWI/I2C nebo WDT, pokud je povoleno. Jediným prohlášením tedy minimalizujete spotřebu energie. U 3,3 V Pro Mini bez LED napájení a bez regulátoru (viz níže), na kterém běží prohlášení, je spotřeba energie 4,5 μA. To je velmi blízké tomu, co je uvedeno v datovém listu ATmega328P pro úsporný režim s povoleným WDT 4,2 μA (datový list propojený ve zdrojích). Proto jsem si docela jistý, že funkce powerDown vypne vše, co je rozumně možné. S příkazem LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);, bude WDT deaktivován a nebudete se probouzet, dokud nebude spuštěno přerušení.

Díky nastavení barebone můžeme čip přepnout do režimu spánku na 5 minut, zatímco spotřebovává velmi malé množství energie (0,04 mA bez periferií). Je to však pouze čip Atmega 328P s krystalovým oscilátorem a nic jiného, zesilovač napětí použitý v této konfiguraci ke zvýšení napětí baterie z 3,7 V -> 5,0 V také spotřebuje 0,01 mA.

Jedním odtokem konstantního napětí byl přidaný fotorezistor, který zvýšil spotřebu v režimu spánku na celkovou 1 mA (to zahrnuje všechny součásti).

Vzorec pro výpočet přesné spotřeby zařízení v režimu spánku i probuzení je:

Iavg = (Ton*Ion + Tsleep*Isleep) / (Ton + Tsleep)

Ion = 13mA

Většinou to pochází z vysílače RF433 Mhz:

Vysílač:

Pracovní napětí: 3V - 12V pro max. spotřeba energie 12 V Pracovní proud: max. Méně než 40 mA max. a min. 9 m Rezonanční režim: (SAW) Režim modulace: ASK Pracovní frekvence: Eve 315 MHz nebo 433 MHz Vysílací výkon: 25 mW (315 MHz při 12V) Chyba frekvence: +150 kHz (max.) Rychlost: méně než 10 Kbps

Spánek = 1mA

Bez fotorezistoru by to bylo podstatně méně.

Trunon time Ton = 250 mS = 0,25 s

Doba spánku Tsleep = 5 min = 300 s

Iavg = (Ton*Ion + Tsleep*Isleep) / (Ton + Tsleep)

Iavg = (0,25 s*13 mA + 300 s*1 mA) / (0,25 s + 300 s)

Iavg = 1,26mA

Pavg = VxIavg = 5Vx1,26mA = 6 mW

Teoretický

Životnost baterie = 22 000 mWh/6 mW = 3666 hodin = přibližně 152 dní

Nemovitý

Životnost baterie = 800 mWh/6 mW = 133 hodin = přibližně 5,5 dne

Ačkoli to byly stále lepší série UltraFire, co jsem původně používal, bylo vidět, že bez solárního panelu nebo nízké spotřeby 1mA by tento projekt dlouho nepřežil.

Klidně postavte stanici a své poznatky a výpočty napište do komentářů a článek budu aktualizovat. Ocenil bych také výsledky s různými MCU a boost převodníky.

Krok 3: Budování úspěšné meteorologické stanice

Vybudování úspěšné meteorologické stanice
Vybudování úspěšné meteorologické stanice
Vybudování úspěšné meteorologické stanice
Vybudování úspěšné meteorologické stanice
Vybudování úspěšné meteorologické stanice
Vybudování úspěšné meteorologické stanice
Vybudování úspěšné meteorologické stanice
Vybudování úspěšné meteorologické stanice

Přestože se jedná o první úspěšnou verzi, obsahuje na obrázcích trochu selhání a ty nemohu předělat, protože stanice jsou již nasazeny. Dva zesilovače napětí zobrazené na obrázku lze v době psaní získat pro letecké modelování a další aplikace. Když jsem přepracoval svou stanici, uvažoval jsem o získání menší a efektivnější desky pro zvýšení napětí, jakkoli menší velikost rozhodně neznamená, že je účinnější.

Nový malý modul na obrázku, který nemá ani indikátor, ve skutečnosti sám vyčerpal 3mA (*FAIL*), takže jsem zůstal u své staré desky:

PFM Control DC-DC USB 0,9V-5V až 5V DC Boost Step-up napájecí modul

V době psaní tohoto článku je tento modul stále k dispozici na Ebay za 99 centů, ale pokud se rozhodnete použít jiný posilovač, vždy zkontrolujte spotřebu energie v pohotovostním režimu. S posilovačem dobré kvality by to nemělo být více než moje (0,01 mA), i když malá LED na palubě musela být odletována.

Krok 4: Seznam hardwaru

Seznam hardwaru
Seznam hardwaru
  • Vestavěná ochranná deska 18650 6000mAh chráněná Li-ion dobíjecí baterie
  • Atmega 328P16M 5V se zavaděčem
  • Sada Adafruit DC Boarduino (kompatibilní s Arduino) (s ATmega328) <to bude dobrá investice, pokud děláte budoucí barebone projekty
  • Fotografický rezistor citlivý na světlo Fotorezistor Optoresistor 5mm GL5539
  • Diody usměrňovače 1A 1000V 1N4007 IN4007 DO-41
  • PFM Control DC-DC USB 0,9V-5V až 5V DC Boost Step-up napájecí modul
  • 1,6W 5,5V 266mA Mini solární panel Modulová systémová epoxidová nabíječka článků
  • Modul nabíjecí desky lithiové baterie Mini USB 1A TP405 5V
  • 433 MHz RF vysílač a přijímač propojovací sada pro dálkové ovládání Arduino/ARM/MC <Kit, obsahuje vysílač i přijímač
  • Spojovací krabice s chráničem spínače IP65 Venkovní vodotěsná skříň 150x110x70mm
  • Nový modul snímače teploty a relativní vlhkosti DHT22 pro Arduino
  • 1x220 Ohm, 2x10KOhm, 1xLED, 1xMini Switch, 1x1N4007 dioda
  • Keramický rezonátor / oscilátor Adafruit 16 MHz [ADA1873]
  • Arduino UNO/Mega atd. Pro přijímací stanici + Raspberry PI 1/2/3
  • Průhledný akrylový plastový box (volitelně)

To vše najdete na Ebay, nechci propagovat žádné prodejce odkazováním na jejich stránky a odkazy stejně v budoucnu zemřou.

Poznámky k seznamu hardwaru:

Jen v případě, že Atmegu nějakým způsobem zazdíváte, kupte si jich více, to samé platí pro posilovač napětí a solární regulátor nabíjení.

Solární nabíječka obsahuje 2 malé barevné LED diody, které se rozsvítí pouze v případě solárního nabíjení a indikují (červené-> nabíjení, modré-> plně nabité stavy). Ty lze také odspájkovat. Během nabíjení dává baterii trochu více šťávy navíc.

Jak vidíte, v mém seznamu nejsou žádné držáky baterií. Proč? Protože jsou nespolehliví. Měl jsem nespočet případů, kdy se baterie vytáhla z držáku a ztratila spojení. Zvláště pokud je vaše zařízení namontováno na vysokém sloupku paraboly, jako je ten můj, otevřený pro jakékoli drsné povětrnostní podmínky. Dokonce jsem baterii zazipoval do držáku pomocí 2 zipů a stále se dokázala vysunout. Nedělejte to, stačí odstranit vnější povlak z baterie a pájet vodiče přímo do spodní části baterie, obsahující ochranný obvod proti přebití (neobcházejte ochranu). Držák baterie lze použít pouze k držení baterie na místě v zařízení.

Nabíjecí deska lithiové baterie TP405 5V Mini USB 1A: bohužel tato deska neobsahuje ochranu proti zpětnému proudu solárního panelu, k tomu budete potřebovat 1 další diodu umístěnou mezi jednu nohu solárního panelu a nabíjecí obvod, abyste zastavili zkoušení proudu v noci proudit zpět do solárního panelu.

Krok 5: Montáž

Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění

Tato deska obsahuje relativně málo komponent a značky na desce jsou poměrně jednoduché.

Ujistěte se, že NEVSTUPUJETE Atmega328P špatným způsobem (který může zahřívat a cihlovat čip, může také zničit zesilovač napětí).

V tomto nastavení čip směřuje dolů (malý U otvor označující PIN1). Všechny ostatní komponenty by měly být zřejmé.

Pro LDR použijte stíněný kabel (např.: Audio kabel od CDrom bude fungovat dobře). V některých případech (po mnoho týdnů testování) se ukázalo, že ruší přenos rádiového signálu. To byla jedna z těch chyb, u kterých bylo obtížné odstranit problémy, takže pokud nechcete mít potíže, použijte stíněný kabel, konec příběhu.

LED: LED na spodní straně krabice byla původně přidána k blikání při odchozím rádiovém přenosu, ale později jsem to považoval za plýtvání energií a při spouštění bliká pouze 3krát.

TP: je testovací bod pro měření proudu pro celý obvod.

DHT22: Nekupujte levné DHT11, utratte 50 centů navíc, abyste získali bílý DHT22, který dokáže měřit i negativní teploty.

Krok 6: Design pouzdra

Design pouzdra
Design pouzdra
Design pouzdra
Design pouzdra
Design pouzdra
Design pouzdra

Ačkoli je to trochu přehnané, byla vytvořena 3D tištěná krychle (weather_cube), která drží teplotní senzor DHT22 na svém místě. Kostka je přilepená ke spodní části IP krabice a obsahuje pouze 1 otvor pro vzduch, aby dosáhl senzoru. Do otvoru jsem přidal síť proti včelám, vosám a dalším malým muškám.

Volitelně lze použít externí box, aby byla stanice vodotěsnější v případě, že ji budete montovat na otevřenou tyč na tyč.

Nápad na 1 užitečnou funkci: přidání velké kovové střešní desky o velikosti 1–2 cm na horní část krabice poskytující v létě stín od slunce, i když by to také mohlo odvést naše užitečné sluneční světlo z panelu. Můžete přijít s návrhem, který odděluje panel a krabici (ponechá panel na slunci, krabici ve stínu).

Na obrázcích: jedna ze stanic odstraněna z pracovního prostředí po 1 roce, napětí baterie je stále na ohromujících 3,9 V, žádné poškození krabice nepoškodilo vodu, i když síť, kterou jsem nalepil na dno kostky, byla roztržena. Důvodem, proč bylo nutné stanici opravit, je porucha připojení na konektoru LDR, přestože se zdálo, že propojovací kabel je stále na svém místě, spojení bylo přerušeno, a proto kolík někdy plul a poskytoval špatné analogové hodnoty LDR. Doporučení: Pokud používáte standardní propojovací kabely pro PC, všechny je zalepte, až stanice dokonale funguje, abyste tomu zabránili.

Krok 7: Software

Software
Software

Softwarový kód bude vyžadovat 3 externí knihovny (LowPower, DHT, VirtualWire). V poslední době jsem měl problém najít některé z nich snadno online, takže jsem je připojil do samostatného souboru ZIP. Bez ohledu na to, jaký operační systém používáte Linux/Windows, stačí najít složku knihovny vašeho Arduino IDE a extrahovat ji tam.

Jen poznámka, bez ohledu na to, že už nedoporučuji kupovat DHT11, pokud použijete špatný typ snímače DHT, program bude na začátku v sekci inicializace věčně viset (ani 3x neuvidíte bliknutí LED diody při spuštění).

Kód hlavní smyčky je velmi jednoduchý, nejprve načte hodnoty prostředí (teplota, tepelný index, vlhkost, sluneční záření), odešle je přes rádio a poté pomocí knihovny s nízkou spotřebou uvede Arduino do režimu spánku na 5 minut.

Zjistil jsem, že snížení přenosové rychlosti zvýší stabilitu rádiových přenosů. Stanice odesílá velmi malé množství dat, 300 bps je více než dost. Nezapomeňte také, že vysílač funguje pouze od cca. 4,8 V, v budoucí verzi 3,3 V to může vést k ještě horší kvalitě přenosu (odesílání dat přes zdi a další překážky). Při používání Arduina Mega připojeného k Raspberry PI 2 napájejícího Mega z PI mám problém, že jsem neobdržel žádný přenos. Řešením bylo napájet Mega ze samostatného externího napájení 12V.

Krok 8: Verze 2 (na základě ESP32)

Verze 2 (na základě ESP32)
Verze 2 (na základě ESP32)
Verze 2 (na základě ESP32)
Verze 2 (na základě ESP32)
Verze 2 (na základě ESP32)
Verze 2 (na základě ESP32)

Všechno, co se může zlomit, se rozbije, aby citovalo starého dobrého Murphyho, a nakonec po letech stanice selhaly záhadnými způsoby. Jeden začal posílat bláznivé sluneční údaje, které šly až k desítkám tisíc, což je nemožné, protože: Deska Arduino obsahuje 6kanálový (8 kanálů na Mini a Nano, 16 na Mega), 10bitový převodník analogového signálu na digitální. To znamená, že bude mapovat vstupní napětí mezi 0 a 5 volty na celočíselné hodnoty mezi 0 a 1023. Takže po výměně rádia, LDR a několikanásobném přeprogramování Atmega 328P jsem to vzdal a rozhodl jsem se, že je čas na inovace. Pojďme na ESP32.

Deska, kterou jsem použil, byla: ESP32 WEMOS LOLIN32 Lite V1.0.0 Wifi a Bluetooth karta Rev1 MicroPython 4 MB FLASH

wiki.wemos.cc/products:lolin32:lolin32_lit…

Mikrokontrolér ESP-32

Provozní napětí 3,3 V digitální I/O piny 19 analogových vstupních kolíků 6 taktovací frekvence (max.) 240 MHz Flash 4 M bajty Délka 5 mm šířka 2,54 mm hmotnost 4 g

Který na rozdíl od obrázku nemá logo LOLIN (padělek z Číny). Moje první příjemné překvapení bylo, že pinout vytištěný na desce odpovídá pinoutu Arduino! Poté, co jsem se zabýval tolika deskami noname, kde jsem musel celý den hledat pinouty, mrtvý unavený dělat chyby, konečně deska, kde je pinout přímočarý WoW!

Zde je však temná stránka příběhu:

Zpočátku jsem připojil LDR k A15, což je pin 12, protože bylo snazší lepit kolíky dohromady. Pak mám 4095 odečtů (což je maximum, které můžete získat s AnlogRead na ESP32), což mě přivádělo k šílenství, protože celý důvod, proč jsem stanici přestavěl, byly rozbité odečty LDR ze starého (DHT stále fungoval dobře). Ukazuje se tedy, že:

ESP 32 integruje dva 12bitové registry ACD. ADC1 má 8 kanálů připojených k GPIO 32-39 a ADC2 má 10 kanálů v jiných pinech. Věc je, že ESP32 používá ADC2 ke správě funkcí wifi, takže pokud používáte Wifi, nemůžete použít tento registr. Rozhraní API ovladače ADC podporuje ADC1 (8 kanálů, připojeno k GPIO 32 - 39) a ADC2 (10 kanálů, připojeno k GPIO 0, 2, 4, 12 - 15 a 25 - 27). Použití ADC2 má však pro aplikaci určitá omezení:

ADC2 používá ovladač Wi-Fi. Aplikace proto může používat ADC2 pouze tehdy, když nebyl spuštěn ovladač Wi-Fi. Některé z pinů ADC2 se používají jako páskovací piny (GPIO 0, 2, 15), takže je nelze používat volně. To je případ následujících oficiálních vývojových sad:

Takže připojení LDR od pinu 12 k A0, což je VP, vyřešilo vše, ale nechápu, proč dokonce uvádějí piny ADC2 jako dostupné pro výrobce. Kolik dalších hobbistů promarnilo spoustu času, než na to přišel? Nepoužitelné piny alespoň označte červenou barvou nebo tak něco, nebo ji v příručce vůbec neuvádějte, aby se o nich ostatní výrobci mohli dozvědět, pouze pokud je skutečně potřebují. Celým účelem ESP32 je používat jej s WIFI, každý jej používá s WIFI.

Dobrý začátek, jak nastavit Arduino IDE pro tuto desku:

Ačkoli jsem to vložil do kódu, jde to znovu:

Tento kód se nemusí kompilovat pro jiné modely ESP32 než Weemos LOLIN 32!

Nastavení sestavení: -Použití nahrávání/sériové: 115200 -Použití CPU/RAM: 240MHz (Wifi | BT) -Používání flash frekvence: 80 MHz

Na internetu je mnoho meteorologických stanic založených na ESP32, je jich mnohem více, než byla moje verze 1 s barebone čipem, protože se snadněji nastavují, nepotřebujete programátor, stačí připojit zařízení na USB a naprogramovat jej a jejich režim hlubokého spánku je vynikající pro dlouhodobý běh z baterie. Hned po netopýru to byla úplně první věc, kterou jsem testoval ještě před pájením na vylamovacích pinech, protože jak jsem si všiml více míst v tomto projektu, NEJDŮLEŽITĚJŠÍ je spotřeba energie a při současné (falešné) baterii a malém solárním panelu pohotovostní režim energie nemůže přesáhnout 1–2 mA, jinak by projekt nebyl schopen dlouhodobě vydržet.

Bylo opět příjemným překvapením, že režim hlubokého spánku funguje tak, jak je inzerován. Během hlubokého spánku byl proud tak nízký, že ho můj levný multimetr nemohl ani změřit (funguje pro mě).

Během odesílání dat byl proud kolem 80 mA (což je asi 5krát více, než když se Atmega 328P probouzel a vysílal), nezapomeňte však, že u V1 byl na LDR v režimu spánku průměrný odběr 1 mA (který také závisel na úrovních světla a šel od 0,5mA - 1mA), který je nyní pryč.

Nyní, když je baterie UltraFire odhalena, pokud používáte stejnou baterii, můžete očekávat toto:

Iavg = (Ton*Ion + Tsleep*Isleep) / (Ton + Tsleep)

Iavg = (2 s*80 mA + 300 s*0,01 mA) / (2 s + 300 s) Iavg = 0,5 mA

Pavg = VxIavg = 5Vx0,5mA = 2,5 mW

Teoretický

Životnost baterie = 22 000 mWh/2,5 mW = 8800 hodin = přibližně 366 dní

Nemovitý

Životnost baterie = 800 mWh/2,5 mW = 320 hodin = přibližně 13 dní

Neměl jsem prostor přesně měřit čas zapnutí, ale s mými vylepšeními to trvalo asi 2 sekundy.

Nechtěl jsem trávit odpoledne vlastním kódováním všeho, a tak jsem se podíval po dalších meteorologických stanicích na Instructables na základě ESP32, abych zjistil, co dělají pro ukládání dat. Smutně si všiml, že používají nepružná a omezená místa, jako je počasí. Protože nejsem fanouškem „cloudu“a jejich kód se dlouho rozpadl, protože web od té doby změnil své API, vzal jsem si 10 minut na vytvoření vlastního řešení, protože to není tak těžké, jak by si někdo mohl myslet. Začněme!

Za prvé, pro tento projekt neexistuje žádný obrázek desky plošných spojů, protože používá přesně stejné komponenty (omlouvám se za to připájené na ošklivém obrázku) jako V1 s tím rozdílem, že všechno běží na 3,3 V. DHT se připojil s pullupem k VCC, LDR stáhl dolů s 10k. Problém, který by člověk mohl vidět u baterií 18650, jako je můj čínský falešný (6500 mAh ultra sluneční oheň lol: D), je ten, že začnou vybíjecí křivku přibližně od 4,1 V nového věku a jdou, dokud se jejich obvody nespustí, aby se zabránilo poškození článků (ti, kteří mají to štěstí, že to mají). To pro nás není nikde dobré jako vstup 3,3 V. Ačkoli tato deska LOLIN má v tomto projektu konektor lithiové baterie a nabíjecí obvod, chtěl jsem ze staré stanice zrekonstruovat co nejvíce, takže u staré 18650 NEMŮŽETE používat tuto vestavěnou nabíječku. Řešení bylo jednoduché: Odřízl jsem kabel micro USB připájený do 5 V ze starého zesilovače napětí a problém s voilá vyřešen, protože deska na microUSB má regulátor.

Takže rozdíl mezi starou a novou verzí, která ve staré baterii poskytuje 3,7V -> posíleno na 5V -> ardu běží na 5V -> všechny komponenty běží na 5V.

V novém: baterie poskytuje 3,7 V -> posíleno na 5 V -> regulováno pomocí integrovaného regulátoru na ESP32 -> všechny komponenty běží na 3,3 V.

Softwarově budeme potřebovat i další knihovnu DHT, DHT Arduina není kompatibilní s ESP. To, co potřebujeme, se nazývá DHT ESP.

Začal jsem svůj kód zakládat na příkladu DHT, který tento kód poskytoval. Fungování kódu je:

1, Získejte údaje o životním prostředí z dat DHT + Solar z fotobuňky

2, Připojte se k wifi se statickou IP

3, POST data do skriptu php

4, Jděte spát na 10 minut

Jak si všimnete, vyladil jsem kód na účinnost, abych absolutně minimalizoval dobu probuzení, protože při zapnutí odčerpává 5krát více energie, než dělal starý projekt. Jak jsem to udělal? Za prvé, pokud dojde k JAKÉKOLI chybě, funkce getTemperature () se vrátí s false (což znamená, že znovu spíte 10 minut). Může to být tak, že nelze spustit snímač DHT nebo není k dispozici připojení wifi. Jak jste si všimli, byla také odstraněna obvyklá smyčka while () pro neustálé zkoušení asociace wifi navždy, ale muselo tam zůstat zpoždění 1 sekundy, jinak se nebude vždy připojovat a také to závisí na typu AP, zatížení atd. se stane, s 0,5 s jsem dostal nekonzistentní chování (někdy se nemohl připojit). Pokud někdo zná lepší způsob, jak to udělat, zanechte to v komentářích. Pouze když jsou načtena data DHT A WiFi připojení je spuštěno, pokusí se odeslat data do skriptu na webovém serveru. V běžném provozním režimu jsou také deaktivovány všechny druhy funkcí, které zabírají čas, jako jsou Serial.println (). Jako server také používám IP, abych se vyhnul zbytečnému vyhledávání DNS, v mém kódu je výchozí brána i server dns nastaven na 0,0.0.0.

Nechápu, proč je tak těžké vytvořit si vlastní API, když stačí:

sprintf (odpověď, "temp =%d & hum =%d & hi =%d & sol =%d", temp, hum, hi, sol);

int httpResponseCode = http. POST (odpověď);

Tento malý php kód vložíte do jakéhokoli malinového pi a můžete hned dělat úkoly systému () na základě telemetrie, jako je zapnutí ventilátorů nebo rozsvícení světel, pokud se dostatečně setmí.

Několik poznámek ke kódu:

WiFi.config (staticIP, brána, podsíť, dns); // MUSÍ být po Wifi začít jak hloupý …

WiFi.mode (WIFI_STA); // MUSÍ jinak to také vytvoří nežádoucí AP

Jo, teď už to víš. Také pořadí konfigurací IP se může měnit prostřednictvím platforem. Zkoušel jsem nejprve jiné příklady, kde byly přepnuty hodnoty brány a podsítě. Proč nastavit statickou IP? Je zcela zřejmé, že pokud máte ve své síti vyhrazený box, jako je linuxový server se systémem isc dhcpd, nechcete sto milionů záznamů z protokolu, když se ESP probudí a získá IP z DHCP. Směrovače obvykle nezaznamenávají asociace, takže zůstanou neviditelné. To je cena za úsporu energie.

V2 nebyl nikdy schopen se udržet kvůli baterii špatné kvality a jednoduše jsem ho nasadil na adaptér, takže pokud chcete stavět buď V1 nebo V2, NEKUPUJTE zmíněnou baterii, udělejte si vlastní průzkum baterií (jakákoli 18650 více než 2000 mAh inzerovaná kapacita na Ebay je podvod s vysokou pravděpodobností).

Doporučuje: