Witam
Na forum jestem nowym, w domu mam kilka ESP8266 z DS18B20 i BME280. Obecnie korzystam z Blynk prosty ale jak mam mieć dwa to może uda mi się wszystko wrzucić do Supla.
Dzisiaj montowałem Zamel MEW-01. Sprzęt fajny ale ogólnie chciałbym mieć kilka takich a cena też swoje robi. Obecnie podłączona jest tylko kuchnia aby wiedzieć ile zjada prądu. Jednak po przeglądaniu neta wpadłem na tego PZEM i od razu zamówione dwie sztuki aby sprawdzić jak to ugryźć.
I teraz mam kilka pytań, ponieważ do do jednego urządzenia to raczej nie mam problemu jakoś będzie dało się to połączyć. Jednak chciałbym już iść na całość i zrobić każde pomieszczenie osobno i ewentualnie gniazdka i świtało. Wychodziło by że mam 10 pomieszczeń gdzie w niektórych mogę zastosować gniazdka/światło co daje nam w przybliżeniu 15 czujników energii. Przy MEW-01 wyszło by to prawie 2000zł. Ale widząc alternatywę warto spróbować może się uda.
Moje pytanie czy jest możliwość podłączenia kilka PZEM do jednego NodeMcu v3 / Wemos D1 mini PRO / takie posiadam albo jeszcze innego. Tak aby jeżeli jest możliwe jednym ESP8266 wysyłać dane z wszystkich PZEM.
Czy ktoś was już coś takiego robił ?
PZEM004 V3
-
- Posts: 19243
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
Nie ma jeszcze softu do tego. Leży mi kilka sztuk od @QLQ ale nie mam kiedy się tym zająć.
-
- Posts: 44
- Joined: Sat Aug 31, 2019 8:35 pm
Nie pozostaje nic jak czekać, a projekty polskie należy rozwijać. Dopiero zaczynam korzystać z Supla ale jest po polsku dzięki czemu żona nie będzie mieć problemu również z obsługą dodatkowo bardzo dużo jest tworzone.pzygmunt wrote: Sat Aug 31, 2019 11:01 pm Nie ma jeszcze softu do tego. Leży mi kilka sztuk od @QLQ ale nie mam kiedy się tym zająć.
Jak dojdą do mnie czujniki PZEM z chin to będę testował. Zapewne będzie potrzeba dokupienia D1 mini
PS.
Są dostępne D1 mini z 32MB pamięcią czy tą pamięć da się wykorzystać do przechowywania danych w czasie kiedy nie ma internetu, a gdy taki się pojawi wyśle na serwer brakujące dane ? Obecnie posiadam internet z GSM więc czasami jest to różnie. Niby ma być światłowód ale kiedy to niewiadome.
-
- Posts: 19243
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
Oprogramowanie pod stronie urządzenia przechowuje w pamięci tylko stan licznika. Do tego nie jest potrzebna tak duża pamięć. Generalnie nie wykorzystujemy więcej niż 2MB
-
- Posts: 2344
- Joined: Sun Sep 03, 2017 9:13 am
- Location: Koszalin
Chłopaki ruszymy coś z tym tematem tego licznika. Właśnie go odkopałem przypadkowo. Sam bym może trochę pokombinował ale nie poradzę sobie bo nie ma tego w SuplaDevice. Działa na ESP12 jak widać - komunikacja po pinie 4 i 5 - program mam oryginalny - działa jak wczesniej pisałem.. czyta Moc,
Tu są pliki *c i *,h od energy_merter : https://github.com/SUPLA/supla-espressi ... r/src/user
W proto.h ( espressif ) jest ale .. wydedukowałem tylko strukturę :
.
"Nieuzbrojone" płytki ze zdjecia mam do rozdania Niebieskie są pod 3fazy- podłącza się 3 PZEM004, zielone na 1fazę
Tak to wygląda po złożeniu z płytką: Ten PZEM po prawej jest nowszą wersją:
Tu są pliki *c i *,h od energy_merter : https://github.com/SUPLA/supla-espressi ... r/src/user
W proto.h ( espressif ) jest ale .. wydedukowałem tylko strukturę :
Code: Select all
typedef struct {
// 3 phases
unsigned _supla_int16_t freq; // * 0.01 Hz
unsigned _supla_int16_t voltage[3]; // * 0.01 V
unsigned _supla_int16_t current[3]; // * 0.001 A
_supla_int_t power_active[3]; // * 0.00001 kW
_supla_int_t power_reactive[3]; // * 0.00001 kvar
_supla_int_t power_apparent[3]; // * 0.00001 kVA
_supla_int16_t power_factor[3]; // * 0.001
_supla_int16_t phase_angle[3]; // * 0.1 degree
} TElectricityMeter_Measurement; // v. >= 10
]typedef struct {
unsigned _supla_int64_t total_forward_active_energy[3]; // * 0.00001 kWh
unsigned _supla_int64_t total_reverse_active_energy[3]; // * 0.00001 kWh
unsigned _supla_int64_t total_forward_reactive_energy[3]; // * 0.00001 kvarh
unsigned _supla_int64_t total_reverse_reactive_energy[3]; // * 0.00001 kvarh
// The price per unit, total cost and currency is overwritten by the server
// total_cost == SUM(total_forward_active_energy[n] * price_per_unit
_supla_int_t total_cost; // * 0.01
_supla_int_t price_per_unit; // * 0.0001
// Currency Code A https://www.nationsonline.org/oneworld/currencies.htm
char currency[3];
_supla_int_t measured_values;
_supla_int_t period; // Approximate period between measurements in seconds
_supla_int_t m_count;
TElectricityMeter_Measurement m[EM_MEASUREMENT_COUNT]; // Last variable in
// struct!
} TElectricityMeter_ExtendedValue; // v. >= 10
#define EM_VALUE_FLAG_PHASE1_ON 0x01
#define EM_VALUE_FLAG_PHASE2_ON 0x02
#define EM_VALUE_FLAG_PHASE3_ON 0x04
// [IODevice->Server->Client]
typedef struct {
char flags;
unsigned _supla_int_t total_forward_active_energy; // * 0.01 kW
} TElectricityMeter_Value; // v. >= 10
"Nieuzbrojone" płytki ze zdjecia mam do rozdania Niebieskie są pod 3fazy- podłącza się 3 PZEM004, zielone na 1fazę
Tak to wygląda po złożeniu z płytką: Ten PZEM po prawej jest nowszą wersją:
You do not have the required permissions to view the files attached to this post.
jak coś nie działa to włącz zasilanie.....
-
- Posts: 19243
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
W definicji własnej płytki musisz tylko dodać
oraz
To funkcja jest wywoływana co kolka sekund. W niej musisz podstawić do value pomiary.
Code: Select all
#define ELECTRICITY_METER_COUNT 1
Code: Select all
char ICACHE_FLASH_ATTR supla_esp_board_get_measurements(
unsigned char channel_number, TElectricityMeter_ExtendedValue *value) {
value->measured_values = EM_VAR_ALL;
value->m_count = 0;
value->period = 1;
......
}
-
- Posts: 2344
- Joined: Sun Sep 03, 2017 9:13 am
- Location: Koszalin
Ok ale to w SDK a nie Arduino? Będę musiał zapoznać się z lnx . VM mam postawiony...pzygmunt wrote: Sun Dec 01, 2019 8:32 pm W definicji własnej płytki musisz tylko dodać
orazCode: Select all
#define ELECTRICITY_METER_COUNT 1
To funkcja jest wywoływana co kolka sekund. W niej musisz podstawić do value pomiary.Code: Select all
char ICACHE_FLASH_ATTR supla_esp_board_get_measurements( unsigned char channel_number, TElectricityMeter_ExtendedValue *value) { value->measured_values = EM_VAR_ALL; value->m_count = 0; value->period = 1; ...... }
jak coś nie działa to włącz zasilanie.....
-
- Posts: 19243
- Joined: Tue Jan 19, 2016 9:26 am
- Location: Paczków
Tak. W SDK. Dla Arduino też pojawi się obsługa. Temat ogarnia @klew.
-
- Posts: 2344
- Joined: Sun Sep 03, 2017 9:13 am
- Location: Koszalin
A czy ktoś z Was koledzy nie spróbowałby skompilowac tego softy na 4 i 5 pon D1 i D2 w wemos? Aby byly prezentowane wartości :
- napięcia
- prądu
-mocy
-energii (zapisuje je w swojej pamięci - w przypadku zaniku zasilania)
-częstotliwości
-współczynnika mocy
- napięcia
- prądu
-mocy
-energii (zapisuje je w swojej pamięci - w przypadku zaniku zasilania)
-częstotliwości
-współczynnika mocy
jak coś nie działa to włącz zasilanie.....