logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wyświetlanie pomiaru z czujnika podłączonego do ESP8266-01 na stronie internetow

Isero 21 Lut 2020 00:28 939 5
REKLAMA
  • #1 18483716
    Isero
    Poziom 7  
    Posty: 5
    Ocena: 1
    Witam,

    Potrzebuje pomocy w zaprogramowaniu modułu ESP8266-1 oraz pliku HTML tak, aby wykonany pomiar z dowolnego czujnika był wyświetlany na stronie internetowej. Moduł ESP jest podłączony do adruino poprzez interfejs UART i został zaprogramowany za pomocą komend AT natomiast strona internetowa znajduje się w osobnym pliku HTML, do której przypisywany jest adres ip modułu. Obecnie na stronie znajdują się przyciski z przypisanymi numerami "id" które są odbierane przez arduino. Poniżej znajduje się fragment kodu z arduino oraz HTML odpowiadający za prawidłowe funkcjonowanie przycisków, który może trochę przybliży sposób działania/wykonania programu.

    Wyświetlanie pomiaru z czujnika podłączonego do ESP8266-01 na stronie internetow

    Niestety nie mam pojęcia jak zintegrować plik HTML z modułem ESP, aby pomiar z czujnika został przekazany oraz wyświetlony na stronie internetowej. Zależy mi jednak aby strona znajdowała się w osobnym pliku HTML, a nie była programowana w środowisku Arduino IDE.
  • REKLAMA
  • #2 18483882
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 230
    Sposób z komendami AT jest mocno nieefektywny. To były pierwsze metody wykorzystania ESP, aktualnie kod po prostu wgrywa się do ESP. Przykładowy sposób wykorzystania ESP do wyświetlania wartości z kodu z wykorzystaniem websocket znajdziesz tu: https://github.com/kaczakat/ESP8266 - cały kod HTML, JS jest wewnątrz ESP.
    Jeśli nawet nie możesz podłączyć wszystkiego do wolnych pinów ESP8266 (ma ich mało, z 8 do wszystkiego i kilka możliwych do użycia warunkowo) to dalej możesz komunikować przez UART ESP z innym kontrolerem, ale na tej samej zasadzie jak postawione dwa uC AVR wymieniające się informacjami.
    Google podpowie jak użyć ESP, po prostu dodajesz definicje płytek i masz kolejną rodzinę płytek Arduino w swoim programie - generic, WEMOS, NODMCU, itp.
    Pomogłem? Kup mi kawę.
  • REKLAMA
  • #3 18484554
    Isero
    Poziom 7  
    Posty: 5
    Ocena: 1
    Właśnie zależy mi, aby plik HTML nie znajdował się wewnątrz ESP, jednak nie potrafię znaleźć sposobu na wyświetlenie danych.
  • REKLAMA
  • Pomocny post
    #4 18484907
    ex-or
    Poziom 28  
    Posty: 785
    Pomógł: 147
    Ocena: 151
    Pewnie można to zrobić na wiele sposobów. Ja bym zrobił tak, że kliknięcie buttona na stronie WWW odpytuje przez asynchroniczny XHTMLrequest ESP8266. ESP przygotowuje i zwraca dane w JSONie. Javascript na stronie HTML odbiera dane i je odpowiednio rozrzuca po tagach. Nie jestem pewien, czy przeglądarka pozwoli na requesty pod inny IP. Trzeba by sprawdzić...
    Nie jestem też pewien czy dalo by się to zrobić w Twojej obecnej konfiguracji czyli ESP z AT w trybie transparent i interpretacja i generowanie odpowiedzi w Arduino. Ardu ma trochę mało RAMu do pracy na tekstach, ale może... Można by tworzenie JSONów i responsów scedować na ESP, Arduino pozostawić zbieranie danych i co tam jeszcze, a oba moduły połączyć jakimś prostym protokołem via UART. Można by też całość roboty zrzucić na ESP. Dwie ostatnie opcje wymagały by trochę programowania na ESP. Ostatnia opcja, jak już wspomniano, może być kłopotliwa bo ESP ma mało pinów i badziewne peryferia (właściwie to wcale nie ma peryferiów)
  • REKLAMA
  • #5 18485077
    Konto nie istnieje
    Poziom 1  
  • #6 18485500
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 230
    To jest tylko przykład jak to ma działać, zauważ jednak, że w tym przykładzie cały kod HTML/JS/CSS jest wewnątrz R"rawliteral()", można mieć stronę edytowaną w notatniku, tu modyfikować z podświetleniem składni w notepadzie++ i potem CTLR+C CTRL+V do kodu. Nie jest to strona typu "wydrukuj klientowi linię tekstu" gdzie każda modyfikacja to poprawianie dziesiątek linii.
    Dokładnie taką samą stronę mam wrzuconą na ESP do SPIFFS, działa to tak samo. Po prostu instalujesz core ESP, wtyczkę do SPIFFS, kompilujesz jakiś przykład z HTML z SPIFFS, wgrywasz i sprawdzasz jak działa (najpierw kod, potem zawartość SPIFFS), zapisujesz JAKO, powstaje katalog projektu Arduino, wewnątrz katalog zawartości SPIFFS gdzie są HTMLe,JS,CSS, grafiki (to dodatkowa zaleta SPIFFS, pliki mogą być osobno), potem wystarczy podmienić pliki html na swój i wgrać ponownie tylko SPIFFS, zrobić reset płytki. Jeśli strona ma komunikować się z kodem to oczywiście trzeba zmodyfikować kod ESP tak, by obsługiwał websockets. WEMOS/MODEMCU lub Witty jest o tyle przyjazne, że można podłączyć od razu do USB i wgrywać.
    Pomogłem? Kup mi kawę.
REKLAMA