Odczyt/zapis zmiennych internet<>uC

Czyli mętliki które spędzają sen z oczu .... a więc głębokie podstawy elektroniki analogowej i cyfrowej , od Tranzystora do bramek CMOS
ODPOWIEDZ
Awatar użytkownika
maras52
Użytkownik
Posty: 65
Rejestracja: 24 mar 2019, 10:22
Lokalizacja: Racibórz
Kontakt:

Odczyt/zapis zmiennych internet<>uC

Post autor: maras52 »

Mam zagwozdke i rozkmine.
Kombinuje nad zdalna idiotoodporna konfiguracja uC poprzez neta wraz z odczytem danych z uC (typu liczniki czasu etc). Ma ktos jakies sprawdzone rozwiazanie bo sam jedynie na co wpadlem to wysylanie z uC maila, a w druga strone odczyt pliku txt na serwerze.
Zdravim
Awatar użytkownika
squeez
GRafik
Posty: 158
Rejestracja: 16 paź 2017, 23:52

Re: Odczyt/zapis zmiennych internet<>uC

Post autor: squeez »

maila z uC? to chyba trochę masochizm.
Chyba najbardziej powszechne podejście do tego to REST API. a format to pewnie JSON albo jak chcesz oszczędzać ilość przesyłanych danych to np. CBOR (taki binarny JSON), minus taki że w prosty sposób nie podejrzysz tego ale za to "narzut" kontenera przesyłanych danych jest niewielki.

Możesz też na zwykłych gniazdach, i mieć jakiś ustandaryzowany "binarny format" co gdzie się znajduje.

W obu przypadkach musisz mieć maszynę która będzie dostępna w necie np. https://mikr.us/
Awatar użytkownika
Nefarious
Magyster
Posty: 82
Rejestracja: 17 paź 2017, 10:03
Lokalizacja: Łódź

Re: Odczyt/zapis zmiennych internet<>uC

Post autor: Nefarious »

do takich rzeczy idealnie nadaje się MQTT. Są gotowe libsy np na ESP32. Po stronie servera musisz mieć brokera np https://mosquitto.org/download/.

Ja widzę to połączenie tak:

device1_node <====> MQTT Broker <========> aplikacja_webowa
device2_node <====>

zakładamy że masz dwa urządzenia. MQTT jest protokołem dwustronnym, to znaczy że może wysyłać jak i odbierać dane do serwera (brokera).

Po stronie serwera masz też aplikacja webową, działającą normalnie na porcie 80. Teraz załóżmy że chcesz ustawić jakiś parametr. Robisz sobie prostą apkę webową która w bakendzie komunikuje się brokerem MQTT . W tej apce masz formularz, po jego wysłaniu, twój backend go otrzyma, wyśle do brokera jako wiadomość MQTT a Twój broker dostarczy te wiadomości do twoich urządzeń połączonych przez MQTT do brokera. Twoje urzadzenia nie muszą miec publicznego IP. Natomiast Twój serwer http jak i broker muszą mieć IP publiczne żeby były dostępne z internetu. Zatem jeżeli nie masz prywatnie przydzielonego publicznego IP to wystąp o takowe i wtedy serwer jak i broker stawiasz na Rpi czy innym kompie u siebie. Jak nie masz takiej możliwości to zostaje Ci zewnętrzny server VPS na którym postawisz sobie swoją aplikację.

Jeżeli coś namieszałem to niech mnie inni poprawią. Sam dopiero raczkuje w temacie.
Awatar użytkownika
squeez
GRafik
Posty: 158
Rejestracja: 16 paź 2017, 23:52

Re: Odczyt/zapis zmiennych internet<>uC

Post autor: squeez »

Można MQTT ale wydaje mi się że podejście RESST API jest bardziej uniwersalne.
MQTT sprawdza się do "asynchornicznej" wymiany. Tu uC chce odpytać o konfig. Więc po stronie serwera (python np. FLASK) może takie reqesty przyjmować i dostarczać konkretny kontent.
Np. endpoint: dala konfiguracji 1: http://rest.costa.pl:8080/configuration/v1 dla innej może być np. http://rest.costa.pl:8080/configuration/v1_custom

I serwer HTTP obsugujący tego REST API odpowiada już czym tam się che (JSON, CBOR, string do parsowania czy co tam się wymysli).
Rozwiązanie z MQTT wydaje mi się bardziej "skomplikowane".
Awatar użytkownika
maras52
Użytkownik
Posty: 65
Rejestracja: 24 mar 2019, 10:22
Lokalizacja: Racibórz
Kontakt:

Re: Odczyt/zapis zmiennych internet<>uC

Post autor: maras52 »

Kurla jak szefo uslyszy o vps'ach to :B :twisted: a no i zapomnialem chyba napisac tu niestety esp by dzialalo w trybie at :roll:
Zdravim
ODPOWIEDZ

Wróć do „Zagwozdki elektroniczne”