Diferència entre revisions de la pàgina «Pàgina principal»
m |
m (→Formació) |
||
(Hi ha 39 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
− | + | <span style="font-size:500%">things.cat</span><BR> | |
+ | <span style="font-size:300%">Una pàgina pràctica sobre la Internet de les Coses</span> | ||
= Dispositius IoT. Maquinari i microprogramari = | = Dispositius IoT. Maquinari i microprogramari = | ||
Línia 20: | Línia 21: | ||
== C / C++ == | == C / C++ == | ||
+ | [https://github.com/jordibinefa/arduino-IDE-libraries Biblioteques per Arduino, ESP8266 i ESP32] | ||
+ | |||
+ | [https://github.com/jordibinefa/arduino-IDE-codes Codis per Arduino, ESP8266 i ESP32] | ||
+ | |||
=== ESP8266 === | === ESP8266 === | ||
[https://wiki.binefa.cat/index.php?title=Afegint_la_targeta_ESP8266_a_l%27IDE_d%27Arduino Afegint la targeta ESP8266 a l'IDE d'Arduino] (NodeMCU1.0) | [https://wiki.binefa.cat/index.php?title=Afegint_la_targeta_ESP8266_a_l%27IDE_d%27Arduino Afegint la targeta ESP8266 a l'IDE d'Arduino] (NodeMCU1.0) | ||
+ | |||
+ | [https://github.com/jordibinefa/arduino-IDE-codes/tree/master/esp8266_udpServer_01b esp8266_udpServer_01.ino] Codi UDP per a ESP8266 | ||
+ | |||
+ | [https://wiki.binefa.cat/index.php?title=MQTT_a_l%27ESP8266 MQTT a l'ESP8266] | ||
+ | |||
+ | === ESP32 === | ||
+ | [https://github.com/jordibinefa/arduino-IDE-codes/tree/master/esp32_udpServer_01b esp32_udpServer_01b] Codi UDP per a ESP32 | ||
+ | |||
+ | [https://github.com/jordibinefa/arduino-IDE-codes/tree/master/esp32_i2cScanner_02 esp32_i2cScanner_02.ino Adreces de dispositius I2C connectats] | ||
+ | |||
+ | [https://binefa.cat/IoT/modbus/rtu/esp32/ Exemple de ModBus RTU fent servir NodeRED i ESP32 (amb la placa IoT PLB)] | ||
+ | |||
+ | [https://techtutorialsx.com/2017/05/06/esp32-arduino-creating-a-task/ ESP32 Arduino: Creating a FreeRTOS task] | ||
== Python == | == Python == | ||
=== Accés al maquinari de la Raspberry Pi emprant Python === | === Accés al maquinari de la Raspberry Pi emprant Python === | ||
+ | [https://wiki.binefa.cat/index.php?title=Com_connectar-hi_pantalles_OLED_SSD1306_(128x64) Com connectar-hi pantalles OLED SSD1306 (128x64)] | ||
+ | |||
+ | [https://wiki.binefa.cat/index.php?title=%C3%9As_d%27entrades_anal%C3%B2giques_amb_l%27ADS115_controlant_sortides_PWM Ús d'entrades analògiques amb l'ADS115 controlant sortides PWM] | ||
+ | |||
=== Micropython === | === Micropython === | ||
[https://blog.miguelgrinberg.com/post/micropython-and-the-internet-of-things-part-i-welcome Micropython and the Internet of Things] | [https://blog.miguelgrinberg.com/post/micropython-and-the-internet-of-things-part-i-welcome Micropython and the Internet of Things] | ||
+ | |||
+ | [https://github.com/micropython/micropython/tree/master/ports/esp8266 MicroPython port to ESP8266] | ||
+ | |||
+ | [https://github.com/micropython/micropython/tree/master/ports/esp32 MicroPython port to the ESP32] | ||
+ | |||
+ | [https://hackernoon.com/get-on-the-good-foot-with-micropython-on-the-esp32-decdd32c4720 Get on the Good Foot with MicroPython on the ESP32] | ||
+ | |||
+ | [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://github.com/gloveboxes/ESP32-MicroPython-BME280-MQTT-Sample Exemple en micropython de comunicació MQTT amb un ESP32 i el sensor BME280 (I2C)] | ||
== Sistemes operatius encastats == | == Sistemes operatius encastats == | ||
=== Raspbian === | === Raspbian === | ||
+ | [https://randomnerdtutorials.com/how-to-install-mosquitto-broker-on-raspberry-pi/ How to Install Mosquitto Broker on Raspberry Pi] | ||
+ | |||
+ | [https://wiki.binefa.cat/index.php?title=Adaptaci%C3%B3_per_a_que_la_Raspberry_Pi_funcioni_com_a_punt_d%27acc%C3%A9s_donant_adreces_IP_de_classe_B Adaptació per a que la Raspberry Pi funcioni com a punt d'accés donant adreces IP de classe B] | ||
+ | |||
+ | [https://wiki.binefa.cat/index.php?title=Instal%C2%B7laci%C3%B3_dels_nodes_node-red-contrib-ttn_i_node-red-contrib-modbustcp-no-pooling_a_la_Raspberry_Pi Instal·lació dels nodes node-red-contrib-ttn i node-red-contrib-modbustcp-no-pooling a la Raspberry Pi] | ||
+ | |||
+ | [https://wiki.binefa.cat/index.php?title=Instal%C2%B7laci%C3%B3_de_l%27OPC-UA_a_la_Raspberry_Pi,_fent_servir_Python,_i_control_des_d%27Indusoft Instal·lació de l'OPC-UA a la Raspberry Pi, fent servir Python, i control des d'Indusoft] | ||
+ | |||
+ | [https://wiki.binefa.cat/index.php?title=Pr%C3%A0ctica_de_connexi%C3%B3_remota_a_una_Raspberry_Pi Pràctica de connexió remota a una Raspberry Pi] | ||
=== Mongoose OS === | === Mongoose OS === | ||
+ | [https://mongoose-os.com/docs/mongoose-os/quickstart/setup.md Guia ràpida d'introducció a Mongoose OS][en] | ||
= Control remot dels dispositius IoT. Programari = | = Control remot dels dispositius IoT. Programari = | ||
Línia 37: | Línia 79: | ||
== Programació local (ordinadors d'escriptori i dispositius mòbils) == | == Programació local (ordinadors d'escriptori i dispositius mòbils) == | ||
+ | [https://binefa.cat/IoT/mqtt/MQTT_Dash/ Configuració de MQTT Dash (aplicació per Android)] | ||
+ | |||
+ | === 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] | ||
+ | |||
+ | Per a actualitzar les claus dels dipòsits de Debian: | ||
+ | wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key | ||
+ | sudo apt-key add mosquitto-repo.gpg.key | ||
+ | |||
=== SCADA === | === SCADA === | ||
[https://wiki.binefa.cat/index.php?title=SCADA_fent_servir_Python_QML_i_Arduino SCADA fent servir Python QML i Arduino] | [https://wiki.binefa.cat/index.php?title=SCADA_fent_servir_Python_QML_i_Arduino SCADA fent servir Python QML i Arduino] | ||
Línia 46: | Línia 99: | ||
[[Gestió de Node-RED]] | [[Gestió de Node-RED]] | ||
− | === | + | ==== UDP ==== |
+ | [https://binefa.cat/IoT/nodeRed/prj/udpServer/udpServer_nodered_code.txt Codi NodeRED per a esp8266_udpServer_01.ino i esp32_udpServer_01b] | ||
+ | |||
+ | ==== MQTT(S) ==== | ||
+ | [https://wiki.binefa.cat/index.php?title=MQTT_i_MQTTS MQTT i MQTTS] | ||
+ | |||
+ | [https://binefa.cat/IoT/nodeRed/prj/mqtt_esp8266_esp32/ex00/ Exemple amb MQTT i NodeRED emprant ESP8266 i ESP32] | ||
+ | |||
+ | [https://binefa.cat/IoT/nodeRed/prj/mqtt_esp8266_esp32/ex01/ Exercici amb MQTT i NodeRED emprant ESP8266] | ||
+ | |||
+ | ==== Telegram ==== | ||
+ | [https://wiki.binefa.cat/index.php?title=Un_exemple_d%27us_de_Telegram_amb_el_NodeRed Un exemple d'us de Telegram amb el NodeRed] | ||
+ | |||
+ | ==== Modbus TCP ==== | ||
+ | [https://binefa.cat/IoT/modbus/ Arxius per treballar amb Modbus TCP] [https://www.binefa.cat/php/doc/modbus/ El segon vídeo explica i compara Modbus RTU i Modbus TCP] | ||
+ | |||
+ | [https://binefa.cat/IoT/nodeRed/prj/modbusCtrl/ ModBus TCP al NodeRED] | ||
+ | |||
+ | === Sistemes d'emmagatzematge i visualització === | ||
+ | [https://wiki.binefa.cat/index.php?title=InfluxDB Base de dades de sèries temporals InfluxDB] | ||
+ | |||
+ | [http://docs.grafana.org/installation/debian/ Instal·lació de Grafana a Debian][en] | ||
+ | |||
[[Sentilo]] | [[Sentilo]] | ||
+ | |||
+ | === Xarxes d'àrea estesa de baix consum (LPWAN) === | ||
+ | ==== Conceptes teòrics ==== | ||
+ | [https://ca.wikipedia.org/wiki/Xarxa_de_llarg_abast Xarxa de llarg abast (WAN)] | ||
+ | |||
+ | [https://ca.wikipedia.org/wiki/Chirp_spread_spectrum Espectre eixamplat (Chirp Spread Spectrum)] | ||
+ | |||
+ | [https://ca.wikipedia.org/wiki/Espectre_eixamplat_per_seq%C3%BC%C3%A8ncia_directa Espectre eixamplat per seqüència directa (DSSS)] | ||
+ | |||
+ | [https://ca.wikipedia.org/wiki/Espectre_eixamplat_per_salt_de_freq%C3%BC%C3%A8ncia Espectre eixamplat per salt de freqüència (FHSS)] | ||
+ | |||
+ | [https://en.wikipedia.org/wiki/LPWAN What is LPWAN?] | ||
+ | |||
+ | [https://cms.edn.com/ContentEETimes/Documents/EDN/LP%20WAN%20Comparison%20Table%20final.pdf Comparison table of Low Power WAN alternatives] | ||
+ | |||
+ | ==== LoRa ==== | ||
+ | [https://wiki.binefa.cat/index.php?title=LoRa LoRa] | ||
+ | |||
+ | ==== SigFox ==== | ||
+ | [https://docs.pycom.io/chapter/tutorials/sipy/register.html Registering SiPy with Sigfox] | ||
+ | |||
+ | ==== Antenes ==== | ||
+ | [https://youtu.be/CJNq2I_PDHQ Andreas Spiess video: "#182 ESP32 Lora Boards: What you need to know before you buy (incl. Antenna knowledge)"] | ||
+ | |||
+ | === Bots === | ||
+ | ==== Bot de Telegram ==== | ||
+ | [https://wiki.binefa.cat/index.php?title=Bot_de_Telegram Bot de Telegram] | ||
+ | |||
+ | ==== Bot de Mastodon ==== | ||
+ | No totes les instàncies de [https://ca.wikipedia.org/wiki/Mastodon_(xarxa_social) Mastodon] faciliten la instal·lació de bots. Per a fer les primeres passes us recomano aquesta [https://botsin.space/ instància pensada per allotjar bots de Mastodon]. | ||
+ | |||
+ | [https://botsin.space/@siarq_sensors Exemple de bot de Mastodon] per a fer lectures de sensors cada hora. | ||
+ | |||
+ | [https://gist.github.com/aparrish/661fca5ce7b4882a8c6823db12d42d26 Getting credentials for the Mastodon API with Mastodon.py, step by step] | ||
+ | |||
+ | === Sòcols web === | ||
+ | [[Instal·lació d'un servidor de sòcols web a un Debian amb Apache]] | ||
= Teoria = | = Teoria = | ||
Línia 62: | Línia 174: | ||
[https://wiki.binefa.cat/index.php?title=Introducci%C3%B3_a_Internet_de_les_Coses_-_juny_2018 Introducció a Internet de les Coses - juny 2018] (Curset de formació per a professors de CF realitzat a l'[https://agora.xtec.cat/iesramblaprim/ Institut Rambla Prim]) | [https://wiki.binefa.cat/index.php?title=Introducci%C3%B3_a_Internet_de_les_Coses_-_juny_2018 Introducció a Internet de les Coses - juny 2018] (Curset de formació per a professors de CF realitzat a l'[https://agora.xtec.cat/iesramblaprim/ Institut Rambla Prim]) | ||
+ | [[Sunna LoRa RMM v3.0]] | ||
<!-- | <!-- | ||
Línia 67: | Línia 180: | ||
Consulteu la [https://meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar aquest programari wiki. | Consulteu la [https://meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar aquest programari wiki. | ||
+ | |||
== Primers passos == | == Primers passos == |
Revisió del 18:16, 29 març 2020
things.cat
Una pàgina pràctica sobre la Internet de les Coses
Contingut
- 1 Dispositius IoT. Maquinari i microprogramari
- 2 Control remot dels dispositius IoT. Programari
- 3 Teoria
- 4 Formació
Dispositius IoT. Maquinari i microprogramari
Al maquinari li diem hardware en anglès.
Al microprogramari li diem firmware en anglès.
IoT és l'acrònim d'Internet of Things. En català abreujat li podríem dir IdC per a referir-nos a la Internet de les Coses. En el moment d'escriure aquest text, la comunitat catalanoparlant sembla haver optat per referir-se als dispositius de la Internet de les Coses com a dispositius IoT. Si el termcat es pronuncia de manera diferent, provaré d'adaptar la terminologia.
Controladors
Als controladors els hi diem drivers en anglès.
El xip FT232 ha estat durant molt de temps el xip més comú per convertir d'USB a UART. Fins al punt que se'n van fer còpies pirates. Una actualització del sistema operatiu privatiu Windows va explotar una característica dels xips pirates: els xips pirates tenien el registre d'identificació USB de lectura i escriptura i l'original era tan sols de lectura. L'actualització que va fer Windows provocava l'escriptura d'aquest registre i hi escrivia un zero, que feia que el sistema operatiu ho identifiqués com a concentrador USB i no com a controlador d'UART, fent que el maquinari quedés inservible. A l'any 2014 em vaig veure atrapat amb uns quants Arduino Nano que duien aquest xip pirata i vaig escriure How to recover bricked fake FT232 per a poder-los reprogramar i poder-los fer servir amb sistemes operatius lliures GNU/Linux.
A partir d'aquell moment, bona part de les plaques de fabricació xinesa van començar a dur, massivament, el xip CH340 per a convertir d'USB a UART.
C / C++
Biblioteques per Arduino, ESP8266 i ESP32
Codis per Arduino, ESP8266 i ESP32
ESP8266
Afegint la targeta ESP8266 a l'IDE d'Arduino (NodeMCU1.0)
esp8266_udpServer_01.ino Codi UDP per a ESP8266
ESP32
esp32_udpServer_01b Codi UDP per a ESP32
esp32_i2cScanner_02.ino Adreces de dispositius I2C connectats
Exemple de ModBus RTU fent servir NodeRED i ESP32 (amb la placa IoT PLB)
ESP32 Arduino: Creating a FreeRTOS task
Python
Accés al maquinari de la Raspberry Pi emprant Python
Com connectar-hi pantalles OLED SSD1306 (128x64)
Ús d'entrades analògiques amb l'ADS115 controlant sortides PWM
Micropython
Micropython and the Internet of Things
Get on the Good Foot with MicroPython on the ESP32
Exemple en micropython de comunicació MQTT amb un ESP32 i el sensor DS18B20 (One Wire Interface)
Exemple en micropython de comunicació MQTT amb un ESP32 i el sensor BME280 (I2C)
Sistemes operatius encastats
Raspbian
How to Install Mosquitto Broker on Raspberry Pi
Adaptació per a que la Raspberry Pi funcioni com a punt d'accés donant adreces IP de classe B
Instal·lació de l'OPC-UA a la Raspberry Pi, fent servir Python, i control des d'Indusoft
Pràctica de connexió remota a una Raspberry Pi
Mongoose OS
Guia ràpida d'introducció a Mongoose OS[en]
Control remot dels dispositius IoT. Programari
Al programari li diem software en anglès.
Programació local (ordinadors d'escriptori i dispositius mòbils)
Configuració de MQTT Dash (aplicació per Android)
Mosquitto local a l'ordinador
How to Install Mosquitto MQTT Broker/Server on Ubuntu 16.04
Instal·lació de Mosquitto a Windows
Per a actualitzar les claus dels dipòsits de Debian:
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key sudo apt-key add mosquitto-repo.gpg.key
SCADA
SCADA fent servir Python QML i Arduino
Núvol
Node-RED
UDP
Codi NodeRED per a esp8266_udpServer_01.ino i esp32_udpServer_01b
MQTT(S)
Exemple amb MQTT i NodeRED emprant ESP8266 i ESP32
Exercici amb MQTT i NodeRED emprant ESP8266
Telegram
Un exemple d'us de Telegram amb el NodeRed
Modbus TCP
Arxius per treballar amb Modbus TCP El segon vídeo explica i compara Modbus RTU i Modbus TCP
Sistemes d'emmagatzematge i visualització
Base de dades de sèries temporals InfluxDB
Instal·lació de Grafana a Debian[en]
Xarxes d'àrea estesa de baix consum (LPWAN)
Conceptes teòrics
Espectre eixamplat (Chirp Spread Spectrum)
Espectre eixamplat per seqüència directa (DSSS)
Espectre eixamplat per salt de freqüència (FHSS)
Comparison table of Low Power WAN alternatives
LoRa
SigFox
Antenes
Bots
Bot de Telegram
Bot de Mastodon
No totes les instàncies de Mastodon faciliten la instal·lació de bots. Per a fer les primeres passes us recomano aquesta instància pensada per allotjar bots de Mastodon.
Exemple de bot de Mastodon per a fer lectures de sensors cada hora.
Getting credentials for the Mastodon API with Mastodon.py, step by step
Sòcols web
Instal·lació d'un servidor de sòcols web a un Debian amb Apache
Teoria
MQTT(S)
TCP/UDP Capa de transport d'Ethernet
Formació
21802500 - Màster Industria 4.0 Tecnologías IoT, Hands on y MVP (2019)
Introducció ràpida a LoRaWAN i The Things Network a l'Institut de Ciències del Mar (27 / setembre / 2018 i 25 / setembre / 2019)
Introducció a Internet de les Coses - juny 2018 (Curset de formació per a professors de CF realitzat a l'Institut Rambla Prim)