Diferència entre revisions de la pàgina «Accés ModBus al sensor de temperatura i humitat CWT-TH03S»
m (→Protocol específic) |
m (→Python) |
||
Línia 34: | Línia 34: | ||
[https://www.binefa.cat/training/python/sensors/CWT-TH03S_python_00.zip mb_T_01.py] | [https://www.binefa.cat/training/python/sensors/CWT-TH03S_python_00.zip mb_T_01.py] | ||
+ | |||
+ | if q == 'sensor1': | ||
+ | print("{\nSending: Reading sensor 1") | ||
+ | stMB = "%c%c%c%c%c%c"%(0x01,0x03,0x00,0x00,0x00,0x02) | ||
+ | self.writeCommand(stMB) | ||
== NodeRed == | == NodeRed == |
Revisió del 11:01, 7 set 2021
Contingut
Protocol específic
Cables de connexió
Marró: Alimentació (entre 5V i 30V) Groc: A (D+) Blau: B (D-) Negre: Massa
Programari de canvi de paràmetres
Programa per Windows RS485ControlV22.exe per a canviar paràmetres dels dispositius ModBus
Vídeo del funcionament del programa RS485ControlV22.exe
Visió general
Lectura
Exemple de trama de petició de lectura de temperatura i humitat a un dispositiu a l'adreça 0x01:
Canvi d'adreça
Exemple de trama per a canviar l'adreça del dispositiu a 0x02 (per defecte és 0x01):
Canvi de velocitat de comunicació
Exemple de trama per a canviar la velocitat de comunicació a 9600 bauds (per defecte és 4800 bauds) a un dispositiu a l'adreça 0x01:
Implementacions
Python
Codi (provisional. Cal fer neteja) que permet llegir temperatura i humitat del sensor CWT-TH03S fent servir un dispositiu amb sistema operatiu (ordinador o Raspberry Pi):
if q == 'sensor1': print("{\nSending: Reading sensor 1") stMB = "%c%c%c%c%c%c"%(0x01,0x03,0x00,0x00,0x00,0x02) self.writeCommand(stMB)
NodeRed
Codi que permet llegir temperatura i humitat del sensor CWT-TH03S fent servir un dispositiu amb sistema operatiu (ordinador o Raspberry Pi):
Configuració del node ModBus de lectura
Configuració del servidor ModBus al NodeRed
Funció ModBus -> T, RH
Per a obtenir dues sortides amb números reals, el byte del vector es transforma en un enter. Després es converteix a real i es divideix per 10:
var fT = parseFloat(parseInt(msg.payload[1]))/10; var fRH = parseFloat(parseInt(msg.payload[0]))/10; return [{"payload": fT},{"payload": fRH}];
Placa IoT-02
Codi (provisional. Cal fer neteja) per a l'IDE d'Arduino que permet llegir temperatura i humitat del sensor CWT-TH03S fent servir un dispositiu amb ESP32 (exemple per a la placa IoT-02):