Nota
Ciao, benvenuto nella Community di appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.
Perché unirti?
Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e giveaway: Partecipa a promozioni festive e concorsi a premi.
👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
5. Sistema di chiamata in cloud con @MQTT
Il Message Queuing Telemetry Transport (MQTT) è un semplice protocollo di messaggistica. È anche il protocollo di messaggistica più comune per l’Internet delle Cose (IoT).
I protocolli MQTT definiscono il modo in cui i dispositivi IoT trasferiscono i dati. Sono basati sugli eventi e interconnessi utilizzando il modello Pub/Sub. Il mittente (Publisher) e il destinatario (Subscriber) comunicano tramite argomenti (Topics). Un dispositivo pubblica un messaggio su un argomento specifico, e tutti i dispositivi iscritti a quell’argomento ricevono il messaggio.
In questa sezione, verrà realizzato un sistema di chiamata utilizzando Pico W, HiveMQ (un servizio broker MQTT pubblico e gratuito) e quattro pulsanti. I quattro pulsanti rappresentano quattro tavoli in un ristorante, e potrai vedere quale tavolo necessita di assistenza su HiveMQ quando il cliente preme il pulsante.
1. Componenti necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Kit Kepler |
450+ |
Puoi anche acquistarli separatamente dai link qui sotto.
SN |
COMPONENTE |
QUANTITÀ |
LINK |
|---|---|---|---|
1 |
1 |
||
2 |
Cavo Micro USB |
1 |
|
3 |
1 |
||
4 |
Diverse |
||
5 |
4(10KΩ) |
||
6 |
4 |
||
7 |
1 |
||
8 |
18650 Battery |
1 |
|
9 |
Battery Holder |
1 |
2. Costruisci il circuito
Avvertimento
Assicurati che il modulo caricabatterie Li-po sia collegato come mostrato nello schema. Altrimenti, un cortocircuito potrebbe danneggiare la batteria e il circuito.
3. Visita HiveMQ
HiveMQ è una piattaforma di messaggistica basata su broker MQTT e client che consente un trasferimento di dati veloce, efficiente e affidabile ai dispositivi IoT.
Apri HiveMQ Web Client nel tuo browser.
Collega il client al proxy pubblico predefinito.
Clicca su Add New Topic Subscription.
Inserisci gli argomenti che vuoi seguire e clicca su Subscribe. Gli argomenti impostati qui dovrebbero essere più personali per evitare di ricevere messaggi da altri utenti; fai attenzione anche alla distinzione tra maiuscole e minuscole.
4. Installa il modulo MQTT
Prima di iniziare il progetto, dobbiamo installare il modulo MQTT per Pico W.
Connettiti alla rete eseguendo
do_connect()nella Shell, che abbiamo scritto in precedenza.Nota
Digita i seguenti comandi nella Shell e premi
Enterper eseguirli.Se non hai gli script
do_connect.pyesecrets.pynel tuo Pico W, fai riferimento a 1. Accesso alla Rete per crearli.
from do_connect import * do_connect()
Dopo una connessione di rete riuscita, importa il modulo
mipnella shell e utilizzamipper installare il moduloumqtt.simple, che è un client MQTT semplificato per MicroPython.import mip mip.install('umqtt.simple')
Vedrai che il modulo
umqttè installato sotto il percorso/lib/di Pico W al termine dell’installazione.
5. Esegui lo script
Apri il file
5_mqtt_publish.pynel percorsokepler-kit-main/iot.Clicca sul pulsante Esegui script corrente o premi F5 per eseguirlo.
Torna su HiveMQ Web Client e quando premi uno dei pulsanti sulla breadboard, potrai vedere il messaggio su HiveMQ.
Se desideri che questo script si avvii automaticamente, puoi salvarlo nel Raspberry Pi Pico W come
main.py.
Come funziona?
Il Raspberry Pi Pico W deve essere connesso a Internet, come descritto in 1. Accesso alla Rete. Per questo progetto, utilizza questa funzione.
from do_connect import *
do_connect()
Inizializza 4 pin per i pulsanti.
sensor1 = Pin(16, Pin.IN)
sensor2 = Pin(17, Pin.IN)
sensor3 = Pin(18, Pin.IN)
sensor4 = Pin(19, Pin.IN)
Crea due variabili per memorizzare l”URL e l”client ID del broker MQTT che utilizzeremo per connetterci.
Poiché stiamo utilizzando un broker pubblico, il nostro client ID non verrà utilizzato, anche se richiesto.
mqtt_server = 'broker.hivemq.com'
client_id = 'Jimmy'
Connettiti all’agente MQTT e mantieni la connessione per un’ora. In caso di errore, resetta il Pico W.
try:
client = MQTTClient(client_id, mqtt_server, keepalive=3600)
client.connect()
print('Connected to %s MQTT Broker'%(mqtt_server))
except OSError as e:
print('Failed to connect to the MQTT Broker. Reconnecting...')
time.sleep(5)
machine.reset()
Crea una variabile topic, che è l’argomento che il sottoscrittore deve seguire. Dovrebbe essere lo stesso argomento inserito nel passo 4 di 2. Visita HiveMQ sopra.
Tra l’altro, b qui converte la stringa in byte, poiché MQTT è un protocollo basato su byte binari e non su stringhe di testo.
topic = b'SunFounder MQTT Test'
Imposta le interruzioni per ogni pulsante. Quando un pulsante viene premuto, viene pubblicato un messaggio sotto topic.
def press1(pin):
message = b'button 1 is pressed'
client.publish(topic, message)
print(message)
sensor1.irq(trigger=machine.Pin.IRQ_RISING, handler=press1)