Esp8266 y micropython
Articulo en desarrollo.
https://randomnerdtutorials.com/esp32-esp8266-micropython-web-server/
https://docs.micropython.org/en/latest/esp32/quickref.html
http://micropython.org/webrepl/
Sistema de archivos.
- boot.py cuando arranca
- may.py programa principal
Mostrar un archivo
open('boot.py','r').read()
f=open('boot.py','a') f.write('print(); \n') f.write('print("boot.py"); \n') f.close()
-
La salida seria:
# This file is executed on every boot (including wake-boot from deepsleep)\n #import esp\n #esp.osdebug(None)\n import uos, machine\n #uos.dupterm(None, 1) # disable REPL on UART(0)\n import gc\n #import webrepl\n #webrepl.start()\n gc.collect()\n
Restaurar boot original:
f=open('boot.py','w') f.write('# This file is executed on every boot(wake-boot from deepsleep)\n#import esp\n#esp.osdebug(None)\nimport uos, machine\n#uos.dupterm(None, 1) # disable REPL on UART(0)\nimport gc\n#import webrepl\n#webrepl.start()\ngc.collect()\nprint(); \nprint("boot.py");') f.close()
ver archivo boot.py = cat boot.py
open('boot.py','r').read()
Crear main.py
f=open('main.py','w') f.write('print();\n\rprint("main.py");\n import machine,network,esp;\n') f.close() f=open('main.py','w');f.write('print();\nprint("main.py");\nimport machine,network,esp,time;\n');f.close();import main
ver archivo main.py
open('main.py','r').read()
testear main.py
import main.py
Comprobar
print(esp.check_fw());
Codigo ap.py (arranca en modo punto de acceso y arranca la consola REPL via web ).
print("ap.py"); import machine,network,esp,time; ap_if=network.WLAN(network.AP_IF); ap_if.config(essid='esp8266',authmode=network.AUTH_OPEN); ap_if.active(True); print(ap_if.ifconfig()); import webrepl; webrepl.start();
crear el archivo ap.py
desde la consola
f=open('ap.py','w')
f.write('print("ap.py"); ')
f.write('import machine,network,esp,time; ')
f.write('ap_if=network.WLAN(network.AP_IF); ')
f.write('ap_if.config(essid='esp8266',authmode=network.AUTH_OPEN); ')
f.write('ap_if.active(True); ')
f.write('print(ap_if.ifconfig()); ')
f.write('import webrepl; ')
f.write('webrepl.start(); ')
f.close()
Para mostrar el archivo desde la consola:
open('ap.py','r').read()
Para probar el archivo
import ap
Codigo sta.py (arranca en modo cliente(station) y arranca la consola REPL via web )
print("sta.py");
import network;
sta_if=network.WLAN(network.STA_IF);
sta_if.active(True);
sta_if.scan();
sta_if.connect("Honor 6X","polkawifi");
import webrepl;
webrepl.start();
crear el archivo sta.py
desde la consola
f=open('sta.py','w')
f.write('print("ap.py"); ')
f.write('import network; ')
f.write('sta_if=network.WLAN(network.STA_IF); ')
f.write('sta_if.active(True); ')
f.write('sta_if.scan(); ')
f.write('sta_if.connect("Honor 6X","polkawifi"); ')
f.write('import webrepl; ')
f.write('webrepl.start(); ')
f.close()
machine.reset()
import sta
https://www.instructables.com/id/MicroPython-on-an-ESP32-Board-With-Integrated-SSD1/
https://github.com/adafruit/micropython-adafruit-ssd1306
wget https://raw.githubusercontent.com/adafruit/micropython-adafruit-ssd1306/master/ssd1306.py
compruebo bus i2c
#import machine
i2c = machine.I2C(scl=machine.Pin(4), sda=machine.Pin(5))
i2c.scan()
deveria ver: (en el terminal)
MicroPython v1.10 on 2019-01-25; ESP32 module with ESP32 Type “help()” for more information. >>> i2c = machine.I2C(scl=machine.Pin(4), sda=machine.Pin(5)) >>> i2c.scan() [60] >>>Lo que quire decir que hay un dispositivo i2c en la direccion 60
compruebo pantalla oled
i2c = machine.I2C(scl=machine.Pin(4), sda=machine.Pin(5))
i2c.scan()
import ssd1306
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
oled.fill(0)
oled.text('MicroPython Em50L', 0, 0)
oled.show()