Diferència entre revisions de la pàgina «Interacció amb SiPy1.0r de pycom»
m |
m (→Exemple d'ús) |
||
(Hi ha 14 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
+ | = Introducció = | ||
+ | [https://github.com/jordibinefa/IoT_ttnCat/blob/master/iot_01.pdf Esquemàtic de la placa de proves IoT-ttnCat] | ||
+ | |||
[https://docs.pycom.io/gettingstarted/connection/sipy/ Connexió bàsica] | [https://docs.pycom.io/gettingstarted/connection/sipy/ Connexió bàsica] | ||
Línia 48: | Línia 51: | ||
[https://docs.pycom.io/firmwareapi/pycom/network/sigfox/ Instruccions de micropython específiques per a SiPy de pycom] | [https://docs.pycom.io/firmwareapi/pycom/network/sigfox/ Instruccions de micropython específiques per a SiPy de pycom] | ||
+ | |||
+ | = Pujar programes = | ||
+ | Dins del sistema d'arxius del SiPy hi ha dos arxius clau: '''boot.py''' i '''main.py''' | ||
+ | |||
+ | L'arxiu '''boot.py''', si existeix, s'executa després d'un reset. És el primer que fa el sistema. És el lloc ideal per a connectar el dispositiu a una xarxa sense fils i definir quins perifèrics estan connectats i com. | ||
+ | |||
+ | L'arxiu '''main.py''', si existeix, s'executa tot just després d'acabar l'execució de '''boot.py'''. És el programa principal. | ||
+ | |||
+ | [https://docs.pycom.io/gettingstarted/programming/safeboot/ Explicació del ''bootloader'' i ''safe boot''] | ||
+ | |||
+ | '''boot.py''' original: | ||
+ | # boot.py -- run on boot-up | ||
+ | import os | ||
+ | from machine import UART | ||
+ | uart = UART(0, 115200) | ||
+ | os.dupterm(uart) | ||
+ | |||
+ | '''main.py''' original: | ||
+ | # main.py -- put your code here! | ||
+ | |||
+ | == Mode '''bootloader'''== | ||
+ | Per a posar la placa IoT-ttnCat em mode ''bootloader'' canvieu el pont present a LOW LEVEL BOOTLOADER de la posició LOW a la posició LEVEL. | ||
+ | |||
+ | == Mode '''safe boot''' == | ||
+ | Per a posar la placa IoT-ttnCat em mode ''safe boot'' canvieu el pont present a SAFE BOOT de la posició SAFE a la posició BOOT. | ||
+ | |||
+ | == Fent servir FTP per a pujar programes == | ||
+ | Quan el dispositiu és nou, o en mode ''safe boot'', el dispositiu fa de punt d'accés (podeu revisar les xarxes sense fils i hi trobareu una xarxa amb l'SSID similar a ''sipy-wlan-e380''. Feu servir com a contrasenya de connexió ''www.pycom.io''). | ||
+ | |||
+ | Un cop us hi connecteu al punt d'accés del dispositiu hi podeu accedir emprant la URL '''ftp://192.168.4.1''', per exemple des del navegador d'arxius de Debian, i llur nom d'usuari és '''micro''' i llur contrasenya '''python'''. | ||
+ | |||
+ | [https://docs.pycom.io/gettingstarted/programming/ftp/ Explicació de l'FTP a pycom] | ||
= I2C = | = I2C = | ||
Línia 70: | Línia 105: | ||
'0x76' | '0x76' | ||
>>> | >>> | ||
+ | |||
+ | == Sensor BME280 == | ||
+ | [https://randomnerdtutorials.com/micropython-bme280-esp32-esp8266/ MicroPython: BME280 with ESP32 and ESP8266 (Pressure, Temperature, Humidity)] | ||
+ | |||
+ | == Pantalla SSD1306 == | ||
+ | [https://diyprojects.io/oled-display-ssd1306-micropython-example-digital-barometer-bme280-i2c/ OLED display SSD1306 in MicroPython, example with a I2C digital barometer BME280 (or BMP180)] | ||
+ | |||
+ | Biblioteques emprades a aquest projecte: | ||
+ | |||
+ | [https://raw.githubusercontent.com/catdog2/mpy_bme280_esp8266/master/bme280.py Sensor BME280] | ||
+ | |||
+ | [https://raw.githubusercontent.com/micropython/micropython/master/drivers/display/ssd1306.py Pantalla SSD1306] | ||
+ | |||
+ | == Exemple d'ús == | ||
+ | Connecteu-vos al punt d'accés del SiPy (exemple d'SSID: ''sipy-wlan-e380'' i contrasenya ''www.pycom.io''). Mitjançant el navegador d'arxius de Debian accediu a la carpeta de biblioteques '''ftp://192.168.4.1/flash/lib''' i copieu la biblioteca [https://raw.githubusercontent.com/catdog2/mpy_bme280_esp8266/master/bme280.py bme280.py]. | ||
+ | |||
+ | Des del terminal podeu provar la biblioteca [https://raw.githubusercontent.com/catdog2/mpy_bme280_esp8266/master/bme280.py bme280.py]: | ||
+ | |||
+ | >>> from machine import I2C | ||
+ | >>> import machine, time, bme280 | ||
+ | >>> i2c = I2C(0, I2C.MASTER, baudrate=100000) | ||
+ | >>> bme = bme280.BME280(i2c=i2c,address=0x76) | ||
+ | >>> temp,pa,hum = bme.values | ||
+ | >>> print(temp) | ||
+ | 24.15C | ||
+ | >>> print(pa) | ||
+ | 1008.67hPa | ||
+ | >>> print(hum) | ||
+ | 49.87% |
Revisió de 20:04, 26 abr 2020
Contingut
Introducció
Esquemàtic de la placa de proves IoT-ttnCat
Després de prémer el botó de reset:
rst:0x1 (POWERON_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT) ets Jun 8 2016 00:22:57 rst:0x10 (RTCWDT_RTC_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:QIO, clock div:2 load:0x3fff9010,len:8 load:0x3fff9018,len:248 load:0x40078000,len:4056 load:0x4009fc00,len:920 entry 0x4009fde4 I (1577) wifi: wifi firmware version: 2a22b2d I (1593) wifi: pp_task_hdl : 3ffd6b74, prio:23, stack:8192 I (1593) wifi: Init lldesc rx mblock:10 I (1593) wifi: Init lldesc rx ampdu len mblock:7 I (1595) wifi: Init lldesc rx ampdu entry mblock:4 I (1600) wifi: sleep disable I (2588) wifi: frc2_timer_task_hdl:3ffdcbc4, prio:22, stack:2048 I (2612) wifi: mode : softAP (24:0a:c4:00:e3:81) MicroPython v1.8.6-493-g99ac80fe on 2017-03-03; SiPy with ESP32 Type "help()" for more information. >>> help() Welcome to MicroPython! For online help please visit http://micropython.org/help/. For further help on a specific object, type help(obj) >>> from network import Sigfox >>> import socket >>> import ubinascii >>> sigfox = Sigfox(mode=Sigfox.SIGFOX, rcz=Sigfox.RCZ1) >>> sigfox.mac() b'p\xb3\xd5I\x99\n\xfcF' >>> sigfox.id() b'\x00M*]' >>> sigfox.pac() b'\x93n\xf7\x10\x01\xc8&\x9d' >>> ubinascii.hexlify(sigfox.mac()) b'70b3d549990afc46' >>> ubinascii.hexlify(sigfox.id()) b'004d2a5d' >>> ubinascii.hexlify(sigfox.pac()) b'936ef71001c8269d' >>>
Instruccions de micropython específiques per a SiPy de pycom
Pujar programes
Dins del sistema d'arxius del SiPy hi ha dos arxius clau: boot.py i main.py
L'arxiu boot.py, si existeix, s'executa després d'un reset. És el primer que fa el sistema. És el lloc ideal per a connectar el dispositiu a una xarxa sense fils i definir quins perifèrics estan connectats i com.
L'arxiu main.py, si existeix, s'executa tot just després d'acabar l'execució de boot.py. És el programa principal.
Explicació del bootloader i safe boot
boot.py original:
# boot.py -- run on boot-up import os from machine import UART uart = UART(0, 115200) os.dupterm(uart)
main.py original:
# main.py -- put your code here!
Mode bootloader
Per a posar la placa IoT-ttnCat em mode bootloader canvieu el pont present a LOW LEVEL BOOTLOADER de la posició LOW a la posició LEVEL.
Mode safe boot
Per a posar la placa IoT-ttnCat em mode safe boot canvieu el pont present a SAFE BOOT de la posició SAFE a la posició BOOT.
Fent servir FTP per a pujar programes
Quan el dispositiu és nou, o en mode safe boot, el dispositiu fa de punt d'accés (podeu revisar les xarxes sense fils i hi trobareu una xarxa amb l'SSID similar a sipy-wlan-e380. Feu servir com a contrasenya de connexió www.pycom.io).
Un cop us hi connecteu al punt d'accés del dispositiu hi podeu accedir emprant la URL ftp://192.168.4.1, per exemple des del navegador d'arxius de Debian, i llur nom d'usuari és micro i llur contrasenya python.
I2C
Imatge de la distribució de pins
SDA: GPIO12
SCL: GPIO13
gist de github per a fer escaneig de dispositius I2C
>>> from machine import I2C >>> i2c = I2C(0, I2C.MASTER, baudrate=100000) >>> devices = i2c.scan() >>> len(devices) 2 >>> print (devices) [60, 118] >>> hex(devices[0]) '0x3c' >>> hex(devices[1]) '0x76' >>>
Sensor BME280
MicroPython: BME280 with ESP32 and ESP8266 (Pressure, Temperature, Humidity)
Pantalla SSD1306
OLED display SSD1306 in MicroPython, example with a I2C digital barometer BME280 (or BMP180)
Biblioteques emprades a aquest projecte:
Exemple d'ús
Connecteu-vos al punt d'accés del SiPy (exemple d'SSID: sipy-wlan-e380 i contrasenya www.pycom.io). Mitjançant el navegador d'arxius de Debian accediu a la carpeta de biblioteques ftp://192.168.4.1/flash/lib i copieu la biblioteca bme280.py.
Des del terminal podeu provar la biblioteca bme280.py:
>>> from machine import I2C >>> import machine, time, bme280 >>> i2c = I2C(0, I2C.MASTER, baudrate=100000) >>> bme = bme280.BME280(i2c=i2c,address=0x76) >>> temp,pa,hum = bme.values >>> print(temp) 24.15C >>> print(pa) 1008.67hPa >>> print(hum) 49.87%