Modules ESP8266
En cours
Ces modules sont apparus en 2014 comportent un microcontrôleur et permettent de communiquer par Wifi pour un prix modeste et un encombrement quasi ridicule.
Pins
Nom | IO Index |
---|---|
GPIO0 | 3 |
GPIO1 | 10 |
GPIO2 | 4 |
GPIO3 | 9 |
GPIO4 | 2 |
GPIO5 | 1 |
GPIO6 | N/A |
GPIO7 | N/A |
GPIO8 | N/A |
GPIO9 | 11 |
GPIO10 | 12 |
GPIO11 | N/A |
GPIO12 | 6 |
GPIO13 | 7 |
GPIO14 | 5 |
GPIO15 | 8 |
GPIO16 | 0 |
Firmware
NodeMCU
Ce firmware permet d'executer des scripts Lua sur le module. Ce système est très confortable, en contrepartie il limite très fortement la mémoire utilisable sur le module.
Modules
ESP-01
J'ai pu flasher un module ESP-01 après avoir changer de convertisseur USB->RS232. J'ai retenté l'opération depuis, plus moyen. GRRR !!!! Flashage réussi avec le premier convertisseur considéré comme fautif ; le flashage est très aléatoire.
Board NodeMCU
Il s'agit d'une carte intégrant un module ESP-07.
Pinout de la carte de dev NodeMCU v2 :
La programmation de l'EEPROM de la board NodeMCU doit se faire en mode DIO. Dans le cas contraire la carte semble briquée.
Dev Board ESP8266
La carte chinoise comportant un MCU STC15W408AS, un convertisseur CH340 USB <–> UART . Pas de documentation
DIP SW | Fonction |
---|---|
DC_R_ON |
RX du MCU vers TX ESP |
DC_T_ON |
TX du MCU vers RX ESP |
ESP_T_ON |
TX ESP connecté au CH340 |
MCU_T_ON |
TX MCU connecté au CH340 |
ESP_R_ON |
RX ESP connecté au CH340 |
MCU_R_ON |
RX MCU connecté au CH340 |
GPIO14 |
|
DL_MCU |
? |
CH_PD_H |
Met CH_PD à l'état logique haut |
GPIO0_H |
|
GPIO15_H |
|
GPIO2_H |
Programme :
Code
Sur Pikacode
Programme pour le capteur PIR (NodeMCU)
function detected()
gpio.mode(4, gpio.OUTPUT) -- LED
gpio.write(4, 0)
tmr.alarm(0, 1000, 0, function()
gpio.write(4, 1)
end )
end
gpio.mode(1, gpio.INT) -- pin 1
gpio.trig(1, "up", detected)
Un effet « bougie »
local current_step = 512
local pin = 1
tmr.alarm(1, 300, 1, function()
current_step = current_step + (256 - math.random(256))
if current_step < 0 then
current_step = 0
else if current_step > 1024 then
current_step = 1024
end
end
pwm.setup(pin, 30, current_step)
pwm.start(pin)
end)