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.inonel percorsoelite-explorer-kit-main\iot_project\04_mqtt_buttondirettamente.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.hcontiene 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.