Diferència entre revisions de la pàgina «Placa IoT-02»
m (→Codes) |
m |
||
(Hi ha 9 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
[https://github.com/jordibinefa/IoT-02 Placa IoT-02 al github] (Esquemes electrònics, esquemes de fabricació de la placa de circuit imprès i codis de prova) | [https://github.com/jordibinefa/IoT-02 Placa IoT-02 al github] (Esquemes electrònics, esquemes de fabricació de la placa de circuit imprès i codis de prova) | ||
− | = | + | = Codis = |
+ | == IDE d'Arduino == | ||
[https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/IoT-02_01_leds/IoT-02_01_leds.ino IoT-02_01_leds.ino] | [https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/IoT-02_01_leds/IoT-02_01_leds.ino IoT-02_01_leds.ino] | ||
Línia 15: | Línia 16: | ||
[https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_07_SSD1306 IoT-02_07_SSD1306] | [https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_07_SSD1306 IoT-02_07_SSD1306] | ||
+ | |||
+ | [https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_08_SSD1306_io IoT-02_08_SSD1306_io] | ||
+ | |||
+ | [https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_09_modbus IoT-02_09_modbus] | ||
+ | |||
+ | [https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_10_modbus_bme680 IoT-02_10_modbus_bme680] | ||
+ | |||
+ | [https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_11_modbus_bme280 IoT-02_11_modbus_bme280] | ||
+ | |||
+ | = Codis a l'ordinador d'escriptori = | ||
+ | == ModBus emprant Python== | ||
+ | Codi per a controlar des de l'ordinador la placa IoT-02 emprant el protocol ModBus: | ||
+ | |||
+ | [https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/python/modbus/mb_IoT_00.py mb_IoT_00.py] | ||
+ | |||
+ | === Dependències de biblioteques === | ||
+ | [https://pyserial.readthedocs.io/en/latest/pyserial.html '''serial''' és a la biblioteca '''pyserial''']. Serveix per a comunicar-se amb el port sèrie. Es pot instal·lar: | ||
+ | |||
+ | pip install pyserial | ||
+ | o | ||
+ | pip3 install pyserial | ||
+ | |||
+ | A algunes distribucions Linux potser us calgui instal·lar els paquets '''python-serial''' o '''python3-serial'''. | ||
+ | |||
+ | [https://www.tutorialspoint.com/python3/python_multithreading.htm '''threading''' està instal·lada per defecte]. Al codi [https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/python/modbus/mb_IoT_00.py mb_IoT_00.py] ens serveix per a posar un temporitzador que consulti cíclicament les dades rebudes pel port sèrie. | ||
+ | |||
+ | [https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/python/modbus/crc16c.py crc16c.py] és un arxiu que ha de compartir carpeta amb [https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/python/modbus/mb_IoT_00.py mb_IoT_00.py]. És un codi que permet fer el càlcul dels codis de [https://ca.wikipedia.org/wiki/Control_de_redund%C3%A0ncia_c%C3%ADclica control de redundància cíclica] ('''CRC''') de forma eficient a Python. | ||
+ | |||
+ | [https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/python/modbus/key_getter.py key_getter.py] és un arxiu que ha de compartir carpeta amb [https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/python/modbus/mb_IoT_00.py mb_IoT_00.py]. És un codi que permet llegir les tecles premudes sense esperar a prémer la tecla ''Enter''. Això permet una interacció més ràpida i fluïda amb la placa des del terminal. Tan sols funciona amb entorns amb interfície gràfica d'usuari. Està basat en [https://docs.python.org/3/howto/curses.html curses]. Per a funcionar a '''Linux''' cal importar '''termios''', '''fcntl''', '''sys''', '''os''' i '''curses'''. Per a funcionar a '''Windows''' cal importar '''msvcrt'''. | ||
+ | |||
+ | === Execució des de '''Linux''' === | ||
+ | |||
+ | ./mb_IoT_00.py '''/dev/ttyUSB1 4800''' | ||
+ | |||
+ | '''/dev/ttyUSB1''' és el port sèrie a on es connecta el [https://www.aliexpress.com/item/1883714934.html?spm=a2g0o.productlist.0.0.3f112d6btvRSkf&algo_pvid=4ffaca69-f154-47b9-9352-0bb7c7106350&algo_expid=4ffaca69-f154-47b9-9352-0bb7c7106350-6&btsid=0ab6d69f15885031557261231e4c01&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_ convertidor USB / RS485]. Quan es programa la placa fem servir habitualment '''/dev/ttyUSB0'''. Per a veure quins són els dispositius USB connectats a l'ordinador podem escriure '''lsusb''' al terminal. Per a veure els ports USB disponibles podem escriure '''ls /dev/ttyUSB* -ls '''. | ||
+ | |||
+ | '''4800''' és la velocitat de comunicació en bauds. És la velocitat en que s'han programat els exemples de ModBus amb l'IDE d'Arduino. Altres velocitat típiques són '''9600''' i '''115200'''. | ||
+ | |||
+ | === Execució des de '''Windows''' === | ||
+ | |||
+ | python3 mb_IoT_00.py '''COM7 4800''' | ||
+ | |||
+ | '''COM7''' és un exemple del nom de port sèrie a on es connecta el [https://www.aliexpress.com/item/1883714934.html?spm=a2g0o.productlist.0.0.3f112d6btvRSkf&algo_pvid=4ffaca69-f154-47b9-9352-0bb7c7106350&algo_expid=4ffaca69-f154-47b9-9352-0bb7c7106350-6&btsid=0ab6d69f15885031557261231e4c01&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_ convertidor USB / RS485]. És un port diferent al que es fa servir quan es programa la placa. | ||
+ | |||
+ | == Control de la placa IoT-02 mitjançant '''C++ per a Qt''' == | ||
+ | [[Control de la placa IoT-02 mitjançant MQTT emprant Qt i missatges JSON]] |
Revisió de 19:07, 22 nov 2020
Placa IoT-02 al github (Esquemes electrònics, esquemes de fabricació de la placa de circuit imprès i codis de prova)
Contingut
Codis
IDE d'Arduino
Codis a l'ordinador d'escriptori
ModBus emprant Python
Codi per a controlar des de l'ordinador la placa IoT-02 emprant el protocol ModBus:
Dependències de biblioteques
serial és a la biblioteca pyserial. Serveix per a comunicar-se amb el port sèrie. Es pot instal·lar:
pip install pyserial
o
pip3 install pyserial
A algunes distribucions Linux potser us calgui instal·lar els paquets python-serial o python3-serial.
threading està instal·lada per defecte. Al codi mb_IoT_00.py ens serveix per a posar un temporitzador que consulti cíclicament les dades rebudes pel port sèrie.
crc16c.py és un arxiu que ha de compartir carpeta amb mb_IoT_00.py. És un codi que permet fer el càlcul dels codis de control de redundància cíclica (CRC) de forma eficient a Python.
key_getter.py és un arxiu que ha de compartir carpeta amb mb_IoT_00.py. És un codi que permet llegir les tecles premudes sense esperar a prémer la tecla Enter. Això permet una interacció més ràpida i fluïda amb la placa des del terminal. Tan sols funciona amb entorns amb interfície gràfica d'usuari. Està basat en curses. Per a funcionar a Linux cal importar termios, fcntl, sys, os i curses. Per a funcionar a Windows cal importar msvcrt.
Execució des de Linux
./mb_IoT_00.py /dev/ttyUSB1 4800
/dev/ttyUSB1 és el port sèrie a on es connecta el convertidor USB / RS485. Quan es programa la placa fem servir habitualment /dev/ttyUSB0. Per a veure quins són els dispositius USB connectats a l'ordinador podem escriure lsusb al terminal. Per a veure els ports USB disponibles podem escriure ls /dev/ttyUSB* -ls .
4800 és la velocitat de comunicació en bauds. És la velocitat en que s'han programat els exemples de ModBus amb l'IDE d'Arduino. Altres velocitat típiques són 9600 i 115200.
Execució des de Windows
python3 mb_IoT_00.py COM7 4800
COM7 és un exemple del nom de port sèrie a on es connecta el convertidor USB / RS485. És un port diferent al que es fa servir quan es programa la placa.
Control de la placa IoT-02 mitjançant C++ per a Qt
Control de la placa IoT-02 mitjançant MQTT emprant Qt i missatges JSON