Hier, nous avons présenté notre système esp8266 et le capteur de température max6675.
Aujourd'hui, nous aimerions élargir un petit projet pour utiliser la fonction wifi du module.
À cette fin, nous incluons la Bibliothèque « esp8266wifi ».Ce dernier prend en charge l 'enregistrement du WLAN existant et la transmission et la réception des données au client.
Utilisez "wifiserver Server"; démarrez le serveur sur le port.
"35; y compris <Esp8266wifi.Heure> "35; y compris <Max 6675.Heure> Constante Brûler* Page = "Nom WLAN (SSID)"; Constante Brûler* Mot de passe = Forêt; Paysage intérieur Chaud = 12; Paysage intérieur Thermosphère = 13; Paysage intérieur Thermosphère = 14; Réseau sans fil Serveur Web(80); / / nous avons installé un serveur Web au port 80. Max 6675 Thermocouple(Thermosphère, Thermosphère, Chaud); On ajuste les capteurs de température. Vide Set() { Télécharger.Allez.(115200); Télécharger.Imprimer(); Télécharger.Imprimer("Connecté à% s", Page); Réseau sans fil.Allez.(Page, Mot de passe); / / essayer d 'utiliser le nom WLAN et la connexion de clé Bien que (Réseau sans fil.Statut() != Connexion WL) { Retarder(500); Télécharger.Imprimer("."); } Télécharger.Imprimer("Connecté"); Serveur Web.Allez.(); Télécharger.Imprimer(Serveur Web activé, veuillez ouvrir% dans le navigateur Web, Réseau sans fil.Localisation().Torstring().C) Structure U()); } / / production de contenus féminins Chaîne de caractères Preelastic Flow() { Chaîne de caractères Page HTML = Chaîne de caractères("Http / 1.200, oui.") + "Type de contenu: text / html" + Connection: désactivation + / / désactivation de la connexion posttransmission "Mise à jour" + / / recharger automatiquement toutes les 5 secondes "Non." + "& lt?DocType HTML & gt + "& lt; HTML & gt;" + "Température égale à °C: + Chaîne de caractères(Thermocouple.Centigrade()) + Temperature Output "& lt; / html & gt;" + "Non."; Retour Page HTML; } Vide Run() { Wificlient Client = Serveur Web.Disponible(); / / en attente d 'une connexion du client (navigateur Web) Si (Client) { Télécharger.Imprimer("N [le client est connecté]"); Bien que (Client.Corrélatif()) { / lire selon les besoins du client (Web Browser) Si (Client.Disponible()) { Chaîne de caractères Ligne = Client.Lire une chaîne(♪ r ♪); Télécharger.Imprimer(Ligne); / / jusqu 'à la fin de la requête (= ligne vide) Si (Ligne.Longueur() == 1 && Ligne[0] == Non.) { Client.Imprimer(Preelastic Flow()); / / imprimer la réponse Rompre; } } } Retarder(1000); Donner le temps au navigateur de recevoir les réponses / / désactiver la connexion: Client.Arrêter(); Télécharger.Imprimer("[séparation du client]"); Télécharger.Imprimer("C ="); Télécharger.Imprimer(Thermocouple.Centigrade()); Retarder(10); } }
La sortie de température dans le moniteur série n 'est utilisée que pour le réglage.Sur les caméras en série, nous voyons:
Les sorties dans le Navigateur sont les suivantes:
Si vous vous concentrez un peu sur les connaissances de base de httml (je vous suggère de consulter https: / / selfhtml.org /), vous pouvez définir l'apparence et le contenu de la page dans la partie de preparehtmlpage ().
Une pluralité de données de capteur peuvent ensuite être sorties d 'un côté.
Esp8266 peut être utilisé à la fois comme serveur Web et comme client.De ce fait, le microcontrôleur offre de nombreuses nouvelles solutions et de nouveaux projets toujours plus prometteurs.
14 commentaires
Andreas
@B.Röhl: es kann verschiedene Gründe haben, warum das nicht funktioniert.
Wenn Sie den kompletten Quellcode in einen Sketch laden, sollte es funktionieren. Vorausgesetzt, Sie haben
den ESP8266 Arduino Core geladen
den ESP8266 als Board eingestellt
die Bibliothek MAX6675 über die Bibliotheksverwaltung installiert
Eventuell werden beim Kopieren unsichtbare Steuerzeichen mitkopiert, die im Code nichts zu suchen haben. Ein erstes Anzeichen dafür ist, dass der Funktionsaufruf delay() nicht orange markiert ist. Dann befinden sich diese Steuerzeichen im Code.
Es kann sein, dass es Probleme mit den Bibliotheksversionen und der Arduino IDE Version gibt. Je nachdem, wie alt die Bibliotheken sind.
Theoretisch sollten Sie keine weiteren .h Dateien nachladen müssen.
Sie könnten einmal die Fehlercodes nennen und ob Sie die oben genannten Schritte durchgeführt haben. Außerdem noch, welchen Mikrocontroller Sie verwenden.
Mit freundlichen Grüßen,
Andreas Wolter
AZ-Delivery Blog
B.Röhl
Ich habe den Inhalt in eine .ino Datei geladen.
Eine Fehlermeldung nach der anderen. Habe geraume Zeit damit verbracht, h Dateinen nachzuladen.
Dennoch kein Erfolg. Vielleicht wäre es irgendjemand, der dieses Projekt erfolgreich getestet hat,möglich, mir das vollständige Projekt zuzusenden. Das wäre nett.
Andreas Wolter
@Manuel Miksits: wie genau das funktioniert, kann ich nicht sagen. Es sollte gehen. Ich habe dazu per Suchmaschine einiges zu dem Thema gefunden.
Dieses Video behandelt z.B. POST requests per JSON: https://www.youtube.com/watch?v=Edbxyl2BhyU
Ich denke, dass Sie auch schnell fündig werden. Es wäre vielleicht auch ein Thema für einen Blogbeitrag. Das kann ich aber noch nicht versprechen.
Grüße,
Andreas Wolter
AZ-Delivery Blog
Manuel Miksits
Geht es auch, dass ich die Daten per JSON an eine Datenbank sende, mittels des ESP8266 D1 Mini?
Dimitrj Dirkes
Wie kann ich die temperatrur in einer anderen farbe und Größe ausgeben auf meinem webserver
rolf
Wie lege ich die IP Adresse des Webservers fest?
Weblint
Gibt es eine reconnect Prozedur? Wenn ich den esp32 in einer anderen WiFi Umgebung einsetzen möchte soll sich der Bereich des neuen WLAN neu einrichten lassen. Gibt es schon so eine Routine?
Vielen Dank und frohes Fest
albin
Sie schreiben “Gestern haben wir gezeigt wie einfach unser ESP8266 mit dem MAX6675-Temperatorsensor zusammenarbeitet.” Finde leider den ersten Teil von Gestern nicht auf Ihrer Page. Bitte um Link.
Ulrich Klaas
Hallo,
das ist doch echt nett hier das in diesem Block Programmierbeispiele gezeigt werden.
Aber programmieren Lernen sollte man schon selber oder sich in einschlägigen
Foren Rat holen.
C oder C++ lernen ist wirklich keine Zauberei.
Heute muss immer alles vorgekocht werden.
Ulli
4711engel
Ich betreibe in Berlin eine von vielen Feinstaub-Sensor-Messstationene des “ESP-OK-LAB”.
Diese Station misst die Feinstaub-Belastung und liefert die Daten ins Internet, wo sie von einem Anbieter statistisch aufbereitet zur Verfügung gestellt wird.
Z.B. URL: http://www.madavi.de/sensor/graph.php?sensor=esp8266-306639-sds011
Da ich nicht immer mein Handy nutzen will, um mir die Auswertung zu laden, würde ich die Daten gerne mittels ESP8266 und einem ILI9341 TFT auf dem TFT automatisch alle Minute anzeigen lassen.
Z.B. die Grafik: http://www.madavi.de/sensor/images/sensor-esp8266-306639-sds011-1-day.png
Wie kann ich dieses realisieren? Ich bin leider kein großer Programmierer.
Bernd
Hi,
habe den Quelltext unverändert in die Arduino IDE eingefügt und mit der ESP8266 Einstellung in den ESP geladen. Die Ausgaben im seriellen Monitor sind fast genauso wie oben gezeigt. Nur die Reihung ist verändert. Auch die Temperatur wird angezeigt. Rufe ich aber die im seriellen Monitor aufgeführte Adresse mit einem Explorer auf, erhalte ich eine Fehlermeldung. Die Adresse stimmt, denn im Router sehe ich den ESP genau unter dieser Adresse. Ich habe die Seite mit Firefox, Edge und dem alten Internetexplorer aufgerufen. Alle 3 können die Seite nicht aufbauen. Woran kann das liegen?
Hoschy
In Zeile 28 steht: " öffnen Sie %s in einem Webbrowser\n", WiFi.localIP "
das %s bezieht sich auf das Wifi.localIP, das ist die IP des webservers, des arduinos / mcu oder ähnliches wo die Webseite zum anzeigen drauf läuft.
Klaus
Moin,
ein Anfänger sucht in selfhtml.org den Abschnit prepareHtmlPage – wünsche ein wenig mehr Hilfe.
michael
Bin leider noch Anfänger:
Was bedeutet das Zeichen “%s” in der Zeile 28?
Mit was für einer Adresse rufe ich im Broser die Seite auf?