Le but est de montrer comment utiliser un carte nucleo-64 avec un esp01 pour se connecter au réseaux et faire un serveur web avec l'IDE Arduino
Grace au projet stm32duino, on peut utiliser l'IDE Arduino pour programmer ces cartes
Il faudra installer les cartes ST dans l'IDE Arduino en suivant les indications du lien ci-dessus
Matériel nécessaire :
une carte STM32 Nucleo-64, ici la L476RG :
une sonde DHT22 :
un ESP-01 :
Le Câblage :
On connecte la sonde ainsi :
- On alimente en 3V3 le pin Vcc de la sonde.
- On connecte le Ground du STM32 à celui de la sonde.
- On utilise une résistance de 4.7kOhm entre la pin data et 3.3v de la sonde.
- On connecte le pin D4 du STM32 au pin data de la sonde.
On connecte l' ESP01 ainsi :
- On alimente en 3V3 le pin 3.3, le RST et le EN de l' ESP
- On connecte le GND du STM32 au GND de l' ESP
- On connecte D2 (RX) du STM32 au TX de l' ESP
- On connecte D8 (TX) du STM32 au RX de l' ESP
Serveur web :
Vous aurez besoin de ces 2 librairies, une pour le wifi et une pour la sonde dht :
- https://github.com/bportaluri/WiFiEsp
- https://github.com/adafruit/DHT-sensor-library
WiFiEsp :
DHT :
Pour copier le programme, on clic dans le cadre du programme, puis Ctrl a, pour tout sélectionner, et Ctrl C pour copier
Ensuite vous pouvez le coller dans l'IDE Arduino
Il faut renseigner votre ssid et mdp du réseau wifi en début de programme a la place de XXXX et YYYY
Nucleo64_ESP01_DHT22.ino :
Le résultat :
dans la com série :
au démarrage du programme :
quand on se connecte au serveur :
la page web
on se connecte à l'adresse ip de l'esp :
Et voilà on peut maintenant connecter les Nucléo-64 au réseaux facilement avec l'IDE Arduino
Temps NTP :
Vous aurez besoin de cette librairie pour manipuler les dates et heures facilement :
- https://github.com/PaulStoffregen/Time
Timelib :
Dans cet exemple le programme récupère l'heure sur un serveur NTP, et on se synchronise avec, on peut ensuite utiliser le fonction de date classique date() month() etc ...
Une re-synchronisation automatique est programmée toutes les 30s pour l'exemple
Pour copier le programme, on clic dans le cadre du programme, puis Ctrl a, pour tout sélectionner, et Ctrl C pour copier
Ensuite vous pouvez le coller dans l'IDE Arduino
Il faut renseigner votre ssid et mdp du réseau wifi en début de programme a la place de XXXX et YYYY
STM32_L476_ESP01_NTP.ino :
Le résultat :
dans la com série :
au démarrage du programme on interroge le serveur NTP :
Quand on se re-synchronise :
avec la gestion du changement d'heure :
Vous aurez besoin de cette librairie :
STM32_L476_ESP01_NTP2.ino :
dans la com série :
Ephemeride :
Une librairie utile si l'on veut calculer le lever et coucher du soleil, c'est pratique et utile, je m'en sers pour la gestion de mon terrarium, il permet d'allumer la lumière en suivant les saisons et modifier la température entre le jour et la nuit.
- https://github.com/MarScaper/ephemeris
ephemeris :
J'ai repris l'exemple précédent, et à chaque synchronisation avec le serveur NTP, on calcul le lever et coucher du soleil et on l'affiche
Pour copier le programme, on clic dans le cadre du programme, puis Ctrl a, pour tout sélectionner, et Ctrl C pour copier
Ensuite vous pouvez le coller dans l'IDE Arduino
Il faut renseigner votre ssid et mdp du réseau wifi en début de programme a la place de XXXX et YYYY
STM32_L476_ESP01_NTP_EPHEM.ino :
Le résultat :
dans la com série :
au démarrage du programme on interroge le serveur NTP et on calcul l'éphéméride :
Quand on se re-synchronise on re-calcul l'éphéméride :