Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

ESPnow - czyli budujemy naszą małą domową sieć wymiany danych.

error105 29 Sep 2020 12:06 17733 72
Tespol
  • #31
    krzbor
    Level 23  
    Przy cenie ESP8266 można dwa takie urządzenia połączyć przez UART. Jeden pracuje w ESP NOW, a drugi jest normalnie w sieci WiFi. UART jest buforowany, co przy małych paczkach danych daje nam niemal asynchroniczną komunikację.
  • Tespol
  • #32
    khoam
    Level 41  
    krzbor wrote:
    UART jest buforowany, co przy małych paczkach danych daje nam niemal asynchroniczną komunikację.

    Rozmiar sprzętowego bufora UART w ESP8266 to 128 bajtów, wspólny dla RX i TX. W Arduino Core jest dodatkowy bufory programowy 256 bajtów tylko dla RX. Pakiety ESP-NOW w wypadku ESP8266 mogą mieć maksymalną długość 250 bajtów. Klasa HardwareSerial nie ma wbudowanych wprost funkcji do sprawdzania, czy nastąpiło przepełnienie buforów RX lub TX.
    Bez zapewnienia potwierdzenia przesyłanych pakietów danych pomiędzy UART, szczególnie przy większych prędkościach, jest to rozwiązanie nieco ryzykowne.
  • #33
    krzbor
    Level 23  
    Oczywiście, wszystko zależy co się przesyła. Jeśli są to odczyty czujników (np. temperatury, położenia itp.), to zwykle mamy do czynienia z pojedynczymi bajtami.
  • #34
    grzeg26
    Level 11  
    grzeg26 wrote:


    Przeszukałem neta wczoraj i nie znalazłem żadnego tutoriala na ESP8226 który sczytywał by dane z czujników np temperaturę i wyświetlał by ją na własną stronę www w sieci lokalnej i dodatkowo zbierał dane np. z innego ESP8226 który sczytuje inne czujniki np temperaturę z za okna i wyświetlał ją również na tej stronie.



    Przepraszam napisałem nie precyzyjnie (już poprawiłem w tekście) chodziło mi o sczytywanie z czujników ale za pomocą ESP8226 bo np. czujnik temperatury daleko.
    Mnie chodziło o coś takiego
    https://randomnerdtutorials.com/esp32-esp-now-wi-fi-web-server/
    w komentarzach na dole artykułu autor odnosi się do układów ESP8226 pisząc...
    Sara pisze..

    Sara Santos
    May 30, 2020 at 7:23 pm

    Hi.
    That library is installed automatically when you install the ESP32 boards.
    Simply select an ESP32 board in the Boards menu before uploading or compiling the code.
    If you’re using an ESP8266, this code is not compatible. It uses the espnow.h library and uses slightly different methods.
    Regards,
    Sara

    Nie zagłębiałem się aż tak w szczegóły bo nie mam aż tak dużej wiedzy.
    Udało mi się zrobić projekty z tej strony dla układów 8226 między innymi z protokołem espnow_h wszystkie przykłady.
    Kod z esp32 który jest w linku nie udało mi się wgrać ale też odpuściłem jak przeczytałem komentarze na dole artykułu. Zacząłem porównywać te układy i są różne. Już w kodzie jest użyta bibliotek esp_now.h zamiast espnow.h.


    Z tym podłączeniem innego ESP8226 do ESP8226 ze stroną WEB przez UART żeby można było odebrać dane za okna lub z piwnicy, to myślałem o tym ale ja nie chcę żadnych przewodów więc to odpada.
    Zrobiłem też układ na module Nadajnik i Odbiornik 433MHz RF to jakoś działało ale był problem ze synchronizacja a jak dodałem do dwóch zmiennych kolejne i w sumie
    miałem ich 8 (8 zmiennych zapakowanych do tablicy) to już w ogóle się nie sprawdziło. Dane wpadały nie tam gdzie trzeba a jeszcze do tego zasięg był kiepski.
    A ja chcę mieć odbiór z dwóch miejsc np piwnicy i za okna to już musiałem w programie jakoś odróżnić te dane nadać im identyfikatory. To się nie sprawdziło i porzuciłem temat. Dlatego pomyślałem o WI-FI.

    To tak w skrócie
    Myślę że ten schemat z linku pokaże co ja chce zrobić. Po prostu chce zbierać różne dane takie jak temperaturę wilgotność zanieczyszczenie pm2.5 i inne z kilku miejsc w jedno miejsce na stronę w sieci lokalnej.
  • #35
    khoam
    Level 41  
    grzeg26 wrote:
    Już w kodzie jest użyta bibliotek esp_now.h zamiast espnow.h.

    Jest to pewnego rodzaju rozdwojenie jaźni po stronie tych, co określali nazwy plików nagłówkowych. Oba dotyczą obsługi protokołu ESP-NOW. Można użyć bibliotekę WifiEspNow i wtedy wywołania funkcji dla ESP-NOW będą takie same dla ESP8266 i ESP32.

    Resztę wypowiedzi nie komentuje, bo to bardzo dobry kandydat na wątek w dziale "ESP8266 i ESP32 oraz IoT" ;)

    Dodano po 1 [minuty]:

    krzbor wrote:
    Oczywiście, wszystko zależy co się przesyła. Jeśli są to odczyty czujników (np. temperatury, położenia itp.), to zwykle mamy do czynienia z pojedynczymi bajtami.

    Chodziło mi o bardziej ogólną sytuację, kiedy taki "tranzytowy" ESP może odbierać i wysyłać dane po ESP-NOW od/do wielu innych ESP.
  • #36
    krzbor
    Level 23  
    grzeg26 wrote:
    Z tym podłączeniem innego ESP8226 do ESP8226 ze stroną WEB przez UART żeby można było odebrać dane za okna lub z piwnicy, to myślałem o tym ale ja nie chcę żadnych przewodów więc to odpada.
    Tu nie ma długich przewodów - myślałem o połączeniu obu układów będących obok siebie - przewody mogą mieć 5 cm :)
    Konkretnie - sieć ESP NOW, w której jeden wybrany ESP jest spięty z drugim po UART, gdzie ten drugi jest połączony do sieci WiFi
  • #37
    dktr
    Level 22  
    Tak czytam ten wątek i nie potrafię zrozumieć co to daje te całe ESPNow. Aktualnie mam w mieszkaniu z 15 sztuk ESP8266 z czego kilka zasilanych bateryjnie. Wszystkie łączą się do AP i przesyłają/pobierają dane prosto z serwera który mam w sieci lokalnej. W przypadku zasilania bateryjnego używam deep-sleep i wysyłam pomiary co minutę, przy skonfigurowanym statycznym adresie IP, podanym kanale i BSSID połączenie do AP trwa średnio 150ms, przesłanie danych około 10ms. Używam starych ogniw 18650, 2.5Ah przy wysyłaniu pomiaru co 60 sekund wystarcza na około 13 miesięcy pracy. Wszystkie pomiary trafiają na serwer na którym dane są dalej analizowane.
    Na wykresie poziom napięcia na ogniwie przez 6 tygodni przy wysyłaniu danych co 30 sek.

    ESPnow - czyli budujemy naszą małą domową sieć wymiany danych.

    Z Zasięgiem też niema problemu, łączyłem się z odległości około 3km przy użyciu anteny panelowej przy ESP8266 a po drugiej stronie UBNT M2 zainstalowane na 60m kominie.
  • Tespol
  • #38
    khoam
    Level 41  
    @dktr ESP-NOW znajdzie zastosowanie tam, gdzie jest potrzeba bezpośredniej wymiany informacji pomiędzy ESP. Bez pośrednictwa routera brzegowego WiFi, bez pośrednictwa serwera i bez wykorzystania protokołu IP. Wszędzie tam, gdzie zależy nam na częściowej autonomii układów sterujących, opartych na ESP.
  • #41
    startrek1p2p
    Level 2  
    Dobra, mam problem z tym Esp-Now. Niby powinna sie pojawić po zainstalowaniu płytek, ale nic nie ma. Szukałem na necie <espnow.h> oraz <esp_now.h> i nigdzie nie moge znaleźć(albo nie wiem jak szukac) paczek tej biblioteki nie wspominając o arduino IDE to samo z ESP8266WiFi znalazłem jedynie ESP8266wifi-master które załącza sie inaczej wiec chyba srodek tez ma inny. wszystko na stronie espressif jest opisane ale zamych bibliotek nie widzę
  • #42
    khoam
    Level 41  
    startrek1p2p wrote:
    Dobra, mam problem z tym Esp-Now. Niby powinna sie pojawić po zainstalowaniu płytek, ale nic nie ma. Szukałem na necie <espnow.h> oraz <esp_now.h> i nigdzie nie moge znaleźć(albo nie wiem jak szukac) paczek tej biblioteki nie wspominając o arduino IDE

    Post #35
  • #43
    startrek1p2p
    Level 2  
    khoam wrote:
    startrek1p2p wrote:
    Dobra, mam problem z tym Esp-Now. Niby powinna sie pojawić po zainstalowaniu płytek, ale nic nie ma. Szukałem na necie <espnow.h> oraz <esp_now.h> i nigdzie nie moge znaleźć(albo nie wiem jak szukac) paczek tej biblioteki nie wspominając o arduino IDE

    Post #35


    czyli jak tylko zmienie nazwe biblioteki to wszystko pozostanie tak samo ?
  • #44
    efi222
    Level 11  
    Witam. :) To ja może z praktycznej strony. Mam zbudowaną stację pogodową w której wykorzystałem protokół ESP Now. Moduły pomiarowe Master wysyłają dane z czujnika temperatury i wilgotności. I tu już nie jest tak kolorowo z czasami wybudzenia, wysłania i uśpienia. U mnie to trwa poniżej 300 ms. Podziw dla kolegi, który usyskał 150ms w trybie wifi... W testach na połączenie po wifi nie byłem w stanie zejść ponizej 1 sekundy, nawet z IP wpisanym na sztywno w kodzie programu.
    Poniżej oscylogram zasilania Mastera ESP now.

    ESPnow - czyli budujemy naszą małą domową sieć wymiany danych.



    Zastosowane czujniki to DS18B20 i HTU21D. Przynajmniej tak to działa na modułach ESP12 (8266). Moduły wysyłają dane asynchronicznie co minute do Slave. O dziwo mimo 8 modułów nadawczych nie wykryłem żadnej kolizji przy odbiorze danych.
    Slave pracuje w trybie AP i Stacji i może pracować jako odbiornik danych ESP Now niezalezny od sieci wifi, albo odebrane dane może wyświetlać na wygenerowanej przez niego stronie w sieci lokalnej. W tym drugim przypadku Slave łączy się z punktem dostepowym sieci lokalnej. W takim przypadku w modułach nadawczych Master nalezy ustawić kanał naszej sieci lokalnej. Slave ustawia kanał automatycznie po podłączeniu do punktu dostępowego. W obu przypadkach dane przesyłane są przez UART do panela wyświetlacza.
    Aby ułatwić konfigurację Mastera i Slave, oba mają opcję konfiguracji w trybie AP przez przeglądarkę internetową.
    Więc wszystko co wyżej jest przez panów opisane, jest jak najbardziej możliwe do realizacji.
    Jeśli ktoś jest zainteresowany mogę udostępnić wsady modułu nadawczego i odbiornika do testowania.
  • #45
    khoam
    Level 41  
    efi222 wrote:
    Slave pracuje w trybie AP i Stacji i może pracować jako odbiornik danych ESP Now niezalezny od sieci wifi, albo odebrane dane może wyświetlać na wygenerowanej przez niego stronie w sieci lokalnej. W tym drugim przypadku Slave łączy się z punktem dostepowym sieci lokalnej. W takim przypadku w modułach nadawczych Master nalezy ustawić kanał naszej sieci lokalnej. Slave ustawia kanał automatycznie po podłączeniu do punktu dostępowego.

    No to jest ciekawe. W jaki sposób następuje przełączanie się pomiędzy trybem ESP-NOW a STA/AP w Slave? Czy Slave to też ESP8266?

    efi222 wrote:
    Jeśli ktoś jest zainteresowany mogę udostępnić wsady modułu nadawczego i odbiornika do testowania.

    Oczywiście, że tak :)
  • #46
    efi222
    Level 11  
    Slave pracuje jako AP_STA. Moduł AP odbiera Esp Now, a STA łaczy się z siecią lokalną. Slave to też ESP12 (8266). Na jutro postaram się narysować schematy slave i mastera i wysłać wsady.

    Master
    ESPnow - czyli budujemy naszą małą domową sieć wymiany danych.

    Slave
    ESPnow - czyli budujemy naszą małą domową sieć wymiany danych.

    www
    ESPnow - czyli budujemy naszą małą domową sieć wymiany danych.
  • #47
    khoam
    Level 41  
    @efi222 W zasadzie, co Cię powstrzymuje od opublikowania tej stacji pogodowej jako DIY? ;)
  • #48
    efi222
    Level 11  
    Właściwie to nie ma przeszkód do publikacji. Zaczałem nawet pisać już artykuł. Ale informacji do opisania jest bardzo dużo. Po za tym, ciągle jeszcze są małe liftingi softu. Samego oprogramowania jest sporo. Moduł pomiarowy ESP, Odbiornik, oprogramowanie wyświetlacza, obsługa dowolnego pilota IR, no i repeater dla czujników bardziej oddalonych. No i schematy.... Jest jeszcze wersja stacji z zegarem ntp. No narysuj multipleksowanie 20 wyswietlaczy LED i chyba 12 podświetlanych piktogramów. Chyba tylko blokowo, co znowu moze być mało zrozumiałe dla bardzo początkujących. Sam jestem amatorem i zdaje sobie sprawę że mogą mieć z tym problem. Zbudowałem takich stacji 5 sztuk dla rodziny i znajomych, więc i instrukcję trzeba było napisać :) .Ale pomału ogarnę i artykuł sie pojawi. Póki co podeśle jutro te wsady z instrukcją co i jak i można je testować.
  • #49
    efi222
    Level 11  
    Witam ponownie :). Udostępniam binarki do Mastera i Slave.
    mam nadzieję, że nic nie namieszałem przy rysowaniu schematów. Rysowałem z PCB.
    Pozdrawiam.
  • #51
    krzbor
    Level 23  
    grzeg26 wrote:

    Z tym podłączeniem innego ESP8226 do ESP8226 ze stroną WEB przez UART żeby można było odebrać dane za okna lub z piwnicy, to myślałem o tym ale ja nie chcę żadnych przewodów więc to odpada.

    Pisałem o połączeniu dwóch ESP kabelkiem 5cm :)
    Idea jak na obrazku ESPnow - czyli budujemy naszą małą domową sieć wymiany danych.
    Tutaj ESP32 "robi" jako serwer. Bez problemu można jednak połączyć dwa ESP8266, gdzie ten drugi wysyła dane na serwer.
  • #52
    efi222
    Level 11  
    Temat ucichł i pozostały pytania bez odpowiedzi, to może przybliżę kolegom działanie espnow z wifi. I przytoczę działający przykład takiego połączenia.
    Nigdzie w oficjalnych źródłach nie doczytałem, że espnow nie działa z wifi. Spotkałem się tylko z opiniami, że transmisja espnow przestała działać po podłączeniu odbiornika slave do wifi. I to też jest średnia prawda.
    Problem leży zupełnie w innym miejscu. A chodzi o kanał sieci. Ale od początku.
    Esp8266 może pracować w trybie Stacji, AP albo jednym i drugim jednocześnie.
    Domyslnie ESP uruchamia się na kanale 1 bez względu na tryb pracy.
    I teraz jeśli zestawimy połączenie espnow bez sieci wifi, to wszystko miga, bo zarówno slave jak i master pracują na tym samym kanale 1.
    W przypadku podłączenia slave do wifi, slave przestawia się na kanał sieci. A nadajnik nadaje dalej na kanale 1. Czasem jakieś śmieciowe dane dochodzą, jeśli nadajnik jest w miarę blisko. Niektórzy opisują to zjawisko jako spadek zasięgu...
    I teraz albo trzeba zmienić kanał wifi na 1, albo zmienić kanał mastera. Kanał sieci nie zawsze chcemy zmieniać, więc pozostaje opcja druga. Próbowałem różnych sposobów i o ile w trybie AP jest to proste to nie jest łatwo zmienić kanal w trybie stacji. Ale wykopałem w czeluściach internetu mały trick, który na to pozwala (źródła raczej nie znajdę). Nadajnik w czasie rozruchu trzeba podłączyć do fikcyjnej sieci. Przykład poniżej.
    Code: c
    Log in, to see the code

    Rozwiązanie może mało eleganckie, ale skutecznie działa.

    Z mastera wysyłam dane pod konkretny adres MAC. Może być ich kilka. W przeciwieństwie do rozsyłania Broadcast dostaje informację zwrotną od każdego Slave o odebranych danych.

    ESPnow - czyli budujemy naszą małą domową sieć wymiany danych.
    0 - odebrane
    1 - błąd

    Poniżej źródła nadajnika i odbiornika z ministroną www, na której wyświetlane są dane z mastera.
    ESPnow - czyli budujemy naszą małą domową sieć wymiany danych.

    Nadajnik (Master) :
    Code: c
    Log in, to see the code


    Odbiornik (Slave):
    Code: c
    Log in, to see the code



    To oczywiście minimalistyczne kody. Robiłem próby z mqtt i virtuino i wszystko działa w jak najlepszym porządku. Po za tym, można dorobić dla wygody np. konfigurację urządzeń przez przeglądarkę internetową. Odpada wtedy "kotwiczenie" Ustawień typu SSID, Hasło czy nawet zmiana tego nieszczęsnego kanału w masterze. Ale to juz inna historia. :)
    Dodam jeszcze, że jestem amatorem i pewnie kody nie są optymalne i można w nich znaleźć jakieś "kwiatki".
    (Skrypty są fragmentem większych całości i mogą posiadać zadeklarowane, nadmiarowe zmienne, które mogłem przeoczyć)
  • #53
    Uniwersytet3Wieku
    Level 2  
    Witam,
    wielkie rzeczy robicie Panowie (error105, krzbor, efi222) !
    Latem potrzebowałem automatu do podlewania roślin i tak odkryłem arduino, esp itd więc jestem całkowitym świeżakiem choć wiek mocno zaawansowany. W międzyczasie uruchomiłem podlewanie, termometry, czujniki, serwo itd, steruje urządzeniami przez Blynka ale za cholerę nie ogarniam komunikacji dwukierunkowej pomiędzy modułami (serial, esp-now itd). W jedną stonę jest ok bo takich przykładów w sieci jest dużo, ale jak to zrobić w 2 strony??? Z waszych postów wynika, że dla was to przedszkole :)
    Konkretnie - chcę uruchomić sterowanie brama garażową czyli w jedną stronę będę wysyłał polecenia żeby zasterować otwieraniem/zamykaniem, ale z powrotem potrzebuje dostać odczyty z czujników czy brama zamknięta, otwarta, termometr i kilka drobnych funkcjonalnosci na 2 esp. Myslalem zeby 1 esp ogarnial mi te drobiazgi i komunikowal sie (w obie strony) z drugim przez np esp-now i przez wi-fi z blynkiem (ale czytam ze sa z tym problemy?) lub może być przez uart miedzy 1 i 2 esp. Nie wiem jak wysylac paczki danych miedzy nimi (jakie polecenia, jaka skladnia itd).
    Bedę wdzieczny za wszelkiego typu porady lub linki jak to uruchomic, bo to co znajduje w sieci jest albo mocno skomplikowane i nie dla nowicjuszy albo komunikacja 1-kierunkowa.
    Jesli ktos chcialby poswiecic troche czasu i mnie podszkolic to moglbym sie jakoś zrewanzowac. Prosze o info na maila.
  • #54
    krzbor
    Level 23  
    Należy rozróżnić fizyczną komunikację dwustronną inicjowaną z dwóch kierunków (ESP jako klient i serwer) od logicznej (ESP pracuje np. jako serwer lub klient). Komunikacja po http jest w zasadzie komunikacją dwustronną - możemy wysłać parametry (jako GET lub POST) i w odpowiedzi otrzymać jakieś dane. Mamy zatem dwustronną komunikację inicjowaną jednak z jednej strony. Często to wystarcza. Można więc wysłać sygnał "otwórz bramę" i zignorować odpowiedź. Można też wysłać sygnał "daj odczyty czujników" - tu nie nastąpi otwarcie bramy ale zwrot odpowiednich danych.
  • #55
    TvWidget
    Level 36  
    krzbor wrote:
    możemy wysłać parametry (jako GET lub POST) i w odpowiedzi otrzymać jakieś dane.

    Można też zaimplementować websocket. Pozwoli to wysłać z przeglądarki np. rozkaz otworzenia bramy i otrzymać potwierdzenie gdy zostanie on wykonany.
  • #56
    Uniwersytet3Wieku
    Level 2  
    @krzbor - to co piszesz to chyba nie do końca to czego szukam, łatwiej będzie wytłumaczyć na konkretnym przykładzie. Sytuacja jak na szkicu:

    ESPnow - czyli budujemy naszą małą domową sieć wymiany danych.

    Uruchomiłem w garażu 1 ESP (nazwijmy je 1 - główne). Przez wifi komunikuje sie z routerem, dalej z Blynkiem, steruje z Blynka urzadzeniami, dostaje sygnaly z czujnikow na Blynka. Komunikacja dwukierunkowa pięknie działa.
    Problem z drugim garażem, nie sięga tam wifi z routera, ale ESP1 w garazu 1 komunikuje sie z ESP2 w garazu 2. Z jakiegos gotowca wziąłem szkic i dziala wysylanie "hello". Umiem zrobic tylko w jedną strone - to problem nr 1 ze nie wiem jak to uruchomic w obie strony, choc szkice do tego znalazlem ale sa zbyt skomplikowane na moj poziom.

    Problem nr 2 polega na tym, że nie potrafię uruchomić wspolnie na ESP1 komunikacji przez wifi z routerem i w tym samym czasie komunikacji z ESP2 przez ESP-NOW. Komunikacja musi byc w 2 strony. Naczytalem sie proponowanych rozwiazan i albo nic nie rozumiem ;-) bo jeszcze za mało umiem albo polecane rozwiazanie to restart ESP co wydaje mi sie rozwiazaniem ktore wprowadzi opoznienia w komunikacji itd. - wyglada na totalnie amatorskie rozwiazanie.

    @TvWidget - to co piszesz to inny przypadek. Ja nie potrzebuje potwierdzenia z kontrolera ze odebral i wykonal polecenie. Potrzebuje komunikacje w 2 strony pomiedzy ESP1 i ESP2 zeby polecenie (np otworz garaz) otrzymane z Blynka na ESP1 wyslac poprzez ESP-NOW lub uart do ESP2, a w drugą strone wyslac stan czujnika otwarcia (zdarza mi sie "kliknac" na pilota i cala noc mam garaz otwarty...). Patrzac na to co piszecie to poziom przedszkola, ale sie pogubilem i potrafie tylko w 1 strone wyslac hello.
    powyzej efi222 daje konkretne przyklady:

    struct SENSOR_DATA {
    byte NumerMaster; - itd - to jest w miare logiczne ale dalej juz nie wiem co jest po co

    np. volatile boolean readingSent; - nie wiem co i po co?
    byte SetStatus1 = 0; - rozumiem ze strawdzenie ze dane zostaly wyslane?

    po stronie odbiornika juz mniej łapię:
    SENSOR_DATA Dane;
    memcpy(&Dane, Data1, sizeof(Dane)); - co to memcpy? jak uzywac itd? to co znjduje na sieci to urywki ktorych nie potrafie poskladac w caly kod
    Serial.print("numer czujnika - "); Serial.println(Dane.NumerSlave); - jak polaczyc to co wysylam z tym co odbieram?

    Tak więc moja wiedza to basic, nie znajduje prostego tutoriala wyjasniajacego jak wyslac z ESP1 na ESP2 danych z kilku czujnikow lub stanu przycisku itp przez ESP-NOW lub uart. Jesli ktos ma chec poswiecic mi troche czasu i podszkolic z takich banalow na konkretnym przykladzie bylbym bardzo wdzieczny.
  • #57
    krzbor
    Level 23  
    Gdzieś czytałem, że można używać ESP jako ESPnow i klasyczne WiFi równocześnie. Ja bym zrobił to inaczej - przy ESP1 zrobiłbym ESP1a. Oba połączone UART, najlepiej je odsunąć od siebie o 10-20cm (można więcej jeśli poprawi to komunikację z ESP2 i ESP3). ESP1 działa tak jak teraz. ESP1a działa jako master ESPnow i ogólnie obsługuje komunikację z ESP2 i ESP3. Taki układ można uruchamiać etapami - po prostu ESP1a można na etapie testów podsłuchiwać po UART i jak wszystko działa podpiąć do ESP1.
  • #58
    khoam
    Level 41  
    Uniwersytet3Wieku wrote:
    Problem nr 2 polega na tym, że nie potrafię uruchomić wspolnie na ESP1 komunikacji przez wifi z routerem i w tym samym czasie komunikacji z ESP2 przez ESP-NOW. Komunikacja musi byc w 2 strony. Naczytalem sie proponowanych rozwiazan i albo nic nie rozumiem bo jeszcze za mało umiem albo polecane rozwiazanie to restart ESP co wydaje mi sie rozwiazaniem ktore wprowadzi opoznienia w komunikacji itd. - wyglada na totalnie amatorskie rozwiazanie.

    Problem polega na tym, że jeżeli ESP-NOW pracuje w kanale X, to jeżeli na ESP ma być również dostępny AP, to również z ustawionym kanałem X (jak to zrobić, opisał kolega @efi222 w poście #52). Jeżeli ESP ma być również dostępny w trybie STA, to również z ustawionym kanałem X. Tu się zaczynają schody, bo o numerze tego kanału decyduje przede wszystkim router WiFi i nie można go tak prosto wymusić w ESP dla trybu STA.

    Niezależnie od wyboru trybu pracy, zawsze jest możliwa transmisja dwukierunkowa - o tym decyduje warstwa aplikacyjna, a nie to czy ESP jest w trybie ESP-NOW, AP czy STA.

    Uniwersytet3Wieku wrote:
    Tak więc moja wiedza to basic, nie znajduje prostego tutoriala wyjasniajacego jak wyslac z ESP1 na ESP2 danych z kilku czujnikow lub stanu przycisku itp przez ESP-NOW

    To może na początek skorzystaj z arduinowej wersji biblioteki dla ESP-NOW: Link
    Są tam również w miarę proste przykłady.
  • #59
    Uniwersytet3Wieku
    Level 2  
    @krzbor - to co piszesz to może być dobry kierunek, zdublować ESP1 żeby jedno nie działało z wifi i esp-now rownoczesnie, chociaz @efi222 faktycznie to chyba rozpracował w poście powyżej. Na moim poziomie chyba zdublowanie i polączenie ich przez uart byloby prostsze...

    @khoam - przeceniłeś moje możliwości, dopiero zaczynam... tryb AP, STA - na razie to dla mnie fantazy... piszesz, że warstwa aplikacyjna to rozwiazanie - zmierzam w tym kierunku, żeby się tego nauczyc.
    na githubie przegladalem przyklady z esp-now - tez zbyt skomplikowane... nie trafilem na razie na łopatologiczne materialy zeby krok po kroku ktos wyjasnil zasady komunikacji, tryby pracy, polecenia, skladnie... nie potrzebuje nic skomplikowanego... znasz jakąs dobrą stronę, ksiązke, kurs? proste szkice na yt jak przesyłac dane miedzy kontrolerami?

    chyba, że ktoś podrzuci najprostszy szkic jak przez uart wysłac z ESP1 do ESP2 jakis int, a na ESP2 go odebrac i uzyc do jakiegos warunku? jak skonfigurowac ESP zeby przesylac tak w obie strony? pocwicze troche i pozniej przejde do esp-now...

    proste programy do sterowania urzadzeniami i czujnikami ktore uzywam mam ogarniete, nie potrafię przesłac i odebrac danych miedzy esp :-(
  • #60
    khoam
    Level 41  
    Uniwersytet3Wieku wrote:
    nie trafilem na razie na łopatologiczne materialy zeby krok po kroku ktos wyjasnil zasady komunikacji, tryby pracy, polecenia, skladnie... nie potrzebuje nic skomplikowanego... znasz jakąs dobrą stronę, ksiązke, kurs? proste szkice na yt jak przesyłac dane miedzy kontrolerami?

    Dla ESP8266 czy ESP32? Są "subtelne"' różnice.