Programmation et configuration d’un microcontrôleur ESP.
Nous avons tenté de programmer le microcontrôleur ESP32 à l’aide d’un logiciel de configuration : ESP HOME, afin de faciliter l’intégration des dispositif à leur système. Les microcontrôleurs ESP sont dotés de capacités Wi-Fi, ce qui simplifie les choses. En effet, ESPHome génère des programmes complets que l’on appelle firmware, permettant la mise à jour des dispositifs via Wi-Fi.
Afin d’éditer le programme du ESP32, le logiciel propose une interface web, il suffit d’alimenter par USB le microcontrôleur, à un ordinateur et d’installer le firmware.
esphome:
name: esp-f
esp32:
board: esp32dev
Framework:
type: arduino
# Enable logging, api and ota
logger:
api:
ota:
wifi:
ssid: EcologiesNumeriques
password: econum24
Ligne de code qui montre les condition de base.
En ajoutant ces lignes de codes, on crée 3 configurations au microcontrôleur : d’une sortie, de la lumière et du temps.
output:
- id: light_output
platform: gpio
pin: GPIO2
light:
- platform: binary
id: LED
output: light_output
time:
- platform: sntp
on_time:
- seconds: /5
then:
- light.toggle: LED
1. Crée une sortie GPIO appelée light_output associée au pin GPIO2 du microcontrôleur. Cela permet de contrôler un composant matériel (comme une LED) connecté à ce pin.
2. Crée un objet de type lumière binaire nommé LED qui utilise la sortie GPIO définie. La lumière binaire peut être soit allumée, soit éteinte.
3. Configure le microcontrôleur pour utiliser le protocole SNTP pour obtenir l’heure, actuelle via un serveur NTP. Spécifie une action à exécuter à intervalles réguliers. Bascule l’état de la lumière LED toutes les 5 secondes.
Lors de cette expérience de programmation, nous nous sommes familiarisés avec deux composants différents : un capteur qui reçoit des informations de l’environnement et le microcontrôleur ESP32. Les informations sont transmises entre le capteur et le microcontrôleur via des câbles de différentes couleurs. Le fil SDA (jaune) et le fil “Clock” (bleu) forment le bus I²C.
Chacun de ces fils a une fonction spécifique : le SDA transmet les données, tandis que le fil “Clock” synchronise leur réception, permettant au microcontrôleur de traiter les données de manière séquentielle. Ils communiquent entre eux par le branchement de leurs pins respectifs.
Nous notons dans le firmware :
i2c:
sda: 22
scl: 23
SDA = ligne de donnée
SCL = transfert de donnée
Le but de notre programmation était d’allumer une LED sur le microcontrôleur en réponse à la température détectée par le capteur de température SparkFun.
sensor:
- platform: tmp117
name: "Temperature"
update_interval: 10s
En rajoutant ces lignes de codes et en l’installant, nous avons constater que le programme relevait la température du capteur toute les 10 secondes. Suite à cela, nous avons décidé d’instaurer une condition selon laquelle la LED devait s’allumer à partir des 31 °C en retournant la température toutes les 5 secondes.
output:
- id: light_output
platform: gpio
pin: GPIO2
light:
- platform: binary
id: LED
output: light_output
time:
- platform: sntp
on_time:
- seconds: /5
then:
- light.toggle: LED
i2c:
sda: 22
scl: 23
sensor:
- platform: tmp117
name: "Temperature"
update_interval: 5s
unit_of_measurement: “°C”
on_value_range:
- above: 31
then:
- light.turn_on:
id: LED
- below: 31
then:
- light.turn_off:
id: LED
Pour cela, nous avons réchauffé le capteur avec nos mains pour augmenter sa température et ainsi déclencher l’allumage de la LED sur le microcontrôleur. À mesure que la température a atteint le seuil de 31°C, nous avons observé que la LED s’allumait comme prévu.
Cette observation a donc confirmé que notre code et notre circuit fonctionnaient correctement. L’expérience nous a permis de valider la fonctionnalité de notre configuration matérielle et logicielle, démontrant que le ESP32 peut réagir efficacement aux données du capteur en contrôlant une LED en fonction de la température. Cela nous offre une base solide pour des projets futurs nécessitant une interaction entre des capteurs et des dispositifs de sortie.