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

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.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny