Table des matières:

Point d'accès (AP) NodeMCU ESP8266 pour serveur Web avec capteur de température DT11 et température et humidité d'impression dans le navigateur : 5 étapes
Point d'accès (AP) NodeMCU ESP8266 pour serveur Web avec capteur de température DT11 et température et humidité d'impression dans le navigateur : 5 étapes

Vidéo: Point d'accès (AP) NodeMCU ESP8266 pour serveur Web avec capteur de température DT11 et température et humidité d'impression dans le navigateur : 5 étapes

Vidéo: Point d'accès (AP) NodeMCU ESP8266 pour serveur Web avec capteur de température DT11 et température et humidité d'impression dans le navigateur : 5 étapes
Vidéo: Création d'une station météo - Microcontrôleur ESP8266 et serveur Web 2024, Décembre
Anonim
Point d'accès (AP) NodeMCU ESP8266 pour serveur Web avec capteur de température DT11 et température et humidité d'impression dans le navigateur
Point d'accès (AP) NodeMCU ESP8266 pour serveur Web avec capteur de température DT11 et température et humidité d'impression dans le navigateur

Salut les gars dans la plupart des projets que nous utilisons ESP8266 et dans la plupart des projets, nous utilisons ESP8266 comme serveur Web afin que les données soient accessibles sur n'importe quel appareil via wifi en accédant au serveur Web hébergé par ESP8266 mais le seul problème est que nous avons besoin d'un routeur fonctionnel pour cela et notre appareil doivent également être connectés au routeur et nous devons mettre nos informations d'identification wifi dans le code, donc si vous modifiez le wifi, vous devez changer les informations d'identification dans le code et vous devez le télécharger à nouveau. Donc, en gros, nous avons deux problèmes ici:1- nous avons besoin d'une connexion wifi pour héberger le serveur Web (routeur)2- chaque fois que la connexion wifi doit être modifiée, nous devons saisir les informations d'identification et télécharger à nouveau le code. Donc, pour éviter tout ce problème, nous pouvons faire au lieu de donner un accès wifi, nous pouvons faire en sorte que l'ESP8266 crée sa propre connexion wifi. va créer un serveur Web utilisant le point d'accès avec ESP8266 et nous connecterons un capteur DHT11 et imprimerons la température et l'humidité sur la page du serveur Web.

Étape 1: choses dont vous avez besoin

Choses dont tu as besoin
Choses dont tu as besoin
Choses dont tu as besoin
Choses dont tu as besoin

1x ESP 8266 Nodemcu: 1x DHT11: 1x maquette:.: Peu de cavaliers:

Étape 2: Obtenez les bibliothèques DHT11

Obtenez les bibliothèques DHT11
Obtenez les bibliothèques DHT11
Obtenez les bibliothèques DHT11
Obtenez les bibliothèques DHT11

Ouvrez votre IDE Arduino et accédez à Sketch > Inclure la bibliothèque > Gérer les bibliothèques. Le gestionnaire de bibliothèque devrait s'ouvrir. Recherchez « DHT » dans la zone de recherche et installez la bibliothèque DHT d'Adafruit. Après avoir installé la bibliothèque DHT d'Adafruit, tapez « Adafruit Unified Sensor » dans la zone de recherche. Faites défiler jusqu'en bas pour trouver la bibliothèque et installez-la. Après avoir installé les bibliothèques, redémarrez votre IDE Arduino.

Étape 3: Connexions

Connexions
Connexions

Le circuit est très facile de tout connecter selon comme indiqué dans les schémas

Étape 4: Code du point d'accès

Code du point d'accès
Code du point d'accès

De mes instructables précédentes, je vais modifier le code du serveur Web de ces instructables:

Et transformez-le en code de serveur Web de point d'accès. Veuillez copier le code fourni ci-dessous:

#include "Arduino.h"#include "ESP8266WiFi.h"

#include "Hash.h"

#include "ESPAsyncTCP.h"

#include "ESPAsyncWebServer.h"

#include "Adafruit_Sensor.h"

#include "DHT.h"

const char* ssid = "ESP8266";const char* password = "password";#define DHTPIN 5 // Broche numérique connectée au capteur DHT// Décommentez le type de capteur utilisé://#define DHTTYPE DHT11 // DHT 11#define DHTTYPE DHT22 // DHT 22 (AM2302)//#define DHTTYPE DHT21 // DHT 21 (AM2301)DHT dht(DHTPIN, DHTTYPE); // température et humidité actuelles, mises à jour en boucle() float t = 0.0; float h = 0.0;// Créer un objet AsyncWebServer sur le port 80AsyncWebServer server (80);// En règle générale, vous devez utiliser "unsigned long" pour les variables qui contiennent du temps // La valeur deviendra rapidement trop grande pour qu'un int stocke unsigned long previousMillis = 0; // stockera la dernière fois que DHT a été mis à jour // Met à jour les lectures DHT toutes les 10 secondes à intervalle constant = 10000; const char index_html PROGMEM = R"rawliteral (ESP8266 DHT Server

Température %TEMPERATURE% °C

Humidité %HUMIDITÉ% %)rawliteral";// Remplace l'espace réservé par DHT valuesString processor(const String& var){ //Serial.println(var); if(var == "TEMPERATURE"){ return String(t); } else if(var == "HUMIDITY"){ return String(h); } return String();}void setup(){ // Port série à des fins de débogage Serial.begin(115200); dht.begin(); Serial.print("Setting AP (Point d'accès)…"); // Supprimez le paramètre de mot de passe, si vous voulez que l'AP (Point d'accès) soit ouvert WiFi.softAP(ssid, mot de passe); IPAddress IP = WiFi.softAPIP(); Serial.print(" Adresse IP du point d'accès: "); Serial.println(IP); // Imprimer l'adresse IP locale ESP8266 Serial.println(WiFi.localIP()); // Route pour le serveur racine / page Web.on ("/", HTTP_GET, (AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html, processor); }); server.on("/temperature", HTTP_GET, (AsyncWebServerRequest *request){ request- >send_P(200, "text/plain", String(t).c_str()); }); server.on("/humidity", HTTP_GET, (AsyncWebServerRequest *request){ request->send_P(200, "texte simple", Chaîne(h).c_str()); }); // Démarrer le serveur server.begin();}void loop(){ unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { // enregistre la dernière fois que vous avez mis à jour les valeurs DHT previousMillis = currentMillis; // Lecture de la température en Celsius (valeur par défaut) float newT = dht.readTemperature(); // Lire la température en degrés Fahrenheit (isFahrenheit = true) //float newT = dht.readTemperature(true); // si la lecture de la température a échoué, ne modifiez pas la valeur t if (isnan(newT)) { Serial.println("Failed lire à partir du capteur DHT !"); } else { t = nouveauT; Serial.println(t); } // Lecture de l'humidité float newH = dht.readHumidity(); // si la lecture de l'humidité a échoué, ne modifiez pas la valeur h if (isnan(newH)) { Serial.println("Échec de la lecture depuis le capteur DHT !"); } else { h = nouveauH; Serial.println(h); } }}Avant de télécharger le code, assurez-vous de mettre les éléments suivants: const char* ssid = "ESP8266"; // quel que soit le ssid du wifi que vous voulezconst char* password = "password"; //passer pour se connecter au ssidSet ci-dessus L'ESP8266 comme point d'accès: Pour définir esp8266 comme point d'accès, nous utiliserons la commande softAP comme indiqué ci-dessous; pour créer un point d'accès. WiFi.softAP(ssid, mot de passe);Il existe également d'autres paramètres facultatifs que vous pouvez transmettre à la méthode softAP(). Voici tous les paramètres: si vous ouvrez le moniteur série, vous pouvez voir l'adresse IP du point d'accès. Ce qui se fait en suivant la partie du code. IPAddress IP = WiFi.softAPIP();Serial.print("AP IP address: ");Serial.println(IP);Par défaut l'adresse IP est: 192.168.4.1

Étape 5: Étape finale: Tester

Dernière étape: Tester
Dernière étape: Tester

Après avoir téléchargé le code, ouvrez votre wifi mobile/pc et connectez-vous au wifi esp8266 (quel que soit le ssid et le mot de passe que vous avez entrés dans le code, utilisez-le). Après la connexion, ouvrez simplement l'adresse IP dans votre navigateur que nous avons obtenue du moniteur série (https://192.168.4.1.) et vous pourrez voir la température et l'humidité dans votre navigateur comme le mien.

Conseillé: