Skocz do zawartości

Pomiar napięcia sieciowego z aplikacją na android


krychu1111

Pomocna odpowiedź

Witam. Postanowiłem stworzyć nowy temat, bo naszła zmiana koncepcji. Poszukuję rozwiązania do pomiaru napięcia sieciowego przy pomocy ESP i modułu ZMPT101B. Dane mogą być jednak archiwizowane na zewnętrznym serwerze (początkowa koncepcja była, żeby nie były, ale to komplikuje sprawę). Dane te miałyby być archiwizowane na zewnętrznym serwerze, tylko jakim? Następnie potrzebuje stworzyć aplikacje na androida, która wyświetlała by te dane w postaci wykresów z możliwością zmiany zakresu wyświetlania danych. Robił ktoś z was coś podobnego? Na koniec dodam tylko, że miałem już do czynienia z ESP, ale korzystałem głównie z gotowców. Pozdrawiam i liczę na pomoc 🙂 

Link do komentarza
Share on other sites

Czy powstanie tylko jedno urządzenia na własny użytek, czy to coś większego? Czy na Adroida na pewno potrzebna jest aplikacja? Nie wystarczy dostęp do wyników na stronie www? Taka wersja byłaby raczej łatwiejsza w wykonaniu.

Link do komentarza
Share on other sites

Jeśli aplikacja nie jest potrzebna to masz całkiem sporo opcji:

  1. Możesz skorzystać z jakieś gotowej "chmury" typu Arduino Cloud, AskSensors lub wielu innych takich rozwiązań. W takim przypadku wysyłasz dane z ESP wprost do takiej chmury, z której później odczytujesz informacje przez przeglądarkę. Tutaj musisz potestować różne rozwiązania, aby dobrać chmurę, która będzie dla Ciebie najwygodniejsza.
  2. Możesz wykorzystasz Google Docs i wysyłać te dane do arkusza kalkulacyjnego, w którym dorobisz wykresy.
  3. Możesz też napisać np. w PHP własny skrypt, który będzie odbierał dane i zapisywał je w bazie MySQL. Następnie z tych danych będziesz mógł rysować praktycznie dowolne wykresy.

Wersja numer 1 będzie miała różne ograniczenia, ale będzie najszybsza i najprostsza. Wersja numer 3 będzie najbardziej dopasowana do Ciebie, ale jeśli nie znasz PHP/HTML/JS to pewnie zajmie najwięcej czasu.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Jak często mają być pobierane próbki? Czy nie wystarczy zapisywanie lokalnie w postaci np csv i raz na dobę wysyłanie takiej zbiorczej paczki? 

Edytowano przez _LM_
Link do komentarza
Share on other sites

No to policzmy, przykładowa struktura danych: 21-04-2023,11:17,230V = 23B(bo CRLF) Zaokrągliłbym do 32B. Biorąc pod uwagę że w takim esp8266 masz lekko 1MB na dane a minimalny zapis sektora to zdaje się jest 4kB to masz 125 próbek na sektor a 4 * 24 = 96 próbek na dobę. Nawet nie mając zbyt częstego dostępu do urządzenia, śmiało zapiszesz 250 takich sektorów, to jest dużo 🙂 Następnie wysyłanie i obróbka danych, najprościej, jeśli będziesz miał okresowy dostęp do urządzenia i łączenie się z modułem, na esp robisz acces point i komunikujesz się z nim za pomocą UDP. Mając taki plik na telefonie, można już z nim zrobić wszystko. Co do baz danych online, wyżej koledzy już z grubsza wymienili z jakimi usługami można się łączyć. Myślę że dopiero po rozpoznaniu tematu przez ciebie i doprecyzowaniu swoich potrzeb będziemy mogli pomóc.   

Nie liczyłbym na zbyt dużą dokładność tych pomiarów choćby ze względu na to że esp8266 ma dość kiepski przetwornik AC. Wyniki traktowałbym raczej jako orientacyjne  

Edytowano przez _LM_
Link do komentarza
Share on other sites

Moje zdanie jest takie. Kupujesz sobie jakiegoś VPS:

czy to tutaj:

https://www.ovhcloud.com/pl/vps/

albo tutaj:

https://mikr.us/

albo gdziekolwiek zechcesz.

Po stronie ESP:

1. Zbierasz dane przez powiedzmy 10 minut z interwałem co 1 minuta.

2. Zebraną paczkę po 10 minutach wysyłasz np za pomocą MQTT (wtedy na serwerze musisz mieć też brokera a aplikacja webowa jest kolejnym klientem MQTT) albo za pomocą REST API

Po stronie serwera:

1. Jak używasz MQTT to musisz mieć na serwerze brokera (lub możesz użyć istniejących brokerów dostępnych za free). Program w PHP po stronie serwera musi mieć wtedy dostęp jako klient do brokera MQTT żeby te dane odczytywać i zapisywać je sobie w jakimś pliku czy bazie danych. Jak nie używasz MQTT to wystarczy że odbierzesz w PHP dane z REST API które wyślę ESP i wrzucisz je do pliku. Mogą to być np pliki csv jak już wspomniano.

2. Musisz stworzyć aplikację webową która te dane zaprezentuje. Czyli jakaś prosta stronka, najlepiej żeby dostęp do danych był po tym jak się zalogujesz. Fajnie byłoby stworzyć jakiś interfejs gdzie można wybrac sobie date od kiedy do kiedy mają być prezentowane dane itd. Spokojnie znajdziesz przykłady w necie takich aplikacji.

Ogólnie zadanie to jest dosyć skomplikowane. Zadaj sobie pytanie czy warto i czy może nie lepiej skorzystać z gotowych rozwiązań które są.

Edytowano przez Nefarious19
Link do komentarza
Share on other sites

Jest jeszcze Thingspeak, są biblioteki ułatwiające start w Arduino, serwer zbiera dane i można je przeglądać w przeglądarce na telefonie, domyślnie w postaci wykresu, można ściągnąć csv, pobierać dane i robić coś z nimi w swojej aplikacji, albo zainstalować widget do Thingspeak na telefonie i mieć na pulpicie ikonkę z aktualnymi wartościami, po kliknięciu rysuje wykres danych historycznych. Funkcjonalność jest ograniczona do tego co wymyślił autor, ale przetestowanie działania zajmie parę minut i można podjąć decyzję czy to jest wystarczające czy wymyślać swoje koło na nowo.

image.thumb.png.7535f4b1f97afc00313e8ecac9a8049e.png

  • Lubię! 2
Link do komentarza
Share on other sites

28 minut temu, _LM_ napisał:

przykładowa struktura danych: 21-04-2023,11:17,230V = 23B(bo CRLF)

Przykładowa struktura danych:

struct voltdata {
  uint32_t time;
  float voltage;
};

W sumie 8 bajtów, czas z dokładnością do sekundy, o dokładności floata już nie wspomnę.

 

Link do komentarza
Share on other sites

Faktycznie, można zrobić konwersję w locie. Ten float to jest tam potrzebny jak umarłemu kadzidło 😉... W sumie int czy float zajmie tę samą ilość miejsca a struktura i tak zostanie wyrównana do pełnego rozmiaru ( czyli zastosowanie uint8 bo 230 się zmieści) nic nie zmienia. 

Edytowano przez _LM_
Link do komentarza
Share on other sites

Panowie, jeszcze mam pytanie odnośnie sposobu pomiaru napięcia. Pisałem o module ZMPT101B, jednak tak patrze, że jego zakres napięcia wejściowego jest do 250V, a jak wiadomo napięcie sieciowego może być wyższe niż te 250V. Macie jakieś alternatywy dla tego modułu? 

Link do komentarza
Share on other sites

9 godzin temu, krychu1111 napisał:

jego zakres napięcia wejściowego jest do 250V

To dziwne ograniczenie.

Sam transformatorek ZMPT101B działa tu jako przekładnik prądowy (2mA/2mA), napięcie izolacji transformatora w/g jego karty katalogowej to kilka kV.

Ostatni podejrzany - w szereg z uzwojeniem pierwotnym transformatora jest opornik SMD, na tym oporniku odkłada się niemal całe napięcie wejściowe, a to trochę za dużo na SMD. Nie chce mi się wierzyć, że Chińczycy wlutowali jakieś specjalne wysokonapięciowe rezystory. Bezpieczniej  więc byłoby wymienić ten opornik na THT.

Tak czy siak nie wiadomo, czemu podają akurat 250V jako ograniczenie - równie dobrze mogłoby by to być 150V lub 300V. W sumie jest to raczej zabawka, niezbyt odpowiednia do odpowiedzialnych zastosowań.

9 godzin temu, krychu1111 napisał:

Macie jakieś alternatywy dla tego modułu? 

Ja osobiście lubię rozwiązania na układzie HLW8012, który to mierzy napięcie, prąd i moc pobieraną przez odbiornik, choć nie zapewnia separacji galwanicznej.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.