Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Elektroměr + arduino + wifi modul ESP8266 Esp-13

Ahoj,

mám doma podružný elektroměr, který mi měří spotřebu tepelného čerpadla. Já každý večer jdu dolů do kotelny opsat stav a nadatluju ho do excelu (což samozřejmě někdy zapomenu).
Elektroměr má výstup a - <30v <27mA pro odečítání impulsů (800 imp = 1kw myslím).
Já mám doma nevyužité arduino + z aliexpressu desku s wi-fi esp8266 (ESP8266 Esp-13) z aliexpressu (tuhle: esp13w1.jpg)

Tak mě napadlo udělat nějak že by arduino počítalo impulsy a když jich bude těch 800, tak zavolá přes wifi url (bude běžet na mém serveru) a tím se do mé DB zaznamená spotřebovaná kilowata.

Jsem PHP programátor, k C a C++ jsem si taky čuchnul, takže s pomocí a návody na netu bych i ten wifi modul nějak rozběhl asi, ale potřeboval bych poradit s tím propojením arduina s elektroměrem, protože relátko by se asi z těch impulsů zbláznilo, takže asi nějaké tranzistory, ale to jsem měl naposled před dvaceti lety na škole a vše jsem zapomněl.

Mohl by mi prosím tedy v této první fázi poradit jak to zapojit nejlépe schéma? Já už si součástky seženu a zapojí/propájím, to není problém...

Díky moc!

Edit: ještě mě napadlo použít DC-DC měnič který udělá z 30v 5v a připojit na arduino, ale nevím zda by to fungovalo s impulsy. Například tento: menic-xl6009e1

Předmět Autor Datum
Na to ti stačí obyčajný optočlen, napr. takto.
poihu 27.09.2020 23:18
poihu
Plus bych se vykašlal na to arduino a řešil čítač pulzů rovnou na ESPčku…
Tbrthg iodzvj 27.09.2020 23:56
Tbrthg iodzvj
No mám doma jen arduino uno a esp-13 shield, takže to připojuji přes usb v arduinu. Zkusil jsem tent…
n.u.r.v. 28.09.2020 13:49
n.u.r.v.
Nahrával jsi něco na tu ESP jestli ano, nebyli k PC připojeny i jiné zařízení ? Když si otevřu seri…
HPET 28.09.2020 14:01
HPET
NN esp je čerstvě vybalené. Uno je testovací, tam už toho bylo nahrané víc, ale před připojením jsem…
n.u.r.v. 28.09.2020 17:47
n.u.r.v.
kašlu na to, celý den se s tím smolím, x návodů na netu přečteno, ale prostě to nekomunikuje. Pokud…
n.u.r.v. 28.09.2020 18:44
n.u.r.v.
Napadlo mě, že to ESP8266 na tom shieldu nemá naprogramovaný firmware pro serial wifi. Nevím přesně,…
Tbrthg iodzvj 28.09.2020 23:26
Tbrthg iodzvj
ahá, díky za odkaz. Zítra zkusím...
n.u.r.v. 29.09.2020 01:13
n.u.r.v.
Nemusis ani pouzivat arduino. ESP má také GIOP a programovat se dá podobně jako arduino
sadasd 29.09.2020 08:55
sadasd
jj, jenže si musím pořídit nějaký bazmek abych to připojil k usb...
n.u.r.v. 29.09.2020 09:27
n.u.r.v.
Nemusíš, jako bazmek na naprogramování použiješ to arduino…
Tbrthg iodzvj 29.09.2020 09:34
Tbrthg iodzvj
No a to právě nějak nefunguje - při nahrávání programu dostanu chybu
n.u.r.v. 29.09.2020 10:01
n.u.r.v.
No, a jak máš to arduino propojené s tím shieldem? Jakým způsobem do toho shieldu nahráváš firmware?
Tbrthg iodzvj 29.09.2020 11:00
Tbrthg iodzvj
Btw, když chceš nahrát firmware do toho ESPčka, tak po spuštění uploadu musíš udělat reset toho ESP,…
Tbrthg iodzvj 29.09.2020 18:21
Tbrthg iodzvj
Postupoval jsem přesně podle tohoto návodu a nešlo to: esp-13-wifi-shield-web-server.html V týdnu z…
n.u.r.v. 30.09.2020 12:54
n.u.r.v.
Děkuji! Už to komunikuje - dle toho odkazu jsem zapojil a nyní už programuju rovnou to ESP, takže mů…
n.u.r.v. 01.10.2020 22:34
n.u.r.v.
Elektrický interface bych řešil jednoduše, jestli má elektroměr spínací výstup, tak neni nic jednodu…
ml1 29.09.2020 17:56
ml1
no a protože chodím domů večer a u žteď spím jen 5 hodin denně, tak nereálné - na to nemám čas, ješt…
n.u.r.v. 30.09.2020 10:34
n.u.r.v.
Tak už mi to funguje a používám jen esp 13 shield bez arduina (arduino používám jen jako převodník p… poslední
n.u.r.v. 04.10.2020 16:19
n.u.r.v.

No mám doma jen arduino uno a esp-13 shield, takže to připojuji přes usb v arduinu. Zkusil jsem tento jednoduchý návod (esp-13-wifi-shield-web-server.html), ale u toho jsem zkončil.

Je nějaký problém s komunikací - dostávám chyby:
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed

Když si otevřu serial monitor a stisknu na esp reset, tak dostanu změť klikyháků, když snížím rychlost, tak dostanu ets Jan 8 2013,rst cause:2, boot mode:(1,7) což by mělo být správně.

Je možné, že mám propojení mezi arduinem a esp i pomocí jehel (došli mi propojovací kabílky, mám jen samec-samice)

Nevím co teď s tím, zkusím v úterý sehnat káble, ale tím to asi nebude

Nahrával jsi něco na tu ESP jestli ano, nebyli k PC připojeny i jiné zařízení ?

Když si otevřu serial monitor a stisknu na esp reset, tak dostanu změť klikyháků

Ty klikyháky, znaky, se zobrazují při nastavení nekorektní rychlosti, zkus jí snížit a nastavit na 74880.
Před tou 'warning' zprávou v tom sériovém terminálu nebyla i chyba o portu COM ?
(jestli jsi ten kod nahrával před tools, podívej se, zda-li jsi zvolil správný model modulu. Github esp8266/Arduino na stahnuti)

PS : Může se hodit: mimo ručni reset modulu Serial Monitor for ESP8266
viz : [DTR] a [RTS] nejsou správně spravovány původním sériovým monitorem, který po otevření udržuje ESP8266 v režimu resetování.

Napadlo mě, že to ESP8266 na tom shieldu nemá naprogramovaný firmware pro serial wifi. Nevím přesně, jak si představuješ že hodláš to ESP ovládat, ale předpokládám, že přes AT příkazy posílané přes sériový port. V tom případě musíš do toho shieldu prvně nahrát AT firmware.
Zkus se inspirovat na https://osoyoo.com/ja/2019/04/18/how-to-burn-the-an-thinker-at-command-firmware-for-the-esp-wifi-shield/ kde nahrávají An-Thinker AT firmware, ale klidně ten návod můžeš použít i pro jiný firmware, třeba oficiální od Espressif.

Elektrický interface bych řešil jednoduše, jestli má elektroměr spínací výstup, tak neni nic jednoduššího, než ho použít (<37V <27mA podle mě znamená, že 5V pár mili je v pohodě). Pokusy asi nebudete dělat ve sklepě, takže je dobré mít nějaký model toho výstupu (je to kontakt (to by byl vopruz, bylo by nutné zbavit se zákmitů - debouncing se to obvykle nazývá), tranzistor, ...). V první fázi bude nutné získat signál, který sleduje stav toho výstupu, ať už z blikání ledky (to by bylo nepraktické, ale proveditelné) nebo z výstupu elektroměru. Tuhle fázi bych udělal bez adruina, prostě by mi blikala ledka tak, jak bliká ten elektroměr (či jeho model).
Až v další fázi bych tohle připojil na nějaký vstup arduina, ideálně IRQ nebo capture vstup některého z čítačů (pozor na to, že čítač0 používá arduino interně, někdy jsem na tom ztroskotal a až rozebrání knihoven mě na tuhle příčinu přivedlo), ale při četnosti těch pulzů by stačil i obyčejný vstup.
Mě by se jako nejjednodušší jevilo použít 16 bitový čítač, impulzy by byly jeho vstupem (snad je někam vyvedený, naposledy, když jsem to u avr používal, to bylo ještě před arduinem), a cyklus by měl zkrácený na 800, na vrcholu by vyvolal přerušení, které by nastavilo příznak a v hlavní smyčce by se ta událost odeslala nebo i zaznamenala (nechci navádět k prasárnám, ale možná by se to celé dalo zajistit i v tom přerušení).
To by bylo čistě hw řešení, které ale znamená nastudovat si datasheet použitého procesoru (předpokládám ATmega328 pokud je to uno) (neni potřeba číst všech cca 500 stránek, stačí prolistovat a přečíst si jen partie o čítačích a časovačích, je to sice náročné a trochu nepřehledné (názvy jako phase correct pwm a podobně je pro tento účel potřeba ignorovat a spíš se zaměřit na to, co to znamená, tady je potřeba externí vstup hodin a nulování po dosažení zvoleného stavu s tím, že to vyvolává přerušení, ono pak z těch třeba 4 módů co vypadají jako ten pravý vyjde jenom jeden), ale zvládnutelné).
Jinak pak je postup asi stejný jako u jakéhokoliv jiného programování, prostě se vezmou funkční kousíčky (examply, kterých je pro arduino víc, než může člověk vyzkoušet, ale na ty čítače jsem osobně vždy musel přijít sám), které se spojí do složitějšího programu tak, aby dělal, co je potřeba.

Zpět do poradny Odpovědět na původní otázku Nahoru