Diferència entre revisions de la pàgina «Introducció a Internet de les Coses - juny 2018»
(→Comunicacions industrials amb port sèrie i ModBus RTU. Introducció a Indusoft) |
m |
||
(Hi ha 81 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
− | + | El contingut d'aquesta wiki s'anirà actualitzant durant la impartició del curs (del 25 al 29 de juny) | |
+ | |||
+ | [https://aplicacions.ensenyament.gencat.cat/pls/soloas/pk_for_mod_ins.p_for_exhaustiu_activitat?p_header=Detall%20d%27activitat^pk_for_mod_ins.p_for_detall_activitat?p_codi=0004990600%26p_curs=2017-2018%26p_es_inscr=S&p_codi=0004990600&p_curs=2017-2018&p_es_inscr=S Temari a l'aplicatiu web del Departament d'Ensenyament de la Generalitat 0004990600 Internet de les coses (IoT)] | ||
[[Programa del curset d'introducció a Internet de les Coses - juny 2018]] | [[Programa del curset d'introducció a Internet de les Coses - juny 2018]] | ||
+ | |||
+ | = Seqüència de presentacions = | ||
+ | == 20180625 == | ||
+ | [[Guia de presentació pel dia 25 de juny de 2018]] | ||
+ | |||
+ | == 20180626 == | ||
+ | [[Guia de presentació pel dia 26 de juny de 2018]] | ||
+ | |||
+ | == 20180627 == | ||
+ | [[Guia de presentació pel dia 27 de juny de 2018]] | ||
+ | |||
+ | == 20180628 == | ||
+ | [[Guia de presentació pel dia 28 de juny de 2018]] | ||
+ | |||
+ | == 20180629 == | ||
+ | [[Guia de presentació pel dia 29 de juny de 2018]] | ||
= Instal·lació de tot el programari = | = Instal·lació de tot el programari = | ||
Línia 27: | Línia 45: | ||
==== Afegint targeta ESP32 ==== | ==== Afegint targeta ESP32 ==== | ||
+ | [http://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/ Installing the ESP32 Board in Arduino IDE (Windows instructions)] | ||
+ | |||
[https://github.com/espressif/arduino-esp32 Afegint la targeta ESP32 a l'IDE d'Arduino] (DOIT ESP32 DEVKIT V1) | [https://github.com/espressif/arduino-esp32 Afegint la targeta ESP32 a l'IDE d'Arduino] (DOIT ESP32 DEVKIT V1) | ||
Línia 39: | Línia 59: | ||
[https://www.arduino.cc/en/Reference/MKRWAN MKRWAN library -Arduino official documentation-] | [https://www.arduino.cc/en/Reference/MKRWAN MKRWAN library -Arduino official documentation-] | ||
+ | |||
+ | == Pantalla OLED == | ||
+ | [http://en.radzio.dxp.pl/bitmap_converter/ Programari convertidor d'arxiu .bmp a codi] | ||
== putty / gtkterm == | == putty / gtkterm == | ||
Línia 60: | Línia 83: | ||
== Python == | == Python == | ||
− | [https://www.python.org/downloads/ Instal·leu les dues versions de Python més populars, Python 2.7 i Python3] | + | [https://www.python.org/downloads/ Instal·leu les dues versions de Python més populars, Python 2.7 i Python3] Un cop heu instal·lat el Python3, aneu a la carpeta ''C:\Users\EL_VOSTRE_USUARI\AppData\Local\Programs\Python\Python36-32'' i reanomeneu ''python.exe'' per ''python3.exe'', i després afegiu la ruta al PATH. Per a que faci efecte heu de sortir i tornar a entrar a la sessió. |
+ | |||
+ | [https://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.10/ Instal·lació de PyQt4 per Python 2.7] Seleccioneu PyQt4-4.10-gpl-Py2.7-Qt4.8.4-x64.exe si la vostra màquina és de 64 bits | ||
− | [http://pyqt.sourceforge.net/Docs/ | + | [http://pyqt.sourceforge.net/Docs/PyQt5/installation.html Instal·lació de PyQt5. Funciona amb Python3] (Una altra manera és '''python3 -m pip install pyqt5''') |
− | [http:// | + | [http://pyserial.readthedocs.io/en/latest/pyserial.html Instal·lació de pyserial] (Una altra manera és '''python3 -m pip install pyserial''') |
− | [ | + | [https://www.techcoil.com/blog/how-to-setup-raspbian-stretch-lite-on-raspberry-pi-3-to-run-python-3-applications/ How to setup Raspbian Stretch Lite on Raspberry Pi 3 to run Python 3 applications ] |
== NodeRED == | == NodeRED == | ||
Línia 76: | Línia 101: | ||
== Mosquitto == | == Mosquitto == | ||
− | [http://www.steves-internet-guide.com/install-mosquitto-linux/ Instal·lació de mosquitto a | + | [http://www.steves-internet-guide.com/install-mosquitto-linux/ Instal·lació de mosquitto a Linux] |
− | [http://www.steves-internet-guide.com/install-mosquitto-broker/ Instal·lació de mosquitto a | + | [http://www.steves-internet-guide.com/install-mosquitto-broker/ Instal·lació de mosquitto a Windows] |
== Indusoft == | == Indusoft == | ||
[http://www.indusoft.com/products-downloads Descarregueu la versió acadèmica d'InduSoft (InduSoft Educational)] o compartim en un disc dur l'arxiu comprimit de 900MB. | [http://www.indusoft.com/products-downloads Descarregueu la versió acadèmica d'InduSoft (InduSoft Educational)] o compartim en un disc dur l'arxiu comprimit de 900MB. | ||
− | [https://binefa.cat/training/indusoft/InduSoft%20Web%20Studio%20Educational%20-%20Installation%20and%20Licensing.pdf Gestió de les llicències d'ús acadèmic (de la pàgina 4 a la 7 del pdf)] | + | [https://www.binefa.cat/training/indusoft/InduSoft%20Web%20Studio%20Educational%20-%20Installation%20and%20Licensing.pdf Gestió de les llicències d'ús acadèmic (de la pàgina 4 a la 7 del pdf)] |
[https://github.com/jordibinefa/ms-drivers-and-tools Arxiu MQTT.1.5.exe des de https://github.com/jordibinefa/ per afegir un controlador (driver) MQTT a l'InduSoft] | [https://github.com/jordibinefa/ms-drivers-and-tools Arxiu MQTT.1.5.exe des de https://github.com/jordibinefa/ per afegir un controlador (driver) MQTT a l'InduSoft] | ||
Línia 96: | Línia 121: | ||
[https://play.google.com/store/apps/details?id=com.sector_gaza.modbus_viewer Modbus Viewer] | [https://play.google.com/store/apps/details?id=com.sector_gaza.modbus_viewer Modbus Viewer] | ||
− | = Presa de contacte | + | = Presa de contacte = |
− | == Placa Arduino Nano (vermella. MakeIt) == | + | [https://www.binefa.cat/IoT/01_conjunt01.pdf Conjunt IoT. Prova inicial del maquinari] |
+ | |||
+ | [https://www.binefa.cat/IoT/02_ttncat_taller_presentacio_mkrwan1300.pdf The Things Network.cat - Xarxa comunitària per a l’Internet de les Coses] | ||
+ | |||
+ | [https://www.binefa.cat/IoT/03_introLoRaWAN.pdf Introducció a LoRaWAN] | ||
+ | |||
+ | [https://www.binefa.cat/IoT/04_conjunt02.pdf Conjunt IoT. Prova de connectivitat a The Things Network] | ||
+ | |||
+ | [https://www.binefa.cat/IoT/05_lorawan_usPractic.pdf Ampliació de la connectivitat a The Things Network] | ||
+ | |||
+ | == Placa S4A Programming Learning Board (S4A PLB) amb Arduino Nano (Placa S4A PLB vermella. MakeIt) == | ||
+ | Pugeu el codi [https://github.com/jordibinefa/arduino-IDE-codes/tree/master/S4AFirmware16 S4AFirmware16.ino] a la placa S4A PLB i fem proves amb l'[http://s4a.cat/ Scratch For Arduino] | ||
+ | |||
+ | [http://makeit.cat/ Pàgina oficial de Make it! (kit que fa servir la placa S4A Programming Learning Board)] | ||
+ | |||
+ | [https://electronics.cat/git/?p=s4aPLB.git Arxius de disseny en KiCad de la placa S4A Programming Learning Board] | ||
+ | |||
+ | [https://www.binefa.cat/blog/?p=330 Xerrada sobre S4A PLB / Make It! a la llibreria Hispano Americana] (pdf i codis -Scratch, ArduBlock i C d'Arduino-) | ||
+ | |||
== Placa witty ESP8266 == | == Placa witty ESP8266 == | ||
− | == Placa IoT (blanca. ttn.cat) == | + | [[Posada en marxa de la placa witty ESP8266]] |
+ | |||
+ | == Placa IoT (Placa IoT blanca. ttn.cat) == | ||
+ | [https://www.binefa.cat/IoT/kicad/iot_01.pdf Esquema de la placa IoT blanca] | ||
+ | |||
+ | [https://www.electronics.cat/git/?p=IoT_ttnCat.git Arxius de disseny en KiCad de la placa IoT ttn.cat] | ||
+ | |||
=== Placa ESP32 (TTGO) === | === Placa ESP32 (TTGO) === | ||
+ | Posada en marxa de la placa amb la pantalla Nextion, l'OLED i els relés connectats a l'extensor I2C PCF8574. | ||
[https://www.espressif.com/sites/default/files/documentation/esp32_hardware_design_guidelines_en.pdf ESP32 Hardware Design Guidelines] | [https://www.espressif.com/sites/default/files/documentation/esp32_hardware_design_guidelines_en.pdf ESP32 Hardware Design Guidelines] | ||
=== Raspberry Pi === | === Raspberry Pi === | ||
− | + | Accés a la Raspberry Pi mitjançant SSH amb la IP mostrada a la pantalla OLED. Aturada del programa stats. Detecció de tots els dispositius I2C connectats a la placa. Prova dels relés fent servir Python. Posar la imatge del gatet a la pantalla OLED. Verificació de funcionament dels serveis NodeRED i mosquitto, així com de la instal·lació dels nodes ''node-red-contrib-ttn'' i ''node-red-contrib-modbustcp-no-pooling''. Prova d'accés al NodeRED pel navegador i el port 1880. | |
+ | |||
+ | [[Instal·lació dels nodes node-red-contrib-ttn i node-red-contrib-modbustcp-no-pooling a la Raspberry Pi]] | ||
[https://webofthings.org/wp-content/uploads/2016/10/pi-gpio.png Distribució dels pins del GPIO] | [https://webofthings.org/wp-content/uploads/2016/10/pi-gpio.png Distribució dels pins del GPIO] | ||
Línia 118: | Línia 170: | ||
= Perifèrics sense bus de comunicació = | = Perifèrics sense bus de comunicació = | ||
− | == Convertidors bidireccionals (3,3V <-> 5V). Font d'alimentació de 5V a 3,3V == | + | == Convertidors bidireccionals. Font d'alimentació de 5V a 3,3V == |
+ | === Convertidors bidireccionals (3,3V <-> 5V) === | ||
+ | [https://learn.sparkfun.com/tutorials/bi-directional-logic-level-converter-hookup-guide Bi-Directional Logic Level Converter Hookup Guide] (Level shifter) | ||
+ | |||
+ | [http://www.ti.com/logic-circuit/voltage-level-translation/overview.html Voltage level translation] | ||
+ | |||
+ | [http://www.hagtech.com/pdf/translator.pdf Two Transistors Form Bidirectional Level Translator] | ||
+ | |||
+ | [http://www.electronics.cat/php/common/index.php?lang=ca&page=508 3Bpi - Pi de les Tres Branques] | ||
+ | |||
+ | == Font d'alimentació de 5V a 3,3V == | ||
+ | [https://www.aliexpress.com/item/High-Quality-5PCS-5V-to-3-3V-For-DC-DC-Step-Down-Power-Supply-Buck-Module/32774098119.html Mòdul AMS1117 LDO 800mA] | ||
== Botons. Concepte de pull-up == | == Botons. Concepte de pull-up == | ||
+ | [https://2minutetech.wordpress.com/2015/11/23/pull-up-and-pull-down-in-2-minutes/ Pull-up and pull-down in 2 minutes!] | ||
+ | |||
+ | [https://www.electronics-tutorials.ws/io/input-interfacing-circuits.html Input Interfacing Circuits] | ||
== Microrruptors == | == Microrruptors == | ||
+ | [https://en.wikipedia.org/wiki/Miniature_snap-action_switch Miniature snap-action switch] | ||
+ | |||
+ | [https://learn.sparkfun.com/tutorials/switch-basics Switch Basics] | ||
== Relés Reed == | == Relés Reed == | ||
+ | [https://www.pickeringrelay.com/introduction-reed-relay-basics-part-1/ Reed Relay basics] | ||
== Relés de bobina == | == Relés de bobina == | ||
+ | [http://www.xtec.cat/~ccapell/rele/rele.htm Funcionament d'un relé] | ||
+ | |||
+ | == Relés d'enclavament == | ||
+ | [http://www.hongfa.com/pro/pdf/HFD2_en.pdf HFD2/005-M-L2-D] | ||
== Detecció per infrarojos == | == Detecció per infrarojos == | ||
=== Detectors de seguidors de línies === | === Detectors de seguidors de línies === | ||
+ | [https://learn.sparkfun.com/tutorials/sparkfun-inventors-kit-for-redbot/experiment-6-line-following-with-ir-sensors Experiment 6: Line Following with IR Sparkfun Sensors] | ||
+ | |||
=== PIR === | === PIR === | ||
+ | [http://www.rfwireless-world.com/Articles/motion-sensor-basics-and-motion-sensor-types.html motion sensor basics | motion sensor types] | ||
+ | |||
+ | [http://www.nutsvolts.com/magazine/article/security-electronics-systems-and-circuits-part-1 SECURITY SYSTEM BASICS] | ||
== Potenciòmetres == | == Potenciòmetres == | ||
+ | [https://randomnerdtutorials.com/electronics-basics-how-a-potentiometer-works/ Electronics Basics – How a Potentiometer Works] | ||
== Encoders == | == Encoders == | ||
+ | [https://howtomechatronics.com/tutorials/arduino/rotary-encoder-works-use-arduino/ How Rotary Encoder Works and How To Use It with Arduino] | ||
== Sensors tàctils == | == Sensors tàctils == | ||
+ | [https://www.electronicshub.org/touch-sensors/ Touch Sensors] | ||
+ | |||
+ | [http://www.esp32learning.com/code/esp32-capacitive-touch-example.php ESP32 capacitive touch example] | ||
== Pont en H. Motors == | == Pont en H. Motors == | ||
+ | [https://howtomechatronics.com/tutorials/arduino/arduino-dc-motor-control-tutorial-l298n-pwm-h-bridge/ Arduino DC Motor Control Tutorial – L298N | PWM | H-Bridge] | ||
+ | |||
+ | [http://www.instructables.com/id/Tutorial-for-MD-L298-Motor-Driver-Module/ Tutorial for MD-L298 Motor Driver Module] | ||
== Servomotors == | == Servomotors == | ||
+ | [https://www.luisllamas.es/controlar-un-servo-con-arduino/ Controlar un servo con Arduino] | ||
== Sensor ultrasònic == | == Sensor ultrasònic == | ||
+ | [https://howtomechatronics.com/tutorials/arduino/ultrasonic-sensor-hc-sr04/ Ultrasonic Sensor HC-SR04 and Arduino Tutorial] | ||
+ | |||
+ | [https://randomnerdtutorials.com/complete-guide-for-ultrasonic-sensor-hc-sr04/ Complete Guide for Ultrasonic Sensor HC-SR04 with Arduino] | ||
= Perifèrics amb bus de comunicació = | = Perifèrics amb bus de comunicació = | ||
== One Wire Interface == | == One Wire Interface == | ||
− | === | + | === DS18B20 === |
[https://hackernoon.com/get-on-the-good-foot-with-micropython-part-2-e1f2efaad50b Exemple en micropython de comunicació MQTT amb un ESP32 i el sensor DS18B20 (One Wire Interface)] | [https://hackernoon.com/get-on-the-good-foot-with-micropython-part-2-e1f2efaad50b Exemple en micropython de comunicació MQTT amb un ESP32 i el sensor DS18B20 (One Wire Interface)] | ||
+ | |||
+ | [https://rohling-de.blogspot.com/2017/03/dallas-18b20-temperature-sensor.html Using Dallas 18B20 temperature sensor on Arduino] | ||
== SPI == | == SPI == | ||
=== Sensor de temperatura, humitat i altímetre. BME280 === | === Sensor de temperatura, humitat i altímetre. BME280 === | ||
+ | Mode SPI: | ||
+ | A la línia 34 de [https://github.com/jordibinefa/arduino-IDE-libraries/blob/master/BlueDot_BME280_Library/examples/BME280_WeatherStation/BME280_WeatherStation.ino BME280_WeatherStation.ino] assegureu-vos de tenir: | ||
+ | |||
+ | bme280.parameter.communication = 2; | ||
+ | |||
+ | Connexió a la [https://www.aliexpress.com/item/1PCS-GY-BME280-3-3-precision-altimeter-atmospheric-pressure-BME280-sensor-module/32853751253.html placa]. | ||
+ | VCC VCC | ||
+ | GND GND | ||
+ | SCL SCK (13) | ||
+ | SDA MOSI (11) | ||
+ | CSB CS (10) // bme280.parameter.SPI_cs = 2; <-- Canvieu el 2 per un 10 | ||
+ | SDO MISO (12) | ||
+ | |||
+ | Connector P2 a la [https://binefa.cat/blog/?p=330 placa S4A PLB] | ||
+ | |||
+ | +----------+ +----------+ | ||
+ | | GND SCK | | GND 13 | | ||
+ | | MISO MOSI| | 12 11 | | ||
+ | CS x | 10 9 | | ||
+ | | x A4 | | 8 18 | | ||
+ | | A5 +5V | | 19 +5V | | ||
+ | +----------+ +----------+ | ||
+ | |||
+ | [https://learn.adafruit.com/adafruit-bme280-humidity-barometric-pressure-temperature-sensor-breakout/downloads Adafruit BME280 Humidity + Barometric Pressure + Temperature Sensor Breakout] | ||
+ | |||
+ | [https://github.com/mgo-tec/ESP32_BME280_SPI BME280 library for SPI interface ( for Arduino - ESP32 )] | ||
+ | |||
+ | [http://cactus.io/hookups/sensors/barometric/bme280/hookup-arduino-to-bme280-barometric-pressure-sensor-spi How to Hookup BME280 Sensor to Arduino using SPI] | ||
+ | |||
+ | [https://robotzero.one/esp8266-two-bme280-sensors-spi/ ESP8266 with two BME280 Sensors over SPI] | ||
=== Ethernet. ENC28J60 === | === Ethernet. ENC28J60 === | ||
+ | [https://www.binefa.cat/blog/?p=50 Modbus TCP/IP on Arduino Nano + ENC28J60] | ||
+ | |||
+ | [https://naylampmechatronics.com/blog/17_Tutorial-M%C3%B3dulo-Ethernet-ENC28J60-y-Arduino.html Tutorial Módulo Ethernet ENC28J60 y Arduino] | ||
+ | |||
+ | [https://esp8266hints.wordpress.com/tag/enc28j60/ Cicero’s Ethernet Project] (ENC28J60 connected at ESP8266) | ||
=== RFID === | === RFID === | ||
+ | [http://www.instructables.com/id/How-to-Use-RFID-RC522-With-Arduino-Nano/ How to Use RFID RC522 With Arduino Nano] | ||
+ | |||
+ | [https://github.com/Jorgen-VikingGod/ESP8266-MFRC522 ESP8266-MFRC522] | ||
== I2C == | == I2C == | ||
=== Expansor d'entrades/sortides PCF8574 === | === Expansor d'entrades/sortides PCF8574 === | ||
+ | [https://github.com/RobTillaart/Arduino/tree/master/libraries/PCF8574 Biblioteca PCF8574 d'en Rob Tillaart] | ||
+ | |||
+ | [https://github.com/jordibinefa/arduino-IDE-codes/blob/master/esp32_Nextion_02b_/esp32_Nextion_02b_.ino Un exemple d'ús] | ||
=== Sensor de temperatura, humitat i altímetre. BME280 === | === Sensor de temperatura, humitat i altímetre. BME280 === | ||
+ | Mode I2C: | ||
+ | |||
+ | A la línia 34 de [https://github.com/jordibinefa/arduino-IDE-libraries/blob/master/BlueDot_BME280_Library/examples/BME280_WeatherStation/BME280_WeatherStation.ino BME280_WeatherStation.ino] assegureu-vos de tenir: | ||
+ | |||
+ | bme280.parameter.communication = 0; | ||
+ | |||
+ | Connexió a la [https://www.aliexpress.com/item/1PCS-GY-BME280-3-3-precision-altimeter-atmospheric-pressure-BME280-sensor-module/32853751253.html placa]. | ||
+ | VCC VCC S4A PLB ESP32 | ||
+ | GND GND | ||
+ | SCL SCK (19) (A5) (4) | ||
+ | SDA MOSI (18) (A4) (15) | ||
+ | CSB CS | ||
+ | SDO MISO | ||
+ | |||
+ | Connector P2 a la [https://binefa.cat/blog/?p=330 placa S4A PLB] | ||
+ | |||
+ | +----------+ +----------+ | ||
+ | | GND SCK | | GND 13 | | ||
+ | | MISO MOSI| | 12 11 | | ||
+ | CS x | 10 9 | | ||
+ | | x A4 | | 8 18 | | ||
+ | | A5 +5V | | 19 +5V | | ||
+ | +----------+ +----------+ | ||
+ | |||
+ | Recordeu de fer servir un scanner I2C ([https://github.com/jordibinefa/arduino-IDE-codes/blob/master/s4a_i2c_scanner/s4a_i2c_scanner.ino s4a_i2c_scanner.ino] o [https://github.com/jordibinefa/arduino-IDE-codes/blob/master/esp32_i2cScanner/esp32_i2cScanner.ino esp32_i2cScanner.ino]) per saber l'adreça (sovint és la 0x76) | ||
+ | |||
+ | bme280.parameter.I2CAddress = 0x77; <-- Canvieu el 0x77 per 0x76 o l'adreça I2C trobada. | ||
+ | |||
+ | |||
+ | |||
+ | [https://learn.adafruit.com/adafruit-bme280-humidity-barometric-pressure-temperature-sensor-breakout/downloads Adafruit BME280 Humidity + Barometric Pressure + Temperature Sensor Breakout] | ||
+ | |||
+ | [https://www.binefa.cat/dam/m09uf3_m15uf1/20180410/BME280_WeatherStation_03/BME280_WeatherStation_03.ino BME280_WeatherStation_03.ino] | ||
=== Pantalla OLED === | === Pantalla OLED === | ||
[https://github.com/olikraus/u8g2/wiki U8g2. Monochrome graphics library for embedded devices] | [https://github.com/olikraus/u8g2/wiki U8g2. Monochrome graphics library for embedded devices] | ||
+ | |||
+ | |||
+ | === Entrades analògiques (ADS1115) === | ||
+ | [https://learn.adafruit.com/raspberry-pi-analog-to-digital-converters/ads1015-slash-ads1115 ADS1015 / ADS1115 on Raspberry Pi using Python] by Adafruit | ||
+ | |||
+ | [http://www.bristolwatch.com/rpi/ads1115.html ADS1115 4-Channel ADC Uses I2C with Raspberry Pi] Using C and Wiring Pi library | ||
== UART == | == UART == | ||
=== Software Serial === | === Software Serial === | ||
+ | [https://www.arduino.cc/en/Reference/softwareSerial SoftwareSerial Library] | ||
=== HMISerial === | === HMISerial === | ||
+ | [https://github.com/jordibinefa/arduino-IDE-codes/blob/master/esp32_generic/esp32_serialPass/esp32_serialPass.ino esp32_serialPass.ino Equivalent al Software Serial però en maquinari real sobre l'ESP32] | ||
=== Bluetooth === | === Bluetooth === | ||
Línia 174: | Línia 349: | ||
= Comunicacions industrials amb port sèrie i ModBus RTU. Introducció a Indusoft = | = Comunicacions industrials amb port sèrie i ModBus RTU. Introducció a Indusoft = | ||
== Ús d'Indusoft fent servir el port sèrie == | == Ús d'Indusoft fent servir el port sèrie == | ||
− | [https://binefa.cat/training/indusoft/indusoftIntro00.pdf Introducció al disseny amb InduSoft] | + | [https://www.binefa.cat/training/indusoft/indusoftIntro00.pdf Introducció al disseny amb InduSoft] |
− | [https://binefa.cat/training/indusoft/indusoft00.pdf Introducció a les comunicacions (1a part)] | + | [https://www.binefa.cat/training/indusoft/indusoft00.pdf Introducció a les comunicacions (1a part)] |
− | [https://binefa.cat/training/indusoft/indusoft02.pdf Introducció a les comunicacions (2a part)] | + | [https://www.binefa.cat/training/indusoft/indusoft02.pdf Introducció a les comunicacions (2a part)] |
− | == | + | == Exemples d'ús fent servir ModBus RTU == |
− | + | [https://www.binefa.cat/IoT/modbus/indusoft/modbusRTU/ Exemple de ModBus RTU fent servir InduSoft i Arduino] | |
− | + | [https://www.binefa.cat/IoT/modbus/rtu/nano/ Exemple de ModBus RTU fent servir NodeRED i Arduino] | |
+ | |||
+ | [https://www.binefa.cat/IoT/modbus/rtu/esp32/ Exemple de ModBus RTU fent servir NodeRED i ESP32 (amb la placa IoT PLB)] | ||
= Comunicacions amb xarxa Ethernet. Introducció al NodeRED = | = Comunicacions amb xarxa Ethernet. Introducció al NodeRED = | ||
+ | [https://www.binefa.cat/IoT/teoria/ethernetTcpUdp_00.pdf TCP/UDP Capa de transport d'Ethernet] | ||
+ | |||
== Ús del NodeRED == | == Ús del NodeRED == | ||
+ | [https://www.binefa.cat/IoT/nodeRed/nodeRed01.pdf Introducció al Node-RED] | ||
+ | |||
+ | [https://www.binefa.cat/IoT/nodeRed/prj/numAleat/ Exemple de generació de número aleatori amb NodeRED] | ||
+ | |||
+ | [https://www.binefa.cat/IoT/nodeRed/prj/statsCtrl/ Interaccionar amb ordres de terminal amb NodeRED] | ||
+ | |||
+ | [https://www.binefa.cat/IoT/nodeRed/prj/ttnCtrl/ Interacció amb The Things Network des de NodeRED] (Fet servir de facto a la prova de bidireccionalitat) | ||
+ | <!-- Després reproduir-ho per a MQTT --> | ||
== Comunicació UDP == | == Comunicació UDP == | ||
+ | [https://github.com/jordibinefa/arduino-IDE-codes/tree/master/esp8266_udpServer_01b esp8266_udpServer_01.ino] Codi UDP per a ESP8266 | ||
− | + | [https://www.binefa.cat/IoT/nodeRed/prj/udpServer/udpServer_nodered_code.txt Codi NodeRED per a esp8266_udpServer_01.ino i esp32_udpServer_01b] | |
− | + | Verifiqueu l'adreça del vostre PCF8574 fent servir [https://github.com/jordibinefa/arduino-IDE-codes/tree/master/esp32_i2cScanner_02 esp32_i2cScanner_02.ino] | |
− | |||
− | + | [https://github.com/jordibinefa/arduino-IDE-codes/tree/master/esp32_udpServer_01b esp32_udpServer_01b] Codi UDP per a ESP32 | |
− | == | + | == Comunicació ModBus TCP == |
+ | [https://www.binefa.cat/php/doc/modbus/ El segon vídeo explica i compara Modbus RTU i Modbus TCP] | ||
− | + | [https://www.binefa.cat/IoT/modbus/ Arxius per treballar amb Modbus TCP] | |
== OPC-UA == | == OPC-UA == | ||
− | + | [[Instal·lació de l'OPC-UA a la Raspberry Pi, fent servir Python, i control des d'Indusoft]] | |
= Protocols específics d'Internet de les Coses = | = Protocols específics d'Internet de les Coses = | ||
== MQTT == | == MQTT == | ||
+ | [https://www.binefa.cat/IoT/teoria/mqtt_00.pdf Introducció a MQTT] | ||
+ | |||
+ | QoS. Brokers remots i locals. | ||
+ | |||
+ | === MQTT i NodeRED === | ||
+ | [https://www.binefa.cat/IoT/nodeRed/prj/mqtt_esp8266_esp32/ex00/ Exemple amb MQTT i NodeRED emprant ESP8266 i ESP32] | ||
+ | |||
+ | [https://www.binefa.cat/IoT/nodeRed/prj/mqtt_esp8266_esp32/ex01/ Exercici amb MQTT i NodeRED emprant ESP8266] | ||
+ | |||
+ | [https://www.binefa.cat/IoT/nodeRed/prj/modbusCtrl/ ModBus TCP amb NodeRED] (Es farà servir quan s'expliqui el protocol ModBus TCP) | ||
+ | |||
=== Mosquitto local a l'ordinador === | === Mosquitto local a l'ordinador === | ||
+ | [https://www.vultr.com/docs/how-to-install-mosquitto-mqtt-broker-server-on-ubuntu-16-04 How to Install Mosquitto MQTT Broker/Server on Ubuntu 16.04] | ||
+ | |||
+ | [http://www.steves-internet-guide.com/downloads/ Instal·lació de Mosquitto a Windows] | ||
=== Mosquitto local a la Raspberry Pi === | === Mosquitto local a la Raspberry Pi === | ||
+ | [https://randomnerdtutorials.com/how-to-install-mosquitto-broker-on-raspberry-pi/ How to Install Mosquitto Broker on Raspberry Pi] | ||
− | === | + | === Ús a Indusoft === |
− | + | [https://github.com/jordibinefa/ms-drivers-and-tools/blob/master/MQTT.1.5.exe Controlador MQTT per a InduSoft] | |
− | |||
− | + | [https://www.binefa.cat/IoT/mqtt/indusoftMQTT.png Configuració d'Indusoft per a fer servir MQTT] | |
=== Ús a Android (MQTTDash) === | === Ús a Android (MQTTDash) === | ||
+ | [https://binefa.cat/IoT/mqtt/MQTT_Dash/ Configuració de MQTT Dash] | ||
=== Exemples === | === Exemples === | ||
Línia 224: | Línia 427: | ||
== CoAP == | == CoAP == | ||
+ | [http://coap.technology/ CoAP. RFC 7252 Constrained Application Protocol] | ||
+ | |||
+ | [https://github.com/automote/ESP-CoAP thingTronics ESP8266 12E Arduino Library] | ||
+ | |||
+ | [https://github.com/hirotakaster/CoAP-simple-library CoAP simple server, client library for Arduino IDE, ESP32.] | ||
= LoRaWAN = | = LoRaWAN = | ||
− | == Introducció. Bones pràctiques == | + | == Introducció == |
− | LoRa | + | El sistema de comunicació LoRa va ser inventat per [https://www.semtech.com/ SemTech] per a la lectura de comptadors de llum. |
− | + | ||
− | + | === LoRa vs LoRaWAN === | |
+ | [[Fitxer:Lora_vs_lorawan.png|center|caption]] | ||
+ | |||
+ | [http://www.rfwireless-world.com/Terminology/LoRa-vs-LoRaWAN.html LoRa vs LoRaWAN-Difference between LoRa and LoRaWAN] | ||
+ | |||
+ | === Bones pràctiques === | ||
+ | En general, la normativa europea de les freqüències de ràdio al voltant dels 868MHz diu que tan sols podem fer un ús d'un 1% per hora de l'espectre (1% de 3600 segons = 36 segons per hora). '''Als missatges de pujada''' (''uplink''), els que tramet el node cap a les passarel·les, '''la recomanació de bones pràctiques de The Things Network és fer servir l'espectre 30 segons al dia''' (per tant, és 24 cops més restrictiva que la normativa europea) '''de temps a l'aire''' (''TOA'', Time on Air). Depenent de les característiques de comunicació del missatge el temps a l'aire pot anar entre 30 milisegons (permetent 1000 missatges diaris) i 6 segons (permetent 5 missatges diaris). Això és degut a que els nodes fan ''broadcasting'' (emeten a tothom) i més d'una passarel·la pot capturar el mateix missatge. '''Als missatges de baixada''' (''downlink'', de la passarel·la al node) '''la recomanació de bones pràctiques de The Things Network és fer servir un màxim de 10 missatges al dia'''. | ||
+ | |||
+ | [https://www.thethingsnetwork.org/forum/t/limitations-data-rate-packet-size-30-seconds-uplink-and-10-messages-downlink-per-day-fair-access-policy/1300 Limitations: data rate, packet size, 30 seconds uplink and 10 messages downlink per day Fair Access Policy] | ||
+ | |||
+ | [https://docs.google.com/spreadsheets/d/1voGAtQAjC1qBmaVuP1ApNKs1ekgUjavHuVQIXyYSvNc/edit#gid=0 LoRa airtime calculator] | ||
+ | |||
+ | [https://www.disk91.com/2017/technology/internet-of-things-technology/all-what-you-need-to-know-about-regulation-on-rf-868mhz-for-lpwan/ All what you need to know about regulation on RF 868MHz for LPWan] | ||
+ | |||
+ | === LoRa === | ||
+ | [https://www.binefa.cat/blog/?p=327 ESP8266 and Arduino using LoRa and AES encryption] (19 / juny / 2016) | ||
+ | |||
+ | [https://www.binefa.cat/blog/?p=317 Adding AES encryption to LoRa at SX1276 on Arduino] (15 / juny / 2016) | ||
+ | |||
+ | [https://www.binefa.cat/blog/?p=311 ESP8266 library for SX1276 using LoRa and PyQt] (13 / juny / 2016) | ||
+ | |||
+ | [https://www.binefa.cat/blog/?p=292 Arduino library for SX1276 using LoRa and PyQt] (6 / juny / 2016) | ||
== The Things Network == | == The Things Network == | ||
− | + | [https://binefa.cat/IoT/lora/lorawan/ttncat_taller_presentacio_mkrwan1300.pdf Taller de presentació de The Things Network i exemple d'ús d'un termòstat emprant l'MKR WAN 1300] (Presentació de [https://thethingsnetwork.cat/index.php/The_Things_Network_Catalunya thethingsnetwork.cat]) | |
+ | |||
+ | [https://www.binefa.cat/IoT/lora/lorawan/ttncat_taller_visualitzacions.pdf Visualització de dades] (Presentació de [https://thethingsnetwork.cat/index.php/The_Things_Network_Catalunya thethingsnetwork.cat]) | ||
+ | |||
+ | [https://thethingsnetwork.cat/index.php/The_Things_Network_Catalunya Pàgina oficial de The Things Network - Catalunya] | ||
+ | |||
+ | [https://www.thethingsnetwork.org/ Pàgina oficial de The Things Network. Gestió web de passarel·les i nodes] | ||
== NodeRED. Nodes TTN i ús amb MQTT == | == NodeRED. Nodes TTN i ús amb MQTT == | ||
+ | [https://binefa.cat/IoT/lora/lorawan/lorawan_usPractic.pdf Cas pràctic d'ús de LoRaWAN. Node de TTGO connectat a The Things Network] | ||
+ | |||
+ | [[Instal·lació dels nodes node-red-contrib-ttn i node-red-contrib-modbustcp-no-pooling a la Raspberry Pi]] | ||
= Comunicació remota amb Raspberry Pi = | = Comunicació remota amb Raspberry Pi = | ||
+ | [https://binefa.cat/IoT/RPi/ordresBasiques.pdf Algunes ordres útils] | ||
− | == SSH == | + | == SSH, accés segur sense contrasenya i túnel invers SSH == |
+ | [https://www.binefa.cat/IoT/RPi/tunelSshInvers_RPi.pdf Implementació d'un túnel SSH invers] | ||
== screen == | == screen == | ||
− | + | [https://www.binefa.cat/IoT/RPi/screen.pdf screen. Persistència de les accions remotes] | |
− | |||
− | |||
− | |||
== Raspberry Pi com a punt d'accés == | == Raspberry Pi com a punt d'accés == | ||
+ | [[Raspberry Pi com a punt d'accés]] | ||
= HMI de baix cost. Pantalla tàctil Nextion = | = HMI de baix cost. Pantalla tàctil Nextion = | ||
Línia 255: | Línia 493: | ||
[https://github.com/itead/ITEADLIB_Arduino_Nextion Biblioteca original de Nextion per a Arduino] | [https://github.com/itead/ITEADLIB_Arduino_Nextion Biblioteca original de Nextion per a Arduino] | ||
− | |||
− | |||
− | |||
− | |||
== Pantalla Nextion connectada a la Raspberry Pi == | == Pantalla Nextion connectada a la Raspberry Pi == | ||
Línia 266: | Línia 500: | ||
[https://github.com/raffmont/pynextion A Python library for Nextion smart display management] | [https://github.com/raffmont/pynextion A Python library for Nextion smart display management] | ||
+ | |||
+ | [https://www.youtube.com/watch?v=Rxsw9-ia00o Nextion HMI with Raspberry PI and NodeRED] Video by [https://twitter.com/oriolrius Oriol Rius] | ||
+ | |||
+ | [https://www.youtube.com/watch?v=BzJzPV4zM4M Nextion HMI with Raspberry PI] Video by [https://twitter.com/oriolrius Oriol Rius] | ||
= Alternatives al C de l'Arduino IDE = | = Alternatives al C de l'Arduino IDE = | ||
+ | [https://www.binefa.cat/IoT/esp8266/esp8266_03.pdf ESP8266. ESP-12E Development Board] (novembre 2015) | ||
+ | |||
+ | [https://leanpub.com/kolban-ESP32 Kolban's book on ESP32] (June 2018) | ||
+ | |||
+ | [https://leanpub.com/ESP8266_ESP32 Kolban's Book on the ESP8266] (November 2016) | ||
+ | |||
== LUA == | == LUA == | ||
+ | [https://learn.adafruit.com/diy-esp8266-home-security-with-lua-and-mqtt/programming-the-esp8266-with-lua Programming the ESP8266 With Lua] | ||
+ | |||
+ | [https://hackaday.io/project/18666-luanode-for-esp32 LuaNode For ESP32] | ||
== MicroPython == | == MicroPython == | ||
Línia 280: | Línia 527: | ||
== Mongoose OS == | == Mongoose OS == | ||
+ | [https://mongoose-os.com/docs/quickstart/prog1.md Mongoose OS. Starting with JavaScript] | ||
= Visualització al núvol = | = Visualització al núvol = | ||
+ | |||
+ | [https://www.binefa.cat/IoT/lora/lorawan/ttncat_taller_visualitzacions.pdf Visualització de dades] (Presentació d'en Xose Pérez de [https://thethingsnetwork.cat/index.php/The_Things_Network_Catalunya thethingsnetwork.cat]) | ||
+ | |||
== Plotly == | == Plotly == | ||
− | [https://binefa.cat/blog/?p=361 Displaying realtime data on web using plot.ly on S4A PLB] | + | [https://www.binefa.cat/blog/?p=361 Displaying realtime data on web using plot.ly on S4A PLB] |
− | [https://binefa.cat/blog/?p=373 ESP8266’s Witty sending data to plot.ly] | + | [https://www.binefa.cat/blog/?p=373 ESP8266’s Witty sending data to plot.ly] |
== ThinkSpeak == | == ThinkSpeak == | ||
− | [https://binefa.cat/blog/?p=365 Displaying ESP8266’s LDR level on web using ThingSpeak] | + | [https://www.binefa.cat/blog/?p=365 Displaying ESP8266’s LDR level on web using ThingSpeak] |
== IoTgo == | == IoTgo == | ||
[http://iotgo.iteadstudio.com/guide Guia d'ús d'IoTgo] | [http://iotgo.iteadstudio.com/guide Guia d'ús d'IoTgo] | ||
+ | == Grafana == | ||
+ | [https://screenzone.eu/arduino-mqtt-sensor-grafana/ Display ESP8266 sensor data using Grafana and Arduino IDE] | ||
− | Grafana | + | [https://www.youtube.com/watch?v=9nZtiwD8wGc Grafana showing MQTT data served by NodeRED] Video by [https://twitter.com/oriolrius Oriol Rius] |
Revisió de 19:43, 20 març 2022
El contingut d'aquesta wiki s'anirà actualitzant durant la impartició del curs (del 25 al 29 de juny)
Programa del curset d'introducció a Internet de les Coses - juny 2018
Contingut
- 1 Seqüència de presentacions
- 2 Instal·lació de tot el programari
- 3 Presa de contacte
- 4 Perifèrics sense bus de comunicació
- 4.1 Convertidors bidireccionals. Font d'alimentació de 5V a 3,3V
- 4.2 Font d'alimentació de 5V a 3,3V
- 4.3 Botons. Concepte de pull-up
- 4.4 Microrruptors
- 4.5 Relés Reed
- 4.6 Relés de bobina
- 4.7 Relés d'enclavament
- 4.8 Detecció per infrarojos
- 4.9 Potenciòmetres
- 4.10 Encoders
- 4.11 Sensors tàctils
- 4.12 Pont en H. Motors
- 4.13 Servomotors
- 4.14 Sensor ultrasònic
- 5 Perifèrics amb bus de comunicació
- 6 Comunicacions industrials amb port sèrie i ModBus RTU. Introducció a Indusoft
- 7 Comunicacions amb xarxa Ethernet. Introducció al NodeRED
- 8 Protocols específics d'Internet de les Coses
- 9 LoRaWAN
- 10 Comunicació remota amb Raspberry Pi
- 11 HMI de baix cost. Pantalla tàctil Nextion
- 12 Alternatives al C de l'Arduino IDE
- 13 Visualització al núvol
Seqüència de presentacions
20180625
Guia de presentació pel dia 25 de juny de 2018
20180626
Guia de presentació pel dia 26 de juny de 2018
20180627
Guia de presentació pel dia 27 de juny de 2018
20180628
Guia de presentació pel dia 28 de juny de 2018
20180629
Guia de presentació pel dia 29 de juny de 2018
Instal·lació de tot el programari
Controladors
CH340
Guia d'instal·lació en pdf (document de makeit.cat)
Arxiu comprimit del controlador CH341SER.zip
Arxiu CH341SER.zip des de https://github.com/jordibinefa/
FT232
Controlador per a Windows de l'FT232
Arxiu ft232.zip des de https://github.com/jordibinefa/
IDE d'Arduino 1.8.5
Descàrrega de l'Arduino IDE per a instal·lar-ho a l'escriptori
Afegint més microcontroladors (targetes) a l'Arduino IDE
Installing additional cores -Arduino official documentation-
Afegint targeta ESP8266
Afegint la targeta ESP8266 a l'IDE d'Arduino (NodeMCU1.0)
Afegint targeta ESP32
Installing the ESP32 Board in Arduino IDE (Windows instructions)
Afegint la targeta ESP32 a l'IDE d'Arduino (DOIT ESP32 DEVKIT V1)
Afegint targeta Arduino MKR WAN 1300
Guia completa de l'Arduino MKR WAN 1300 d'en Xose Pérez
Getting Started with the Arduino MKR WAN 1300 -Arduino official documentation-
Guia de l'Arduino MKR WAN 1300 d'en Gonzalo Casas
How to send and receive data with the MKR WAN 1300 LoRa module -Arduino official documentation-
MKRWAN library -Arduino official documentation-
Pantalla OLED
Programari convertidor d'arxiu .bmp a codi
putty / gtkterm
El gtkterm és als dipòsits de Debian i Ubuntu. Recordeu d'afegir el vostre usuari al grup dialout
Arxiu putty.exe des de https://github.com/jordibinefa/
git
Guia d'instal·lació per a qualsevol sistema operatiu
Filezilla / Nautilus
FileZilla Client sftp://
Nextion Editor
Descàrrega de l'editor de les pantalles tàctils Nextion
Python
Instal·leu les dues versions de Python més populars, Python 2.7 i Python3 Un cop heu instal·lat el Python3, aneu a la carpeta C:\Users\EL_VOSTRE_USUARI\AppData\Local\Programs\Python\Python36-32 i reanomeneu python.exe per python3.exe, i després afegiu la ruta al PATH. Per a que faci efecte heu de sortir i tornar a entrar a la sessió.
Instal·lació de PyQt4 per Python 2.7 Seleccioneu PyQt4-4.10-gpl-Py2.7-Qt4.8.4-x64.exe si la vostra màquina és de 64 bits
Instal·lació de PyQt5. Funciona amb Python3 (Una altra manera és python3 -m pip install pyqt5)
Instal·lació de pyserial (Una altra manera és python3 -m pip install pyserial)
How to setup Raspbian Stretch Lite on Raspberry Pi 3 to run Python 3 applications
NodeRED
Instal·lació de NodeRED a una distribució de Linux basada en Debian
Instal·lació de NodeRED a Windows
Instal·lació de NodeRED a la Raspberry Pi
Mosquitto
Instal·lació de mosquitto a Linux
Instal·lació de mosquitto a Windows
Indusoft
Descarregueu la versió acadèmica d'InduSoft (InduSoft Educational) o compartim en un disc dur l'arxiu comprimit de 900MB.
Gestió de les llicències d'ús acadèmic (de la pàgina 4 a la 7 del pdf)
Aplicacions de mòbil
Presa de contacte
Conjunt IoT. Prova inicial del maquinari
The Things Network.cat - Xarxa comunitària per a l’Internet de les Coses
Conjunt IoT. Prova de connectivitat a The Things Network
Ampliació de la connectivitat a The Things Network
Placa S4A Programming Learning Board (S4A PLB) amb Arduino Nano (Placa S4A PLB vermella. MakeIt)
Pugeu el codi S4AFirmware16.ino a la placa S4A PLB i fem proves amb l'Scratch For Arduino
Pàgina oficial de Make it! (kit que fa servir la placa S4A Programming Learning Board)
Arxius de disseny en KiCad de la placa S4A Programming Learning Board
Xerrada sobre S4A PLB / Make It! a la llibreria Hispano Americana (pdf i codis -Scratch, ArduBlock i C d'Arduino-)
Placa witty ESP8266
Posada en marxa de la placa witty ESP8266
Placa IoT (Placa IoT blanca. ttn.cat)
Esquema de la placa IoT blanca
Arxius de disseny en KiCad de la placa IoT ttn.cat
Placa ESP32 (TTGO)
Posada en marxa de la placa amb la pantalla Nextion, l'OLED i els relés connectats a l'extensor I2C PCF8574.
ESP32 Hardware Design Guidelines
Raspberry Pi
Accés a la Raspberry Pi mitjançant SSH amb la IP mostrada a la pantalla OLED. Aturada del programa stats. Detecció de tots els dispositius I2C connectats a la placa. Prova dels relés fent servir Python. Posar la imatge del gatet a la pantalla OLED. Verificació de funcionament dels serveis NodeRED i mosquitto, així com de la instal·lació dels nodes node-red-contrib-ttn i node-red-contrib-modbustcp-no-pooling. Prova d'accés al NodeRED pel navegador i el port 1880.
Distribució dels pins del GPIO
An unofficial Python port of Gordon's WiringPi library
Perifèrics sense bus de comunicació
Convertidors bidireccionals. Font d'alimentació de 5V a 3,3V
Convertidors bidireccionals (3,3V <-> 5V)
Bi-Directional Logic Level Converter Hookup Guide (Level shifter)
Two Transistors Form Bidirectional Level Translator
3Bpi - Pi de les Tres Branques
Font d'alimentació de 5V a 3,3V
Botons. Concepte de pull-up
Pull-up and pull-down in 2 minutes!
Microrruptors
Relés Reed
Relés de bobina
Relés d'enclavament
Detecció per infrarojos
Detectors de seguidors de línies
Experiment 6: Line Following with IR Sparkfun Sensors
PIR
motion sensor basics | motion sensor types
Potenciòmetres
Electronics Basics – How a Potentiometer Works
Encoders
How Rotary Encoder Works and How To Use It with Arduino
Sensors tàctils
ESP32 capacitive touch example
Pont en H. Motors
Arduino DC Motor Control Tutorial – L298N | PWM | H-Bridge
Tutorial for MD-L298 Motor Driver Module
Servomotors
Controlar un servo con Arduino
Sensor ultrasònic
Ultrasonic Sensor HC-SR04 and Arduino Tutorial
Complete Guide for Ultrasonic Sensor HC-SR04 with Arduino
Perifèrics amb bus de comunicació
One Wire Interface
DS18B20
Exemple en micropython de comunicació MQTT amb un ESP32 i el sensor DS18B20 (One Wire Interface)
Using Dallas 18B20 temperature sensor on Arduino
SPI
Sensor de temperatura, humitat i altímetre. BME280
Mode SPI: A la línia 34 de BME280_WeatherStation.ino assegureu-vos de tenir:
bme280.parameter.communication = 2;
Connexió a la placa.
VCC VCC GND GND SCL SCK (13) SDA MOSI (11) CSB CS (10) // bme280.parameter.SPI_cs = 2; <-- Canvieu el 2 per un 10 SDO MISO (12)
Connector P2 a la placa S4A PLB
+----------+ +----------+ | GND SCK | | GND 13 | | MISO MOSI| | 12 11 | CS x | 10 9 | | x A4 | | 8 18 | | A5 +5V | | 19 +5V | +----------+ +----------+
Adafruit BME280 Humidity + Barometric Pressure + Temperature Sensor Breakout
BME280 library for SPI interface ( for Arduino - ESP32 )
How to Hookup BME280 Sensor to Arduino using SPI
ESP8266 with two BME280 Sensors over SPI
Ethernet. ENC28J60
Modbus TCP/IP on Arduino Nano + ENC28J60
Tutorial Módulo Ethernet ENC28J60 y Arduino
Cicero’s Ethernet Project (ENC28J60 connected at ESP8266)
RFID
How to Use RFID RC522 With Arduino Nano
I2C
Expansor d'entrades/sortides PCF8574
Biblioteca PCF8574 d'en Rob Tillaart
Sensor de temperatura, humitat i altímetre. BME280
Mode I2C:
A la línia 34 de BME280_WeatherStation.ino assegureu-vos de tenir:
bme280.parameter.communication = 0;
Connexió a la placa.
VCC VCC S4A PLB ESP32 GND GND SCL SCK (19) (A5) (4) SDA MOSI (18) (A4) (15) CSB CS SDO MISO
Connector P2 a la placa S4A PLB
+----------+ +----------+ | GND SCK | | GND 13 | | MISO MOSI| | 12 11 | CS x | 10 9 | | x A4 | | 8 18 | | A5 +5V | | 19 +5V | +----------+ +----------+
Recordeu de fer servir un scanner I2C (s4a_i2c_scanner.ino o esp32_i2cScanner.ino) per saber l'adreça (sovint és la 0x76)
bme280.parameter.I2CAddress = 0x77; <-- Canvieu el 0x77 per 0x76 o l'adreça I2C trobada.
Adafruit BME280 Humidity + Barometric Pressure + Temperature Sensor Breakout
Pantalla OLED
U8g2. Monochrome graphics library for embedded devices
Entrades analògiques (ADS1115)
ADS1015 / ADS1115 on Raspberry Pi using Python by Adafruit
ADS1115 4-Channel ADC Uses I2C with Raspberry Pi Using C and Wiring Pi library
UART
Software Serial
HMISerial
esp32_serialPass.ino Equivalent al Software Serial però en maquinari real sobre l'ESP32
Bluetooth
Comunicacions industrials amb port sèrie i ModBus RTU. Introducció a Indusoft
Ús d'Indusoft fent servir el port sèrie
Introducció al disseny amb InduSoft
Introducció a les comunicacions (1a part)
Introducció a les comunicacions (2a part)
Exemples d'ús fent servir ModBus RTU
Exemple de ModBus RTU fent servir InduSoft i Arduino
Exemple de ModBus RTU fent servir NodeRED i Arduino
Exemple de ModBus RTU fent servir NodeRED i ESP32 (amb la placa IoT PLB)
Comunicacions amb xarxa Ethernet. Introducció al NodeRED
TCP/UDP Capa de transport d'Ethernet
Ús del NodeRED
Exemple de generació de número aleatori amb NodeRED
Interaccionar amb ordres de terminal amb NodeRED
Interacció amb The Things Network des de NodeRED (Fet servir de facto a la prova de bidireccionalitat)
Comunicació UDP
esp8266_udpServer_01.ino Codi UDP per a ESP8266
Codi NodeRED per a esp8266_udpServer_01.ino i esp32_udpServer_01b
Verifiqueu l'adreça del vostre PCF8574 fent servir esp32_i2cScanner_02.ino
esp32_udpServer_01b Codi UDP per a ESP32
Comunicació ModBus TCP
El segon vídeo explica i compara Modbus RTU i Modbus TCP
Arxius per treballar amb Modbus TCP
OPC-UA
Instal·lació de l'OPC-UA a la Raspberry Pi, fent servir Python, i control des d'Indusoft
Protocols específics d'Internet de les Coses
MQTT
QoS. Brokers remots i locals.
MQTT i NodeRED
Exemple amb MQTT i NodeRED emprant ESP8266 i ESP32
Exercici amb MQTT i NodeRED emprant ESP8266
ModBus TCP amb NodeRED (Es farà servir quan s'expliqui el protocol ModBus TCP)
Mosquitto local a l'ordinador
How to Install Mosquitto MQTT Broker/Server on Ubuntu 16.04
Instal·lació de Mosquitto a Windows
Mosquitto local a la Raspberry Pi
How to Install Mosquitto Broker on Raspberry Pi
Ús a Indusoft
Controlador MQTT per a InduSoft
Configuració d'Indusoft per a fer servir MQTT
Ús a Android (MQTTDash)
Exemples
Exemple en micropython de comunicació MQTT amb un ESP32 i el sensor BME280 (I2C)
Exemple en micropython de comunicació MQTT amb un ESP32 i el sensor DS18B20 (One Wire Interface)
CoAP
CoAP. RFC 7252 Constrained Application Protocol
thingTronics ESP8266 12E Arduino Library
CoAP simple server, client library for Arduino IDE, ESP32.
LoRaWAN
Introducció
El sistema de comunicació LoRa va ser inventat per SemTech per a la lectura de comptadors de llum.
LoRa vs LoRaWAN
LoRa vs LoRaWAN-Difference between LoRa and LoRaWAN
Bones pràctiques
En general, la normativa europea de les freqüències de ràdio al voltant dels 868MHz diu que tan sols podem fer un ús d'un 1% per hora de l'espectre (1% de 3600 segons = 36 segons per hora). Als missatges de pujada (uplink), els que tramet el node cap a les passarel·les, la recomanació de bones pràctiques de The Things Network és fer servir l'espectre 30 segons al dia (per tant, és 24 cops més restrictiva que la normativa europea) de temps a l'aire (TOA, Time on Air). Depenent de les característiques de comunicació del missatge el temps a l'aire pot anar entre 30 milisegons (permetent 1000 missatges diaris) i 6 segons (permetent 5 missatges diaris). Això és degut a que els nodes fan broadcasting (emeten a tothom) i més d'una passarel·la pot capturar el mateix missatge. Als missatges de baixada (downlink, de la passarel·la al node) la recomanació de bones pràctiques de The Things Network és fer servir un màxim de 10 missatges al dia.
All what you need to know about regulation on RF 868MHz for LPWan
LoRa
ESP8266 and Arduino using LoRa and AES encryption (19 / juny / 2016)
Adding AES encryption to LoRa at SX1276 on Arduino (15 / juny / 2016)
ESP8266 library for SX1276 using LoRa and PyQt (13 / juny / 2016)
Arduino library for SX1276 using LoRa and PyQt (6 / juny / 2016)
The Things Network
Taller de presentació de The Things Network i exemple d'ús d'un termòstat emprant l'MKR WAN 1300 (Presentació de thethingsnetwork.cat)
Visualització de dades (Presentació de thethingsnetwork.cat)
Pàgina oficial de The Things Network - Catalunya
Pàgina oficial de The Things Network. Gestió web de passarel·les i nodes
NodeRED. Nodes TTN i ús amb MQTT
Cas pràctic d'ús de LoRaWAN. Node de TTGO connectat a The Things Network
Comunicació remota amb Raspberry Pi
SSH, accés segur sense contrasenya i túnel invers SSH
Implementació d'un túnel SSH invers
screen
screen. Persistència de les accions remotes
Raspberry Pi com a punt d'accés
Raspberry Pi com a punt d'accés
HMI de baix cost. Pantalla tàctil Nextion
Biblioteca modificada de Nextion per a IDE d'Arduino(NexConfig.h)
Biblioteca original de Nextion per a Arduino
Pantalla Nextion connectada a la Raspberry Pi
How to use Nextion to work with Raspberry Pi?
Raspberry Pi 3 add-on supplementary document v1.0
A Python library for Nextion smart display management
Nextion HMI with Raspberry PI and NodeRED Video by Oriol Rius
Nextion HMI with Raspberry PI Video by Oriol Rius
Alternatives al C de l'Arduino IDE
ESP8266. ESP-12E Development Board (novembre 2015)
Kolban's book on ESP32 (June 2018)
Kolban's Book on the ESP8266 (November 2016)
LUA
Programming the ESP8266 With Lua
MicroPython
Get on the Good Foot with MicroPython on the ESP32
Exemple en micropython de comunicació MQTT amb un ESP32 i el sensor BME280
Mongoose OS
Mongoose OS. Starting with JavaScript
Visualització al núvol
Visualització de dades (Presentació d'en Xose Pérez de thethingsnetwork.cat)
Plotly
Displaying realtime data on web using plot.ly on S4A PLB
ESP8266’s Witty sending data to plot.ly
ThinkSpeak
Displaying ESP8266’s LDR level on web using ThingSpeak
IoTgo
Grafana
Display ESP8266 sensor data using Grafana and Arduino IDE
Grafana showing MQTT data served by NodeRED Video by Oriol Rius