Omet navegació

7.2 Controlem Leds amb el telèfon

Servidor web simple

Anem a agafar el muntatge d'un led i el modifiquem lleugerament per fer que ESP32 dispose de més energia per emetre sense recorrer al cable USB de l'ordinador. El cable USB sols el posaré per passar els programes i després el trauré després de depurar el programa al final de tot.

ESP32 Servidor + 4 Leds

Hem canviat el cable i la font d'alimentació per posar 6V al pin de 5V que té un regulador de tensió que converteix el voltatge d'entrada a 3,3 V. No poseu voltatges molt elevats o acabareu fent petar la targeta ESP32.

El programa boot.py és el primer que llegirà ESP32. En ell carreguem llibreries per connectar-nos a la wifi (network), per operar amb el client (socket) , per netejar la ram de programes que no gastem (gc), per llegir pins (machine), demanem no rebre missatge de depuració del sistema (esp.osdebug(None)).

Després ens connectem a la wifi i imprimim la ip del nostre servidor wlan.ifconfig()

boot.py

La versió editable és ací, descomprimeix i edita'l: boot.py.zip(zip - 416 B)

El segon programa que llegirà ESP32 serà main.py que és el principal.

Anem a veure'l per blocs que es molt llarg.

Aquest primer bloc importa les funcions Pin de machine per treballar amb els GPIO's, importa la funció sleep_ms per aturar el temps, i defineix la funcio1() que engega una seqüencia ràpida de leds.

main1

Aquest bloc du la funcio2() que engega una altra seqüencia de leds.

main2

Aquest bloc du la funcio3() que engega una altra seqüencia de leds.

main3

Aquest bloc du la funcio4() que engega una altra seqüencia de leds.

main4

Aquest bloc du la funció web_page() que presenta 4 botons en pantalla amb el nom de les 4 funcions que hem vist adés. I passa la variable funcioN=on on N és el nom de la funció que premem amb el mòbil.

main5

Aquest bloc fa la comunicació entre el servidor i el client. Fa la comparació de la variable funcioN=on passada i té 4 if que comproven quan hem polsat una funció per cridar i executar la funció corresponent.

main6

Teniu em compte que l'execució de les funcions té un temps diferent, i que fins que no acaba una execució no poden tornar a polsar-la de nou ni cridar-ne una altra.

La versió editable és ací, descomprimeix i edita'l: main.py.zip (zip - 1319 B)

Ara cal carregar les dues funcions, boot.py i main.py ,  al ESP32.

Per carregar boot.py i main.py a la targeta ESP32, ves a File, Save copy...

File Save copy

Escollim el dispositiu MicroPython Device:

MicroPython Device

Posem el nom boot.py dins del dispositiu:

nom boot

Posem el nom main.py dins del dispositiu:

nom main

En acabar de carregar els dos programes, premem el botó reset de ESP32:

ESP32 reset

Els programes boot.py i main.py s'executen i mostren la IP on ens connectarem per telèfon per rebre les dades:

IP al terminal

Engeguem el mòbil a la mateixa wifi on està ESP32 i anem amb el navegador a la pàgina 192.168.1.202

Pàgina web de control 4 Leds

El programa funciona i ens permet controlar els leds amb les 4 funcions definides.

Creat amb eXeLearning (Finestra nova)