Préambule
Que va t’on faire ? Connecter un DHT11 au NodeMCU et envoyer et récupérer directement depuis une page web, les mesures de températures et d’humidité. Ou: Comment faire de la domotique lowcost 😀
Je démarre fort pour ce tutoriel. Je pense ajouter quelques étapes intermédiaire dans d’autres articles. Je saute en tout cas quelques étapes comme:
- Programmer les ESP8266 avec l’IDE d’Arduino
- Installer les drivers CH340G ou CP2102 - Cliquez sur le lien “CH340G” pour obtenir le driver disponible dans le tutoriel “driver Arduino Nano”.
- Créez un hébergement gratuit et sans pubs - Nouveau tutoriel
Dans ce tutoriel on va:
- Connecter un DHT11 au module NodeMcu ESP12-E.
- Envoyer les données via une requête HTTP à une page PHP
- Enregistrer les données dans une base de donnée MYSQL
- Acceder au données depuis une page web partout dans le monde…
Ce dont nous avons besoin
- Un NodeMcu ESP12-E (ou autre) - Achetez en ligne
- Un DHT11 - Achetez en ligne
- Une résistance 10Komhs - Achetez en ligne
- Un éditeur de code
- Un hébergement
- une base de donnée
Connecter le DHT11 au NodeMCU ESP12-E
Installer la librairie DHT
Je vous met le lien directement de la librairie pour éviter tout soucis de compatibilité.
Téléchargez-le et décompressé le dans votre dossier: Arduino\libraries
Programmez le nodeMCU ESP12-E
N’oubliez pas lors de l’upload de ce code de modifier votre SSID et PASSWORD correspondant à votre wifi.
il en sera de-même pour le lignes suivantes mais nous y reviendrons plus tard.
|
1 2 3 4 |
String url = "http://urldevotresite.com/dht/dht.php?temperature="; String url2 = url + DHT.temperature; String url3 = url2 + "&humidite="; String url4 = url3 + DHT.humidity; |
Le délai final de ce code: delay (30000) correspond a l’envoi de requête http toute les 30 secondes. Modifiez-le suivant vos besoins.
Préparation de votre base de données
Entrez dans votre phpmyadmin et créer une table nommée: espdht.
Elle doit contenir 4 champs
- id - Type int - auto incrément primary key
- heure_date - timestamp
- temperature - Type int
- humidite - Type int
Les pages PHP
Nous allons avoir besoin de deux pages PHP.
La première de ces deux pages récupérera les données envoyées afin de les stocker dans la base de donné. La seconde page nous permettra d’afficher le résultat à intervalle régulier.
Enregistrement des données:
Ouvrez votre éditeur de code préféré. Pour moi ce sera Visual Studio Code de Microsoft. Créez un fichier PHP nommé dht.php
Copiez-collez le code PHP suivant en y indiquant: Hôte de votre base de donnée, nom de la base de données, identifiants et mot de passe.
Affichage des données
Créez une page nommée affichage.php
C’est codé en spaghetti mais ça fonctionne. Comme la précédente page n’oubliez pas de modifier le code PHP suivant en y indiquant: Hôte de votre base de donnée, nom de la base de données, identifiants et mot de passe.
Envoyez-le tout sur votre ftp ou via le gestionnaire de fichiers directement via 000webhost dans un dossier nommé: dht. Ensuite alimentez votre NodeMCU ESP12-E.
Si tout s’est bien passé:
Votre Module NodeMcu va envoyé toutes les 30 secondes une requête à l’url suivante:
http://urldevotresite.com/dht/dht.php?temperature=VALEUR&humidite=VALEUR
Les valeurs de température et d’humidité seront alors enregistrée directement sur votre base de données.
En ouvrant l’url: http://urldevotresite.com/dht/affichage.php
Vous devriez alors voir apparaître la dernière mesure de température et d’humidité 🙂
Si tout ne s’est pas bien passé…:
On vérifie que tout est bien enregistré et modifier dans le code Arduino.
On vérifie hôte, nom de la base de données, identifiants et mots de passes en php.
On poste un commentaire et/ou une question
J’essayerai d’éditer ce tutoriel au fur et a mesure des questions posée 🙂
à bientôt,
Lee




bonjour avez vous un tuto pour un projet weather station il y en a sur internet mais pas clair du tout
esp8266 v3 me mais connecting to wifi
et apres cela est la pour le weather station je ne sais pas le parametrer
cordialement :jacky
Bonjour Jacky
Qu’attendez-vous de la station météo en question ? çà peut-être sympa à realiser 🙂
Lee