Měřič U,I,P,SOC s ESP-32

Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Ahoj,

zakládám nové vlákno, snad bude k užitku i pro více lidí, v ideálním cílovém stavu by mohl vzniknout i produkt opakovatelně využitelný komunitou.

Mám v plánu do roka a do dne postavit několik krabiček měřiče UIP + SOC s ESP-32 a zapojit je v poustevně jako náhradu stávajícho měření s INA214.

Některá východiska (hodně ispirací už bylo od rottenkiwi a kodla):
- Nechci hally, měřit se bude na shuntu, high-side
- Nepůjde o cenově superúsporné řešení, cílem je, aby to bylo "konečené kvalitní řešení"
- Jsem stará páka, která razí heslo "drát je drát". Propojení bude mít i metry, takže žádné experimenty s I2C, hlavním interface bude RS-485 a Modbus. S ESP-32 nebude problém případně dodělat dodatečně Web nebo BLE interface atd., ale to v další fázi. RS-485 bude obsluhované v mém případě z PLC Foxtrot. V PLC bude finální zpracování, grafy, prezentace jako dosud - tyto věci tedy nejsou primárním cílem projektu
- RS-485 chci mít izolovaný
- Jedna krabička - jedno měření, tj. jedno ESP-32 na každý měřič s jedním shuntem + jedno (izolované) RS-485 rozhraní. Je mi jasné, že by to šlo úsporněji, ale takový je plán
- Budu stavět z toho, co momentálně je sehnatelné, není to bohužel tedy o minimalizaci ceny ani z tohoto důvodu... Konkrétně jsem posháněl: ESP32-C3-DevKitM-1, INA229, NM485D6S5MC-R7. Mám i MAX485, ale ty snad s NM485D6S5MC-R7 nebudu ani potřebovat? To musím teprve zjistit...
- Z použitého výčtu vyplývá, že to míním tedy stavět s DEVKIT, velmi pravděpodobně na univerzálce (zatím ale netuším, jak zapájet NM485D6S5MC-R7 ;-)), což tedy není řešení pro nějaký "finální produkt", to je ještě k dořešení. Možná právě kvůli NM485D6S5MC-R7 nakonec nějaký jednostranný plošák bude, ač tam devkit zůstane ;-)
- Na každé destičce bude DIP switch, kterým se bude nastavovat ručně Modbus adresa (cílem je ládovat do každé krabičky stejný SW, abych se z toho nezbláznil tak rychle).
- Jako pomocné udělátko plánuji vyvinout RS-485 čtečku s https://www.aliexpress.com/item/33048962331.html, pomocí tohoto udělátka plánuji testovat a oživovat jednotlivé vyráběné kusy
- Shunty zatím nemám - válí se mi toho doma z Aliexpresu spoustu, ale nějak k tomu nemám důvěru (stávají měření mi strašně driftuje s teplotou): máte nějaký tip na shunty s dobrým poměrem cena / kvalita?

Nebude to vznikat moc rychle á la kiwi express, jdou mi do toho další věci k dělání...

Rady a komentáře velmi uvítám.

Díky
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Trochu se rozkoukávám s tím ESP-32, hraju si s nejjednoduššími věcmi. Pořídil jsem si https://www.aliexpress.com/item/32875975437.html a přidal jedno DS18B20. Takové začátečnické meditace:
- Eink displej by měl být skvělý co se týká spotřeby, ale v deep sleep měřím spotřebu 670 uA, to je přece hodně. Asi to nebudu rozměřovat na desce, ale netuším, co tam může tolik žrát (2104?). V každém případě by se mělo jít pro omezení spotřeby do zapojení bez devkit nebo to stavět s něčím jako attiny...
- Objevil jsem ameriku, že u novějších revizí ESP-32 už nefunguje interní měřič teploty
- Eink displej při využití fontů použivá překreslení všeho, což znamená nehezké pomalé probliknutí. Prý to šetří displej... Partial refresh se blbě programuje. Fonty jsou v základní knihovně pro ASCII 127 bitů...

Kód: Vybrat vše

// mstemp
// According to the board, cancel the corresponding macro definition
#define LILYGO_T5_V213
// #define LILYGO_T5_V22
// #define LILYGO_T5_V24
// #define LILYGO_T5_V28
// #define LILYGO_T5_V102
// #define LILYGO_T5_V266
// #define LILYGO_EPD_DISPLAY_102
// #define LILYGO_EPD_DISPLAY_154
#include <Wire.h>
#include <boards.h>
#include <GxEPD.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#if defined(LILYGO_T5_V102) || defined(LILYGO_EPD_DISPLAY_102)
#include <GxGDGDEW0102T4/GxGDGDEW0102T4.h> //1.02" b/w
#elif defined(LILYGO_T5_V266)
#include <GxDEPG0266BN/GxDEPG0266BN.h>    // 2.66" b/w   form DKE GROUP
#elif defined(LILYGO_T5_V213)
#include <GxDEPG0213BN/GxDEPG0213BN.h>    // 2.13" b/w  form DKE GROUP
#else
// #include <GxGDGDEW0102T4/GxGDGDEW0102T4.h> //1.02" b/w
// #include <GxGDEW0154Z04/GxGDEW0154Z04.h>  // 1.54" b/w/r 200x200
// #include <GxGDEW0154Z17/GxGDEW0154Z17.h>  // 1.54" b/w/r 152x152
// #include <GxGDEH0154D67/GxGDEH0154D67.h>  // 1.54" b/w
// #include <GxDEPG0150BN/GxDEPG0150BN.h>    // 1.51" b/w   form DKE GROUP
// #include <GxDEPG0266BN/GxDEPG0266BN.h>    // 2.66" b/w   form DKE GROUP
// #include <GxDEPG0290R/GxDEPG0290R.h>      // 2.9" b/w/r  form DKE GROUP
// #include <GxDEPG0290B/GxDEPG0290B.h>      // 2.9" b/w    form DKE GROUP
// #include <GxGDEW029Z10/GxGDEW029Z10.h>    // 2.9" b/w/r  form GoodDisplay
// #include <GxGDEW0213Z16/GxGDEW0213Z16.h>  // 2.13" b/w/r form GoodDisplay
// #include <GxGDE0213B1/GxGDE0213B1.h>      // 2.13" b/w  old panel , form GoodDisplay
// #include <GxGDEH0213B72/GxGDEH0213B72.h>  // 2.13" b/w  old panel , form GoodDisplay
// #include <GxGDEH0213B73/GxGDEH0213B73.h>  // 2.13" b/w  old panel , form GoodDisplay
// #include <GxGDEM0213B74/GxGDEM0213B74.h>  // 2.13" b/w  form GoodDisplay 4-color
// #include <GxGDEW0213M21/GxGDEW0213M21.h>  // 2.13"  b/w Ultra wide temperature , form GoodDisplay
#include <GxDEPG0213BN/GxDEPG0213BN.h>    // 2.13" b/w  form DKE GROUP
// #include <GxGDEW027W3/GxGDEW027W3.h>      // 2.7" b/w   form GoodDisplay
// #include <GxGDEW027C44/GxGDEW027C44.h>    // 2.7" b/w/r form GoodDisplay
// #include <GxGDEH029A1/GxGDEH029A1.h>      // 2.9" b/w   form GoodDisplay
// #include <GxDEPG0750BN/GxDEPG0750BN.h>    // 7.5" b/w   form DKE GROUP
#endif
#include GxEPD_BitmapExamples
// FreeFonts from Adafruit_GFX
#include <Fonts/FreeMonoBold9pt7b.h>
#include <Fonts/FreeMonoBold12pt7b.h>
#include <Fonts/FreeMonoBold18pt7b.h>
#include <Fonts/FreeMonoBold24pt7b.h>
#include <GxIO/GxIO_SPI/GxIO_SPI.h>
#include <GxIO/GxIO.h>
#if defined(LILYGO_EPD_DISPLAY_102)
    pinMode(EPD_POWER_ENABLE, OUTPUT);
    digitalWrite(EPD_POWER_ENABLE, HIGH);
#endif /*LILYGO_EPD_DISPLAY_102*/
#if defined(LILYGO_T5_V102)
    pinMode(POWER_ENABLE, OUTPUT);
    digitalWrite(POWER_ENABLE, HIGH);
#endif /*LILYGO_T5_V102*/

// deep sleep related definitions
 #define TIME_TO_SLEEP 60000000  /* Deep sleep microseconds */
// #define TIME_TO_SLEEP 3000000  /* Deep sleep microseconds */
// GPIO where the DS18B20 is connected to
const int oneWireBus = 14;     
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(oneWireBus);
// Pass our oneWire reference to Dallas Temperature sensor 
DallasTemperature sensors(&oneWire);
GxIO_Class io(SPI,  EPD_CS, EPD_DC,  EPD_RSET);
GxEPD_Class display(io, EPD_RSET, EPD_BUSY);
void setup(void)
{
    //Serial.begin(9600);
    //delay(1000);
    //Serial.println();
    //Serial.println("initialize");
    // communicate with display
    SPI.begin(EPD_SCLK, EPD_MISO, EPD_MOSI);
    display.init(); 
    // acquire temperature
    sensors.begin();
    sensors.requestTemperatures(); 
    float temperatureC = sensors.getTempCByIndex(0);
    temperatureC =  roundf(temperatureC * 10) / 10;
    // display temperature
    display.setRotation(1);
    //Serial.println("before fill screen");
    display.fillScreen(GxEPD_WHITE);
    display.setTextColor(GxEPD_BLACK);
    display.setCursor(0, 15);
    display.setFont(&FreeMonoBold9pt7b);
    //Serial.println("before first println");
    display.println("Teplota venku:");
    display.setCursor(50, 70);
    display.setFont(&FreeMonoBold24pt7b);
    display.print(temperatureC);
    //Serial.println("before update");
    display.update();
    //Serial.println("after update");
   // goto deep sleep
   esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);
   
   esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP);
   esp_deep_sleep_start();
}
void loop()
{
}

Přílohy
20211226_185916.jpg
20211226_185916.jpg (725.67 KiB) Zobrazeno 7350 x
20211226_212741.jpg
20211226_212741.jpg (465.9 KiB) Zobrazeno 7355 x
T5V2.3.pdf
(57.22 KiB) Staženo 114 x
Naposledy upravil(a) marsal dne ned pro 26, 2021 9:55 pm, celkem upraveno 1 x.
willcz
Příspěvky: 295
Registrován: pát dub 09, 2021 8:48 am
Bydliště: Rosice

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od willcz »

Co M5Stack jako základ? Mám pár kusů doma a je to super, protože je to už začátku produkt, ne bastl

Je integrované do Arduino IDE, dělá se s LCD i s eInkem ...
dá se koupit prototypový modul s plošňákem na vývoj a pořád je to krabička a nerozpadne se to přímo pod rukama.
9,8 kWp Poly + Tigo, 3x XTM4000, 2x VT65, 1x VT80, 8x Pylon US3000B + paralelne k tomu 15S LiFe 360Ah s Batrium BMS
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

willcz píše: ned pro 26, 2021 9:54 pm Co M5Stack jako základ?
Hm, to vypadá opravdu hezky - ale ty cenovky...
willcz
Příspěvky: 295
Registrován: pát dub 09, 2021 8:48 am
Bydliště: Rosice

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od willcz »

marsal píše: ned pro 26, 2021 10:03 pm
willcz píše: ned pro 26, 2021 9:54 pm Co M5Stack jako základ?
Hm, to vypadá opravdu hezky - ale ty cenovky...
Psal jsi že to nebude lowcost ;-)
on i ten M5Stick není špatný, je malý, dělá se s eInkem, jen mám relativně málo I/O, na měřák by to ale mohlo stačit :-)

navíc když to odladíš, tak to to bude třeba časem čínan prodávat jako svůj produkt. Stejně tak dopadl kamarád s glukometrem pro dceru s M5Stackem. dal to na Github a už to čínaní prodávají jako produkt ...
9,8 kWp Poly + Tigo, 3x XTM4000, 2x VT65, 1x VT80, 8x Pylon US3000B + paralelne k tomu 15S LiFe 360Ah s Batrium BMS
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

willcz píše: ned pro 26, 2021 10:15 pm on i ten M5Stick není špatný, je malý, dělá se s eInkem, jen mám relativně málo I/O, na měřák by to ale mohlo stačit :-)
Chápu. Asi už nebudu vypřahat koupené koně ;-). Toto o krabičce s displejem ani nebude, kdo by ty malé displejíky někde u baterek hledal...
Uff, uff, nevím, jestli na to půjdu softwarově tak zeširoka jako https://github.com/stuartpittaway/diyBMS-CurrentShunt , krásná práce. Hardwarově se tam dá přiučit lecčemu ;-).
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Hraní pokračuje už z ESP32-C3-DevKitM-1, dnes dorazily (orig. Espressif, nákup Mouser). Pochopil jsem, že 160MHz je hezké :-).

Pokoušel jsem se chvíli zprovoznit LED blikání podle tutorialu, než jsem pochopil, že v tom devkitu je kdovíproč trochu jiná LED, totiž RGB "pásková":
https://www.rose-lighting.com/wp-conten ... -thick.pdf
Ale už to bliká (https://e1.pcloud.link/publink/show?cod ... Ra8jwLMcAX) a bude se to hodit na indikace různých stavů, síla této RGB LED vypaluje oči, to snad prosvítí i krabičku...

Spotřeba destičky i s blikátkem na zpomaleném "led_strip" example kolem 30mA (zapojeno s 3,3V), ta LED bere hodně - bude ji dobré používat opravdu úsporně, spíše pro chybové stavy a podobně.

Chvíli jsem se cítil mentálně zahlcen ESP-IDF (dal jsem si to do VSCode na Centos 7 - pro mne lepší než s Eclipse), ale asi už u toho zůstanu, ač je to složitější než ten "Arduino framework". ESP-IDF ale vypadá posazené blíže HW a jeví se takové komplexnější. Příklady k pochopení, včetně SPI nebo Modbusu, v examples jsou, tak mám pár týdnů co dělat, než to trochu vstřebám :| .

Těch pinů je na tom "mini" méně než by se hodilo, uvidíme, kolik se těch DIP switchů nakonec bude moci použít.
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

rottenkiwi píše: úte pro 28, 2021 6:12 pm To je ten chlapik, co ma github na BMS aj na shunty ?

https://www.youtube.com/watch?v=EsLOrcqX750
Ano, ano, kdybych to nemusel předělat na INA229 kvůli nedostupnosti INA228 a místo attiny nechtěl použít (spíš pro možné budoucí rozšíření) ESP-32, tak to nevymýšlím...
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Hmmm, pokud na ESP32-C3-DevKitM-1 připojím 3.3V na vstup +5V, dioda stále bliká, spotřeba přibližně stejná... Koukám, že je tam použitý SGM2212-33, tak dobrý...

EDIT: Z druhé strany jsem zkusil chvíli na +5V dát 30V (STM2212 je do do 36V), bez obtíží, ale samozřejmě se začíná hřát.
Kodl69
Příspěvky: 1314
Registrován: úte dub 06, 2021 10:45 pm

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od Kodl69 »

Tak si udělej předregulaci na cca 5..7V nějakým stepdown a je hotovo. Viz můj odkaz na měření proudu k diybms.
Polostrovní FVE 8 kWp na severu jižní moravy. multiplus II 5000, osvětlení na DC, MPPT od Victronu. Dyibms na lifepo4 baterkách.
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Kodl69 píše: stř pro 29, 2021 10:27 am Tak si udělej předregulaci na cca 5..7V nějakým stepdown a je hotovo. Viz můj odkaz na měření proudu k diybms.
Ano, ano, s tím se počítá, díky :-), to obšlehnu.

Nedaří se mi zprovoznit debugging, ani na Linuxu, ani na Windows.
Je to předrátováno podle https://www.youtube.com/watch?v=eOZoF9Jz05s

Flashuju, ale při pokusu o otevření OpenOCD (Centos 7, VSCode s ESP-IDF) mi to hlásí:

Kód: Vybrat vše

Info : only one transport option; autoselect 'jtag'
Warn : Transport "jtag" was already selected
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
❌ Error: libusb_open() failed with LIBUSB_ERROR_ACCESS
Error: esp_usb_jtag: could not find or open device!
EDIT:
Aha, přidal jsem OWNER="user" do příslušného řádku /etc/udev/rules.d/ souboru a posunul jsem se dále, tak uvidíme ;-)
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Uff, to bylo poněkud potupné. Po dlouhých hodinách jsem skončil na Windows a Eclipse... Ale už konečně debuguji.
Odkaz na video v předchozím příspěvku se ukázal jako rozhodující.
debugging.jpg
debugging.jpg (221.31 KiB) Zobrazeno 7210 x
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Ach jo, tak v Eclipse se pěkně debuguje, ale zase ti kolegové z Espressivu v podstatě potlačili jednoduchou práci s Arduino frameworkem :-(.
A ta práce s knihovnami v Eclipse je dost šílená - nebo to neumím (online download knihovny á la platformio...?)
Takže to vypadá, že na hraní si s "Arduino" projekty pro ESP32 bude VSCode + platformio a na to hlavní, co chci dělat (včetně debuggingu) Eclipse. Už u toho sedím pěkných pár hodin.
mobiliku, zdravím Tě, vítej v klubu ;-).
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Pár prvních zkušeností z procesu učení se ESP-32, třeba to někdo znalejší okomentuje:
- Eclipse s ESP-IDF frameworkem přímo z downloadu z Espressiv je pro mne dobře použitelné. Je třeba se s tím trochu sžít. VS Code je svižnější, novější, atd. ale nepodařilo se mi tam zatím rozchodit debug, tak to nyní nepoužívám
- Obvykle vyvíjím všechno pod Linux, ale tady vývoj jedu na Windows, protože je to pro mne pohodlnější: na PC, na kterém vyvíjím, používám také VPN, a nemusím tak řešit nějaké přesměrovávání portů přes IP okno VPN apod.
- Instalátor Windows tedy https://dl.espressif.com/dl/esp-idf/?idf=4.4, používám online verzi, funguje mi dobře 4.3, nikoli něco z /release nebo z master
- Debugging jedu podle obr.:
debug.png
debug.png (228.03 KiB) Zobrazeno 7027 x
Debug přímo přes miniUSB jsem nerozchodil, nevím, jestli to s ESP-32-C3-DevKitM-1 jde. Elektrické parametry zadrátování z obr. jsou sice teoreticky na hraně, ale zatím mi ESP neodešlo - ESP má ochranné diody... Možná by bylo jistější to připojit aspoň přes malé sériové odpory. Původně jsem měl připojeno jedno PC USB do mini USB devkitu pro nahrávání programu a do druhého PC USB jsem měl připojen devkit - tak koneckonců to naznačuje obr. výše. To je v něčem pohodlnější: dva COM, jeden pro upload/monitoring a druhý pro debug, není třeba softwarově "přepínat" mezi laděním a uploadem. Ale pokud se neladí zase tak často, jsou dva dráty zbytečné, mini USB devkitu se používat vůbec nemusí. Tak to používám nyní já s tím, že výhodou je jeden drát a jedno COMx, nevýhodou potřeba ručního vypínání a zapínání openocd. To spouštím ručně v cmd okně ISP-EDF (pro ESP-32-C3-DevKitM-1 je to openocd -f board/esp32c3-builtin.cfg). V Eclipse funguje samozřejmě i sériový terminál.
devkit.jpg
devkit.jpg (442.86 KiB) Zobrazeno 7027 x

- ESP IDF framework je prostě "nativní", i když s Arduino frameworkem se dá leccos udělat rychleji. Ale dokumentace ESP-IDF je velmi dobrá, příkladů je hodně a onen FreeRTOS vypadá skvěle (velmi pohodlný multitasking s frontami atd.). Zatím jsem na začátku učení se (dával jsem např. printf místo ets_printf a divil jsem se, proč mi program padá atd.), ale vypadá to, že u ESP-IDF frameworku s FreeRTOS zůstanu.
- V knihovnách si autoři vyhráli (např. struktura s pointerem na pole struktur, které obsahují pointery na funkci, imho předimenzované použití maker na definice funkcí, brrr). Jde o množství času, kterou tomu BFU programátor jako já tedy chce a může věnovat...
- ta RGB dioda na ESP-32-C3-DevKitM-1 svítí jako blázen, stačí nastavit úrovně 1, aby to svítilo, žádné 255, jak je to v příkladech. Učil jsem se při této příležitosti RMT a pokoušel se led_strip zjednodušit pro jednu diodu (po vzoru morse_code příkladu). Ale jako BFU jsem pochopil, že by to chtělo prostě více času (nechal jsem toho, když jsem narazil na makro "ponech v RAM"), takže jsem použil původní led_strip. A myslím, že brát vzorové fragmenty z příkladů a používat je jako kostičky lega je strategie, kterou si podržím, pokud to nebude vyloženě neefektivní. Ten RMT je mimochodem opravdu hezky univerzální kus ESP-32 hardware.
- Fórum pro ESP-IDF vypadá také docela dobře https://esp32.com/viewforum.php?f=23, další důvod zůstat u ESP-IDF
- rottenkiwi mne navedl na https://www.youtube.com/channel/UCu7_D0 ... pEohoP7YSQ, inspirativní odpočinkové pokoukání ;-)
- Vlastně mi trochu vadí jediná věc, že je to Čína... Takže pokud by nevadila absence Wifi a Bluetooth, takové STM32 blackpill by také stálo za zvážení, ale v mém případě jsou asi kostky vrženy ;). Tak se mi zdá, že ESP-32 je jedna ze stezek, kterými Čína dobývá svět...
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

rottenkiwi píše: pon led 17, 2022 1:22 pm Uz to meria napr. prud ? A ako presne ?

Skusal si napr. z ESP32 notifikaciu cez email, ak je FVE v stave tesne pred kolapsom ?
Ale kiwi, já přece nejsem takový drak jako Ty :-). Plán je zprovoznit to do někdy do léta. Pokud bych mohl dělat jen to, to by bylo krásné, ale...
Po cestě se chci naučit (asi s EasyEda) navrhovat a nechat si vyrobit plošňáky, tak to všechno potrvá.
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

rottenkiwi píše: pon led 17, 2022 1:22 pm Skusal si napr. z ESP32 notifikaciu cez email, ak je FVE v stave tesne pred kolapsom ?
Tuto notifikaci řeším jinak přes Foxtrot.
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Latch pro bateriová zařízení s ESP32

Příspěvek od marsal »

Je to trochu OT, ale pokud by bylo bateriové zařízení se zadáním: po stisku tlačítka se zapni, něco proveď a pak se vypni, pak by mohlo fungovat něco jako https://randomnerdtutorials.com/latchin ... 6-arduino/ :
Latch.jpg
Latch.jpg (39.35 KiB) Zobrazeno 6899 x

Nevíte o nějakém jednodušším řešení typu dedikovaný integrovaný obvod apod.?
Uživatelský avatar
skopeant
Příspěvky: 17
Registrován: úte pro 07, 2021 9:39 am
Výkon panelů v FVE [Wp]: 3200
Kapacita baterie [kWh]: 11

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od skopeant »

Místo spínače vypínač baterky... po zapnutí se baterka připojí spustí se kód a pak to zas vypneš, když víš jak dlouho to chceš nechat běžet. Ono to bude asi velmi rychlé. Take napočítat do 5 a vypnout nebo při spínači držím 5s a pustím... Easy..
D34: 3,2kWp 174° (6*235 Wp + 6*310 Wp) + Tracer 6420AN + IPower IP5000-42-Plus-T + VRLA GEL 48V/150Ah +16*LifePo/120Ah, WIFI: 50Wp 174° + PWM KLX1230+3*VRLA AGM 12V/17Ah, Včely: 10Wp 180° + Epsolar LS LS1024B + VRLA AGM 12V/17Ah, Automatizace: 15 * WEMOS
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Dnes v noci jsem konečně rozchodil na breadboardu SPI komunikaci s INA 229, trvalo mi skoro dva dny zjistit, že je třeba pointer na tx buffer zapisovat/nulovat tam a zpátky, nestačí mit správně nastavenou délku TX transakce, viz obr. Už jsem myslel, že počkám na šestidolarový logický analyzátor na cestě, ale nakonec na to stačil i malý dvojkanálový osciloskop a nápad kolem půlnoci...

To ESP IDF je jinak dobré. Po cestě jsem zjistil, že je přeci jen pohodlnější mít devkit připojený přes dvě USB (viz obrázek ve starším postu viewtopic.php?f=77&t=485&p=9114#p9114). Pokud chci debugovat, chodí to pak prakticky "samo" bez nějakého softwarového přepínání. Prostředí v Eclipse mi vyhovuje, hlavně kvůli pohodlnému debuggingu.

Speciálně pro kiwiho: neměl jsi sem dávat ten odkaz na toho guy se Swiss accent, kupuju kvůli tomu spoustu blbostí na Ali... Jinak, všechno chce trpělivost a čas, po očku sleduju to úsilí kolem "Arduino DIY MPPT" a držím palce. Mne učení se plošňáků s kicad 6 čeká někdy tak v březnu.
Přílohy
pointer.jpg
pointer.jpg (44.07 KiB) Zobrazeno 6737 x
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Tak to koukám, k tomu všemu, co jmenuješ jako nutnost bych ještě dodal JEDEN stabilní portál, kde to nejnutnější ovládáš a vše si tam připojuješ (v mém případě průmyslový Foxtrot). Tak to jsme my - kdo si hraje, nezlobí, nicméně utrácí peníze - a průběžně nasírá manželku (pokud ji má) - ten přeplatek na elektřinu jsem ji před oči ovšem dával několikrát.
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Zkušený se pousměje, nezkušený třeba i poučí.

Hádanka: který z následujících dvou bastlíků je úplně špatně a proč?
20220204_120433.jpg
20220204_120433.jpg (657.23 KiB) Zobrazeno 6658 x
20220204_124154.jpg
20220204_124154.jpg (715.83 KiB) Zobrazeno 6658 x


Předtím než mne konečně napadlo změřit napětí nikoli na shuntu, ale na pinech INA229, jsem strávil několik hodin tzv. "laděním" výpočtu (který byl od začátku správně - viz screenshot Eclipse), honěním big a little endian a opakovaným nadáváním si do naprostých pitomců :stupidme: . Ale musím říci, že jsem se po cestě hodně dozvěděl o céčku :P .
CorrectWork229.jpg
CorrectWork229.jpg (250.26 KiB) Zobrazeno 6658 x


Poučení:
- Co si nezkusíš naživo, nevíš
- I v našich hobby podmínkách je potřeba mít nějaké minimální rozumné vybavení. V mém případě nevím nevím, jestli bych bez YR-1035 (kterým jsem ta malá napětí měřil) u toho neseděl ještě teď.
luky
Příspěvky: 261
Registrován: stř zář 08, 2021 10:40 am
Bydliště: za Berounem
Výkon panelů v FVE [Wp]: 4010
Kapacita baterie [kWh]: 12

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od luky »

njn, jestli tě to uklidní, tak podobné zjištění stálo mého zaměstnavatele dost peněz. A to jsme na to koukali asi 4. To je prostě vývoj, na první pokus to nikdy nebude dokonalý.
mobilní elektrárna (VW California): 290Wp mono, Winston 12V/130Ah, Victron MPPT 75/15, Victron inverter 250VA, Victron charger 20A
domácí elektrárna "ETERNIT": FV 4010Wp, LiFePO4 48V/120Ah+120Ah, Axpert King 48/5000, MakeSkyBlue MPPT
Uživatelský avatar
beethowen
Příspěvky: 199
Registrován: úte dub 06, 2021 7:46 pm
Výkon panelů v FVE [Wp]: 10200
Kapacita baterie [kWh]: 48

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od beethowen »

Tak chybama se člověk učí. Ono tam ty 4 přípojné místa na bočníku nejsou pro nic za nic.
Já jsem to prva nějak nemohl pochopit ty dva obrázky, protože mě to ani nenapadlo, že by se to mělo zapojit jinak. Já mám 4-vodičové měření tak nějak samozřejmé, protože to používám v práci u teploměrů a dalších věcí.
10,2kWp poly/mono, XTH6000-48, 2x VT-80A, Li-ion 48kWh
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Hmmm, první kontrolní měření naznačují, že INA229 je i při malých proudech opravdu velmi dobrá - přesnost pozorouji v řádech jednotek mA.
Oproti INA228 má samozřejmě 229 nevýhodu, že SPI chce na připojení více pinů, ale zato je oproti INA228 na skladě (Mouser) ;-).
Ohledně nastavení průměrování a časování na INA jsem se jaksi inspiroval na https://github.com/stuartpittaway/diyBMS-CurrentShunt a udělal to aspoň prozatím stejně :oops:. Je to úleva, když průměry dělá čip a nemusí se to počítat vedle.
INA229.jpg
INA229.jpg (72.55 KiB) Zobrazeno 6831 x


P.S.
pryč od ets_printf (neumí zformátovat float, musí se kdyžtak přes snprintf), ESP_LOGI funguje dobře
Uživatelský avatar
marsal
Příspěvky: 615
Registrován: pát dub 09, 2021 11:10 am

Re: Měřič U,I,P,SOC s ESP-32

Příspěvek od marsal »

Zajímavé sbírání zkušeností po cestě...
Lehkým tempem se posunuji k modbusu, vyrábím si testovací protikus s displejem.
Cosi zprogramuji, tak si na jeden pin nakonfiguruji TX a ověřím osciloskopem, něco tam běhá, prima.
Vedle mám nastavený pin RX do kterého není zapojeno nic, tak tam nic běhat nemůže, to není třeba ověřovat, že :mrgreen:. Ale hleďme: ESP32 na tomto RX pinu vygeneruje glitch téměř 0.5V. Jen odhaduji, kde vlastně se ten přeslech bere. Osciloskop kontrolním měřením vyloučen, na dráty to nevypadá, zbývá deska a čip.
Vede to k jisté ostražitosti ;-).
Přílohy
20220210_213536.jpg
20220210_213536.jpg (645.89 KiB) Zobrazeno 6767 x
glitch2.jpg
glitch2.jpg (45.87 KiB) Zobrazeno 6767 x
glitch.jpg
glitch.jpg (39.67 KiB) Zobrazeno 6767 x
Odpovědět

Zpět na „Automatizace, řízení“