Skocz do zawartości

Pomocna odpowiedź

Napisano

Pierwszy raz eksperymentuje z WiFi. Zmodyfikowałem do swoich pomiarów, prosty i ogólnie dostępny kod (wklejam poniżej). Gdy w przeglądarce wpisze lokalne IP to otrzymuje stronę z wynikami ale jak wpisze "kaczorek.local/" to taka strona nie istnieje. Co robię źle? 

Dodam że w monitorze portu szeregowego otrzymuje prawidłowy komunikat czyli "MDNS uruchomiony".

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <Ticker.h>

#define wibracjeanalogowo A0
#define wibracjecyfrowo D0

Ticker tiker;
String W1 = "";                            
String W2 = "";

const char* ssid = "mojasieć";                                              
const char* password = "moje hasło";                                            

ESP8266WebServer serverlokalny(80);                                           

void pomiary()
{
W1 = (String)analogRead(wibracjeanalogowo);                                   
W2 = (String)analogRead(wibracjecyfrowo);
Serial.print(W1);
Serial.print("\t");
Serial.print(W2);
Serial.println(" ");
serverlokalny.send(200, "text/plain", "W1: " + W1 + " W2: " + W2);
}

void setup()
{
Serial.begin(9600);
Serial.println("Wstrząsające pomiary");
WiFi.begin(ssid, password);                                                   
while (WiFi.status() != WL_CONNECTED) {delay(500); Serial.print(".");}        
Serial.print("Połączono z ");
Serial.println(ssid);
Serial.print("Przydzielony adres IP: ");
Serial.println(WiFi.localIP());
if (MDNS.begin("kaczorek")) {Serial.println("MDNS uruchomiony.");}
serverlokalny.on("/", pomiary);                                                  
serverlokalny.begin();
Serial.println("Serwer HTTP uruchomiony.");                                    
tiker.attach(2, pomiary);
}

void loop()
{ 
serverlokalny.handleClient();                                                 
}

 

4 minuty temu, Wrona napisał:

jak wpisze "kaczorek.local

Jaki system operacyjny?

  • Mac rozumie od strzału.
  • Linux powinien to rozumieć, a jak nie to doinstalować Avahi
  • Windows wymaga zdaje się czegoś takiego jak "Bonjour for Windows" (nie jestem pewien, ale coś mi się obiło o uszy że Zeroconf używa tylko do drukarek, poza tym nie znam się na windowsie i niech to jakiś windoznawca rozstrzygnie)
  • Android w ogóle tego nie rozumie i nie planuje rozumieć.

 

  • Lubię! 1
(edytowany)
45 minut temu, ethanak napisał:

Jaki system operacyjny

Windows. Dzięki za wskazówkę i zaraz się tematem zainteresuje.

EDIT:

Doinstalowałem, ale nic to nie zmieniło 😞

EDIT:

Poszło na "Chrome". 

Jak to zwykle bywa, gdy czegoś się dowiadujemy to multiplikują się kolejne pytania. Po odświeżeniu strony wyświetlają mi się najnowsze wyniki pomiarów. Czy jest jakiś sposób by po odświeżeniu strony (lub jeszcze lepiej jej automatycznym odświeżaniu)  pojawiał się lista wyników na zasadzie podobnej do monitora portu szeregowego?

Edytowano przez Wrona
16 godzin temu, Wrona napisał:

Czy jest jakiś sposób by po odświeżeniu strony (lub jeszcze lepiej jej automatycznym odświeżaniu)  pojawiał się lista wyników na zasadzie podobnej do monitora portu szeregowego?

Oczywiście. Spójrz na główną stronę forum - tak przecież działa zamieszczony tam chat. Tyle że nie jest to takie całkiem proste... protokół HTTP sam w sobie nie zapewnia takiej możliwości. Najprostszym rozwiązaniem jest użycie JavaScriptu i AJAX-a - ale to kolejny język programowania który trzeba by było poznać. Myślę, że to dobry temat np na jakiś odcinek kursu 🙂

 

  • Lubię! 2
1 godzinę temu, ethanak napisał:

Najprostszym rozwiązaniem jest użycie JavaScriptu i AJAX-a - ale to kolejny język programowania który trzeba by było poznać. 

Spróbuje poszukać jakiegoś przykładu w sieci. Dzięki.

21 godzin temu, Wrona napisał:

Czy jest jakiś sposób by po odświeżeniu strony (lub jeszcze lepiej jej automatycznym odświeżaniu)  pojawiał się lista wyników na zasadzie podobnej do monitora portu szeregowego?

 

 

  • Lubię! 1
  • Pomogłeś! 1

@rziomber Dzięki, przeanalizuje ten przykład choć mnie chodzi o coś innego. Sama aktualizacja jest fajna ale moim celem jest by nowe pomiary pojawiały się w kolejnych wierszach a wszystkie poprzednie pozostawały na swoim miejscu. Tak jak pisał  @ethanak  czyli coś jak CHAT. W efekcie dostaje kolejne wiersze z wynikami w interwałach czasowych. Widok wyników ma być jak w monitorze portu szeregowego ale zamiast po USB ma iść po WiFi. Mimo wszystko dziękuje za zainteresowanie i postaram się zgłębić temat. Jak tylko znajdę chwilę na grzebanie po Internecie, to poszukam czegoś najprostszego, czyli instrukcji jak stworzyć najzwyklejsze kolumny liczb.   

 

(edytowany)

W takim wypadku nadal mój przykład jest aktualny. Wykorzystasz z niego timer cyklicznie pobierający wartości.

Jedynie zamiast podmiany zawartości elementu o zadanym ID

document.getElementById("time").innerHTML = this.responseText;

będziesz dopisywał this.responseText; do jakiejś tabelki czy tam DIVa.

Edytowano przez rziomber
  • Lubię! 1

Dooisuj po prostu tekst+'<br />' - będziesz miał wszystko w nowej linii. Pamiętaj o scrollIntoView bo bez tego kolejne linie wylądują pod podłagą 🙂

Ewentualnie możesz dopisywać coś do textarea.

 

 

5 godzin temu, rziomber napisał:

W takim wypadku nadal mój przykład jest aktualny. 

Fajny, przerobiłem go pod swój programik i ekstra działa. Chociaż oczywiście poległem próbując tworzyć, zaplanowaną przez siebie listę wyników. Jednak to nic, bo ten kierunek przesyłania danych zarzucam gdyż jest zbyt wolny a WiFi i mDNS zbyt chimeryczne. Dzięki wielkie, bo coś nowego zobaczyłem i może się przyda w innym projekcie którego funkcjonowanie będzie oparte o pomiary w większym interwale czasowym. 

  • Lubię! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...