Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
node-red-stop
e poi:
node-red-start
La dashboard installata
compare sulla sinistra
fornita di diversi nodi
Raspberry…Node-RED
Invio di e-mail quando la Temperatura supera un certo valore
Serve per
Serve per inviare
preparare la mail
la mail
Raspberry…Node-RED
Invio di e-mail quando la Temperatura supera un certo valore
Aggiungiamo la libreria e la
seguente linea di codice
Raspberry…Arduino
Installiamo ora i nodi che consentono di interfacciarci con Arduino
Manage palette
install
arduino
install
Prendiamo il nodo
‘’switch’’ presente in
dashboard
Raspberry…Arduino
Impostiamo il nodo ‘’switch’’…
Raspberry…Arduino
Impostiamo il nodo Arduino ‘’out’’…
Raspberry…Arduino
Effettuiamo il Deploy
Raspberry…Arduino
Selezioniamo dashboard
e clicchiamo su
Possiamo cliccare sul tasto switch per accendere (e spegnere) il LED, o pilotare
un relè, collegato al pin 13 di Arduino
Raspberry…Arduino
Funzionamento RELE’ - cenni
Il relè, o relàis, è uno dei dispositivi elettromeccanici più conosciuti. Spesso sono
racchiusi dentro un involucro trasparente, che permette di capirne subito il
funzionamento. L’avvolgimento di rame alla sinistra non è altro che una bobina che se
alimentata attira verso il basso l’astina metallica indicata con la freccia rossa rivolta verso
il basso. L’astina metallica è fissata al contatto C che significa “comune”.
Corso ‘La domotica con Raspberry PI’ - I.I.S.S. Enrico Medi – Galatone
Raspberry…Arduino
Funzionamento RELE’ - cenni
Circuito di esempio:
Il relè in poche parole permette con una piccola tensione di controllare una più grande
potenza, per esempio un relè può accendere o spegnere il motore di un refrigeratore
comandato da un sensore di temperatura: il semplice sensore di temperatura non
potrebbe mai pilotare direttamente l’alimentazione a 220volt! Ad esempio il ticchettio
che sentite abilitando le indicazioni luminose di svolta negli scooter o nelle
automobili, non è altro che l’accensione e lo spegnimento di un relè che viene pilotato
da un semplice temporizzatore.
Raspberry…Arduino
Funzionamento RELE’ - cenni
In questo semplicissimo circuito un relè viene controllato da un semplicissimo transistor
2N2222. Forse avete già notato la presenza del diodo 1N4003: questo diodo è
fondamentale durante l’utilizzo di un relè, per via di un fenomeno elettrico conosciuto
come “Picco di Lentz”. In poche parole, quando si toglie alimentazione ad una bobina,
essa rispedisce indietro un brevissimo picco di tensione molto elevata, contraria alla
tensione di alimentazione. Questo diodo risulta un cortocircuito per tensioni contrarie a
quelle di alimentazione, quindi quando il picco esce dal relè si annulla su se stesso
attraverso il diodo.
Raspberry…Arduino
Funzionamento RELE’ - cenni
Collegamento con Arduino , il relè può essere collegato anche direttamente ai PIN di
Raspberry, ricordarsi però di alimentarlo con 5V
Raspberry…Arduino
Colleghiamo un potenziometro all’ingresso A0 (analogico) di Arduino
Raspberry…Arduino
Colleghiamo un potenziometro all’ingresso A0 (analogico) di Arduino
Raspberry…Arduino
Colleghiamo un potenziometro all’ingresso A0 (analogico) di Arduino
Raspberry…Arduino
Colleghiamo i due nodi, effettuiamo il Deploy e aggiornate la pag. Home di
Node-RED
• Modulo WiFi ESP8266 i cui I/O pins sono accessibili dai pin esterni con passo
2.54mm.
• Convertitore USB/seriale TTL.
• Regolatore di tensione con 3.3V in uscita e range di tensione in ingresso variabile
da un minimo di 3.3V ad un max. di 5.5V.
Raspberry PI … NodeMCU
ESP8266 – WiFi: PINOUT
Raspberry PI … NodeMCU
Block diagram
Microcontrollore con
Parte RF communication interface
Raspberry PI … NodeMCU
Caratteristiche
• 802.11 b/g/n
• Integrated low power 32-bit MCU
• Integrated 10-bit ADC
• Integrated TCP/IP protocol stack
• Integrated TR switch, balun, LNA, power amplifier and matching network
• Integrated PLL, regulators, and power management units
• Supports antenna diversity
• Wi-Fi 2.4 GHz, support WPA/WPA2
• Support STA/AP/STA+AP operation modes
• Support Smart Link Function for both Android and iOS devices
• SDIO 2.0, (H) SPI, UART, I2C, I2S, IRDA, PWM, GPIO
• STBC, 1x1 MIMO, 2x1 MIMO
• A-MPDU & A-MSDU aggregation and 0.4s guard interval
• Deep sleep power <10uA, Power down leakage current < 5uA
• Wake up and transmit packets in < 2ms
• Standby power consumption of < 1.0mW (DTIM3)
• +20dBm output power in 802.11b mode
• Operating temperature range -40C ~ 125C
Raspberry PI … NodeMCU
Cenni sullo standard WiFi:
I dispositivi compatibili Wi-Fi possono connettersi a Internet tramite una WLAN e un
punto di accesso wireless (access point). Con la tecnologia disponibile al 2017, un
access point (o un hotspot) all'interno di un edificio può avere una portata di circa 20
metri (il segnale ad onde radio è attenuato dai muri), mentre all'esterno può coprire
un'area di circa 100 metri e, usando più punti di accesso sovrapposti, anche di diversi
chilometri quadrati.
Raspberry PI … NodeMCU
Raspberry PI … NodeMCU
Il dispositivo prevede numerosi pin di
I/O:
• 1 ingresso analogico (ADC0).
• è di tipo publish/subscribe
• è molto semplice
• ha un overhead (= quantità di dati da trasmettere per il suo
funzionamento) molto basso
Raspberry…MQTT
Publish/Subscribe
La caratteristica principale di MQTT è di essere un protocollo publish/subscribe.
In una comunicazione tradizionale, la sorgente del dato (ad esempio un sensore di
temperatura) invia il dato direttamente all’utilizzatore finale (ad esempio il
termostato)
In una comunicazione publish/subscribe invece il sensore invia (pubblica,
publish in inglese) il dato ad un sistema centrale detto broker.
Tutti i dispositivi che vogliono ottenere tale dato lo comunicano al broker (si
iscrivono, (subscribe in inglese) ed è il broker ad inviare loro il dato quando
questo è disponibile
Comunicazione publish/subscribe
Comunicazione tradizionale
Raspberry…MQTT
Il principale vantaggio del paradigma pub/sub è il disaccoppiamento tra
chi produce il dato e chi lo deve utilizzare:
Librerie
per
python
sudo apt-get install paho-mqtt
Raspberry…MQTT
Esercizi con l’utilizzo di mqtt e python: clientA invia messaggi a client_B
Raspberry…MQTT
Output dei programmi: clientA invia messaggi a client_B
Raspberry…MQTT
Torniamo alla comunicazione tra Raspberry PI e NodeMCU ESP8266: ovviamente
quest’ultimo deve essere programmato in modo opportuno
- Librerie
- Firmware
Raspberry PI … NodeMCU
Uno dei principali vantaggi del NodeMcu riguarda la possibilità di poter essere
programmato utilizzando l’ambiente di sviluppo open source di Arduino e di
essere dotato di connessione wireless grazie alla presenza del modulo WiFi
ESP8266 integrato su di esso.
Installiamo
la scheda
ESP8266 in
Arduino IDE
Raspberry PI … NodeMCU
Prendiamo il link ed inseriamolo qui: (File -> impostazioni)
Raspberry PI … NodeMCU
Uno dei principali vantaggi del NodeMcu riguarda la possibilità di poter essere
programmato utilizzando l’ambiente di sviluppo open source di Arduino e di
essere dotato di connessione wireless grazie alla presenza del modulo WiFi
ESP8266 integrato su di esso.
Installiamo la scheda
ESP8266 in Arduino
IDE
Raspberry PI … NodeMCU
Uno dei principali vantaggi del NodeMcu riguarda la possibilità di poter essere
programmato utilizzando l’ambiente di sviluppo open source di Arduino e di
essere dotato di connessione wireless grazie alla presenza del modulo WiFi
ESP8266 integrato su di esso.
Digitare ESP8266
Raspberry PI … NodeMCU
Scarichiamo ed installiamo anche le seguenti librerie:
https://github.com/adafruit/Adafruit_ESP8266
(ci consente di utilizzare la nostra scheda per
connetterla alla rete Wifi).
https://github.com/knolleary/pubsubclient
(ci permette di connettere client e server e di inviare
e ricevere comandi tramite protocollo mqtt).
https://github.com/winlinvip/SimpleDHT
(ci permette di utilizzare il nostro sensore di
temperatura e umidità DHT11).
Raspberry PI … NodeMCU
Scarichiamo le librerie…
Raspberry PI … NodeMCU
Installazione librerie in ambiente Arduino…
Raspberry PI … NodeMCU
Vediamo lo sketch da usare…
Includiamo le
librerie
necessarie
Raspberry PI … NodeMCU
Vediamo lo sketch da usare…
Raspberry PI … NodeMCU
Vediamo lo sketch da usare…
Raspberry PI … NodeMCU
Vediamo lo sketch da usare…
Raspberry PI … NodeMCU
Vediamo lo sketch da usare…
Raspberry PI … NodeMCU
Visualizziamo i dati catturati dal sensore sulla nostra pagina web…
JSON ci serve convertire i messaggi tipo stringa in oggetti JSON: ricordiamo che i
messaggi in un flusso di Node-RED sono oggetti JSON
Raspberry PI … NodeMCU
Configuriamo ogni singolo nodo:
Installiamo Apache2
posizioniamoci alla fine del file (con freccia giù) e aggiungiamo la seguente
riga:
Include /etc/phpmyadmin/apache.conf
Chiudiamo con Ctrl+x premiamo y (oppure S) per salvare e confermiamo con invio
Riavviamo ora apache2 con:
/etc/init.d/apache2 restart
Raspberry…PhpMyAdmin
Andiamo su Chrome e digitiamo l’IP di raspberry seguito da /phpmyadmin
Non ci consente di
effettuare l’accesso
Andiamo su LX
terminal
Raspberry…PhpMyAdmin
Per accedere a phpmyadmin senza usare password procediamo come di seguito:
de-commentiamo le righe evidenziate in figura
Raspberry…PhpMyAdmin
Interfaccia PhpMyAdmin
Raspberry…PhpMyAdmin
Interfaccia PhpMyAdmin
Dati di
temperatura e
umidità inseriti
nel database
Raspberry Pi - Domotica
Flusso finale su Node -RED
Raspberry Pi - Domotica
Pagina WEB corrispondente al flusso: visualizzazione dati , attuazione controlli
remoti e inserimento valori sensore nel database