Nota
Ciao, benvenuto nella community degli appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino e ESP32 con altri appassionati.
Perché unirti?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del team.
Apprendimento e Condivisione: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri ultimi prodotti.
Promozioni Festive e Concorsi: Partecipa a concorsi e promozioni speciali.
👉 Pronto per esplorare e creare con noi? Clicca [Qui] e unisciti oggi!
Sistema di Chiamata Cloud con MQTT
Il protocollo di messaggistica Message Queuing Telemetry Transport (MQTT) è semplice ma ampiamente utilizzato nel campo dell’Internet delle cose (IoT).
I protocolli MQTT definiscono come i dispositivi IoT scambiano dati. Operano in modo event-driven e sono interconnessi utilizzando il modello Publish/Subscribe. Il mittente (Publisher) e il ricevente (Subscriber) comunicano tramite Topics. Un dispositivo pubblica un messaggio su un topic specifico e tutti i dispositivi abbonati a quel topic ricevono il messaggio.
In questa sezione, creeremo un sistema di campanello di servizio utilizzando UNO R4, HiveMQ (un servizio broker MQTT pubblico gratuito) e quattro pulsanti. Ogni pulsante corrisponde a un tavolo del ristorante e quando un cliente preme un pulsante, sarà possibile vedere quale tavolo ha bisogno di assistenza su HiveMQ.
Componenti Necessari
Per questo progetto, sono necessari i seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ARTICOLI IN QUESTO KIT |
LINK |
---|---|---|
Elite Explorer Kit |
300+ |
È anche possibile acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK DI ACQUISTO |
---|---|
- |
|
Cablaggio
Schema
Come Funziona?
HiveMQ è una piattaforma di messaggistica basata su broker MQTT che facilita il trasferimento rapido, efficiente e affidabile dei dati ai dispositivi IoT.
Apri HiveMQ Web Client nel tuo browser web.
Collega il client al proxy pubblico predefinito.
Clicca su Aggiungi Nuova Sottoscrizione Topic.
Inserisci i topic che desideri seguire e clicca su Sottoscrivi. Assicurati che i topic che imposti qui siano unici per evitare di ricevere messaggi da altri utenti e presta attenzione alla sensibilità delle maiuscole e minuscole.
In questo esempio di codice, impostiamo il topic come
SunFounder MQTT Test
. Se hai apportato modifiche, assicurati che il topic nel codice corrisponda al topic sottoscritto sulla pagina web.
Installazione della Libreria
Per installare la libreria, utilizza il Gestore delle Librerie Arduino e cerca «ArduinoMqttClient» e installalo.
ArduinoMqttClient.h
: Utilizzato per la comunicazione MQTT.
Esecuzione del Codice
Nota
Puoi aprire il file
04_mqtt_button.ino
nel percorsoelite-explorer-kit-main\iot_project\04_mqtt_button
direttamente.Oppure copia questo codice nell’IDE di Arduino.
Nota
Nel codice, SSID e password sono memorizzati in arduino_secrets.h
. Prima di caricare questo esempio, è necessario modificarli con le proprie credenziali WiFi. Inoltre, per motivi di sicurezza, assicurati che queste informazioni siano mantenute riservate durante la condivisione o la memorizzazione del codice.
Dopo aver eseguito il codice, torna su HiveMQ Web Client e quando premi uno dei pulsanti sulla breadboard, vedrai il prompt Messaggi su HiveMQ.
Funzionamento del Codice
Questo codice è per un progetto basato su Arduino che si connette al WiFi e comunica con un broker MQTT utilizzando il protocollo MQTT. Inoltre, può rilevare se quattro pulsanti sono premuti e inviare i messaggi corrispondenti al broker MQTT.
Ecco una spiegazione dettagliata del codice:
Includi Librerie Pertinenti:
#include <WiFiS3.h> #include <ArduinoMqttClient.h>
Includi Informazioni Sensibili:
Il file
arduino_secrets.h
contiene l’SSID e la password per la rete WiFi.
#include "arduino_secrets.h" char ssid[] = SECRET_SSID; char pass[] = SECRET_PASS;
Inizializza Variabili:
Variabili per gestire le connessioni WiFi e MQTT.
Inizializza pin dei pulsanti e stati dei pulsanti.
setup()
:Inizializza la comunicazione seriale.
Verifica la presenza del modulo WiFi e tenta di connettersi al WiFi.
Stampa dati di rete.
Tentativo di connessione al broker MQTT.
Sottoscrivi i topic MQTT.
Imposta i pulsanti in modalità input.
loop()
:Mantieni attiva la connessione MQTT.
Verifica se ogni pulsante è premuto e, in caso affermativo, invia messaggi MQTT.
Altre Funzioni di Utilità:
printWifiData()
: Stampa informazioni sulla rete WiFi attualmente connessa.printCurrentNet()
: Stampa dati rilevanti sulla rete attuale.printMacAddress(byte mac[])
: Stampa l’indirizzo MAC.onMqttMessage(int messageSize)
: Funzione di callback attivata quando viene ricevuto un messaggio dal broker MQTT. Stampa il topic del messaggio ricevuto e il contenuto.sendButtonMessage(int buttonNumber)
: Usa questa funzione per inviare messaggi MQTT quando viene premuto un pulsante.