Diferència entre revisions de la pàgina «IoT-Vertebrae es»

De binefa.com
Salta a la navegació Salta a la cerca
(Es crea la pàgina amb «= Introducción = [https://www.binefa.cat/training/snapcon2023/20230719_IoT-Vertebrae_SnapCon2023.pdf IoT-Vertebrae - Bridging OT & IT. Snap!Con 2023] and [https://you...».)
 
Línia 149: Línia 149:
 
[[CanBus a l'IoT-Vertebrae]]
 
[[CanBus a l'IoT-Vertebrae]]
  
[[Pantalla OLED al cap de l'IoT-Vertebrae]]
+
[[Pantalla OLED al cap de l'IoT-Vertebrae | Pantalla OLED en el head del IoT-Vertebrae]]
  
[https://snap.binefa.cat/snap.html#open:https://raw.githubusercontent.com/jordibinefa/ms-drivers-and-tools/master/arinyo_20240724_00.xml Ejemplo usando objectos]
+
[https://snap.binefa.cat/snap.html#open:https://raw.githubusercontent.com/jordibinefa/ms-drivers-and-tools/master/arinyo_20240724_00.xml Ejemplo usando objetos]
  
 
[https://snap.berkeley.edu/snap/snap.html#present:Username=jordibinefa&ProjectName=iotv_Carbonell00 iotv_Carbonell00] [https://snap.berkeley.edu/snap/snap.html#present:Username=jordibinefa&ProjectName=iotv_Carbonell00b iotv_Carbonell00b]
 
[https://snap.berkeley.edu/snap/snap.html#present:Username=jordibinefa&ProjectName=iotv_Carbonell00 iotv_Carbonell00] [https://snap.berkeley.edu/snap/snap.html#present:Username=jordibinefa&ProjectName=iotv_Carbonell00b iotv_Carbonell00b]
Línia 157: Línia 157:
 
[[ModBUS RTU a l'IoT-Vertebrae]]
 
[[ModBUS RTU a l'IoT-Vertebrae]]
  
[https://virtualcommissioning.com/what-is-virtual-commissioning/ Què és la posada en servei virtual (Virtual Comissioning)?]
+
[https://virtualcommissioning.com/what-is-virtual-commissioning/ Qué es la puesta en servicio virtual (Virtual Comissioning)?]
  
 
[[IoT-Vertebrae PLC Edu]]
 
[[IoT-Vertebrae PLC Edu]]

Revisió del 12:16, 24 feb 2026

Introducción

IoT-Vertebrae - Bridging OT & IT. Snap!Con 2023 and video (July / 17 / 2023)

IoT-Vertebrae Bridging OT & IT. DLM 2023 (29 / abril / 2023) - Diada de la Llibertat del Maquinari 2023

Conjunto IoT-Vertebrae con head v1.1
  • Compatibilidad con versiones de Raspberry Pi:
RPi 2:  I2C Sí     CAN Sí
RPi 3:  I2C No     CAN Sí
RPi 4:  I2C Sí     CAN Sí
RPi 5:  pendiente de probar

Material

Colección de información sobre l'IoT-Vertebrae (usuario: EdT, contraseña: EdT2324)

Snap! con ejemplo IoT-Vertebrae (Abrir Interacción con IoT-Vertebrae" en Ejemplos) (MAC ESP32: 70B8F662BC7C )

IoT-Vertebrae a GitHub

Concepto IoT-Vertebrae

Maquinari de l'IoT-Vertebrae

Detección de direcciones I2C en la Raspberry Pi

pi@raspberrypi:~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: 10 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

Python

pi@raspberrypi:~/iot-vertebrae $ python
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import iotv
>>> iotv.aversion("0000")
Analog rib version: 1.0
'0000000100000000'
>>> iotv.dversion("0000")
Digital rib version: 1.2
'0000000100000010'
>>> iotv.getdsetup("0000")
A digital output, B digital input
'00010010'
>>> iotv.getasetup("0000")
respA: 0x1, respB: 0x2
A rib is ADC, B rib is DAC.
'00010010'
>>> iotv.dsetup("0000","aout","bin")
ain, aout
Setup has not been changed
False
>>> iotv.getdsetup("0000")
A digital output, B digital input
'00010010'
>>> iotv.dsetup("0000","ain","bout")
ain, bout
True
>>> iotv.getdsetup("0000")
A digital input, B digital output
'00100001'
>>> iotv.dsetup("0000","aout","bin")
aout, bin
True
>>> iotv.getdsetup("0000")
A digital output, B digital input
'00010010'
>>> iotv.ain("0000",'a',1)
19881
>>> iotv.ainv("0000",'a',1)
i2cAddr: 0x10, addrChannel: 0x1
res: 0x4DAA: 19882
0x4DAA --> 19882 --> 4.94V
19882
>>> iotv.ainv("0000",'a',2)
i2cAddr: 0x10, addrChannel: 0x21
res: 0x4DBE: 19902
0x4DBE --> 19902 --> 4.95V
19902
>>> iotv.aout("0000",'b',2,4095)
dacCommand: 0x32
It has been sent 0xFFF (10.00 volts) to DAC 2
>>> iotv.ainv("0000",'a',2)
i2cAddr: 0x10, addrChannel: 0x21
res: 0x6781: 26497
0x6781 --> 26497 --> 9.90V
26497
>>> iotv.aout("0000",'b',2,2047)
dacCommand: 0x32
It has been sent 0x7FF (5.00 volts) to DAC 2
>>> iotv.ainv("0000",'a',2)
i2cAddr: 0x10, addrChannel: 0x21
res: 0x4DBB: 19899
0x4DBB --> 19899 --> 4.95V
19899
>>> iotv.din("0000",'b')
'00000000'
>>> iotv.din("0000",'b')
'00100100'
>>> iotv.din("0000",'b')
'00000000'
>>> iotv.dout("0000",'a',0x5A)
>>> iotv.dsetup("0000","aoutpwm","bin")
aoutpwm, bin
True
>>> iotv.getdsetup("0000")
A PWM output, B digital input
'00010100'
>>> iotv.doutpwm('0000','a',255)
>>> iotv.doutpwm('0000','a',55)
>>> iotv.doutpwm('0000','a',0)
>>> iotv.dsetup("0000","aout","bin")
aout, bin
True
>>> iotv.getdsetup("0000")
A digital output, B digital input
'00010010'
>>> iotv.doutbit('0000','a',0,1)
>>> iotv.doutbit('0000','a',0,0)
>>> iotv.dsetup("0000","aoutpwm","bin")
aoutpwm, bin
True
>>> iotv.getdsetup("0000")
A PWM output, B digital input
'00010100'
>>> iotv.doutbitpwm('0000','a',0,55)
>>> iotv.doutbitpwm('0000','a',0,255)
>>> iotv.doutbitpwm('0000','a',0,0)
>>> iotv.dsetup("0000","aout","bin")
aout, bin
True
>>> iotv.getdsetup("0000")
A digital output, B digital input
'00010010'
>>> 
pi@raspberrypi:~/iot-vertebrae $

API de Python per a l'IoT-Vertebrae

Ejemplos de uso

Control via Snap! (MQTT al cap + CanBus) (MAC ESP32: 70B8F662BC7C )

Smart Toys (MQTT a la Raspberry Pi + I2C)

CanBus a l'IoT-Vertebrae

Pantalla OLED en el head del IoT-Vertebrae

Ejemplo usando objetos

iotv_Carbonell00 iotv_Carbonell00b

ModBUS RTU a l'IoT-Vertebrae

Qué es la puesta en servicio virtual (Virtual Comissioning)?

IoT-Vertebrae PLC Edu