Sommario:

NodeMCU MQTT Iot Project - Pulsante Switch: 4 passaggi
NodeMCU MQTT Iot Project - Pulsante Switch: 4 passaggi

Video: NodeMCU MQTT Iot Project - Pulsante Switch: 4 passaggi

Video: NodeMCU MQTT Iot Project - Pulsante Switch: 4 passaggi
Video: Best IoT Project 🔥🔥 using ESP32 and Sensor with Fan Dimmer | Alexa Google Home Automation 2022 2024, Luglio
Anonim
Image
Image

Starter kit OSOYOO NodeMCU IOT

Seguici su Facebook, trova il nostro nuovo articolo rilasciato e condividi la tua idea e il video su come utilizzare in modo creativo i nostri prodotti. Puoi ottenere un rimborso o un omaggio da noi! Facebook:

Youtube:

In questa lezione collegheremo un pulsante switch al NodeMCU e invieremo lo stato dello switch a un broker MQTT. Quando il pulsante viene premuto, NodeMCU pubblicherĂ  lo stato del pulsante "premuto" sul broker MQTT e il client MQTT sottoscriverĂ  questi messaggi. Quando il pulsante viene rilasciato, verrĂ  inviato "non premuto".

Passaggio 1: preparazione

Grafico di connessione
Grafico di connessione

Hardware:

Scheda NodeMCU x 1

Pulsante interruttore x 1

Resistenza da 1K x 1

Tagliere x 1

Ponticelli

Software:

Arduino IDE (versione 1.6.4+)

Pacchetto scheda ESP8266 e driver della porta seriale

Client MQTT (MQTTBox qui)

Libreria Arduino: PubSubClient

Passaggio 2: grafico di connessione

In questa lezione, usiamo D2(GPIO4) per controllare lo switch, si prega di configurare l'hardware in base al grafico di connessione.

Nota: il resistore da 1k viene utilizzato come resistore di pull-down, in un tale circuito, quando l'interruttore è chiuso, l'ingresso NodeMCU ha un valore logico alto, ma quando l'interruttore è aperto, il resistore di pull-down tira la tensione di ingresso a terra (valore logico zero), impedendo uno stato indefinito all'ingresso.

Passaggio 3: codice

Codice
Codice
Codice
Codice

Copia il codice seguente nell'IDE Arduino:

/* _ _ _ _ _ _ _ _ _ _ * / _ / /_)/ _ \| | | |/ _ / / _ / / _) _ \| / *| |_| |_ | |_| | |_| | |_| | |_| ((_| |_| | | | | * \_/(_/ \_/ \_ |\_/ \_(_)_)_/|_|_|_| * (_/ * Utilizzare il NodeMCU invia lo stato del pulsante di commutazione al client MQTT tramite WiFi * URL tutorial: * CopyRight www.osoyoo.com */ #include #include

int BUTTON_PIN = D2; //il pulsante è collegato al pin GPIO D1

// Aggiorna questi con valori adatti alla tua rete. const char* ssid = "********";//metti qui il tuo ssid wifi const char* password = "********";//metti qui la tua password wifi. const char* mqtt_server = "broker.mqttdashboard.com"; //const char* mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

PubSubClient client(espClient); long lastMsg = 0; char msg[50];

void setup_wifi() {

ritardo(100); // Iniziamo connettendoci a una rete WiFi Serial.print("Connecting to"); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { ritardo(500); Serial.print("."); } randomSeed(micros()); Serial.println(""); Serial.println("WiFi connesso"); Serial.println("Indirizzo IP: "); Serial.println(WiFi.localIP()); }

void callback (char* argomento, byte* payload, lunghezza int senza segno)

{ } // termina la richiamata

void ricollegare() {

// Ciclo finché non ci ricolleghiamo while (!client.connected()) { Serial.print("Tentativo di connessione MQTT…"); // Crea un ID client casuale String clientId = "ESP8266Client-"; clientId += String(random(0xffff), HEX); // Tentativo di connessione //se il tuo broker MQTT ha clientID, nome utente e password //cambia la riga seguente in if (client.connect(clientId, userName, passWord)) if (client.connect(clientId.c_str())) { Serial.println("connesso"); //una volta connesso al broker MQTT, subscribe comando se presente client.subscribe("OsoyooCommand"); } else { Serial.print("fallito, rc="); Serial.print(client.state()); Serial.println("riprova tra 5 secondi"); // Attendi 5 secondi prima di riprovare delay(5000); } } } //termina la riconnessione()

void setup() {

Serial.begin(115200); setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(richiamata); pinMode(BUTTON_PIN, INPUT); }

ciclo vuoto() {

if (!client.connected()) { reconnect(); } client.loop(); lungo ora = millis(); stato int; //invia un messaggio ogni 2 secondi if (now - lastMsg > 2000) { lastMsg = now; status=digitalRead(BUTTON_PIN); String msg="Stato pulsante: "; if(status==HIGH) { msg= msg+ "Premuto"; messaggio char[58]; msg.toCharArray(messaggio, 58); Serial.println(messaggio); //pubblica i dati del sensore nel broker MQTT client.publish("OsoyooData", messaggio); } else { msg= msg+ "Non premere"; messaggio char[58]; msg.toCharArray(messaggio, 58); Serial.println(messaggio); //pubblica i dati del sensore nel broker MQTT client.publish("OsoyooData", messaggio); } } }

Modifica il codice per adattarlo alle tue impostazioni WiFi e MQTT come segue: 1) Configurazione hotspot: trova sotto la riga del codice, inserisci il tuo ssid e la password.

const char* ssid = “your_hotspot_ssid”;const char* password = “your_hotspot_password”;

2) Impostazione dell'indirizzo del server MQTT: è possibile utilizzare l'URL o l'indirizzo IP del proprio broker MQTT per impostare sopra il valore mqtt_server. Puoi anche utilizzare alcuni famosi server MQTT gratuiti per testare il progetto come "broker.mqtt-dashboard.com", "iot.eclipse.org" ecc.

const char* mqtt_server = “broker.mqtt-dashboard.com”;

3) Impostazioni client MQTT Se il tuo broker MQTT richiede l'autenticazione clientID, nome utente e password, è necessario modificare

if (client.connect(clientId.c_str()))

Per

if (client.connect(clientId, userName, passWord)) //inserisci qui il tuo clientId/userName/passWord

In caso contrario, mantienili come predefiniti. Dopo averlo fatto, scegli il tipo di scheda corrispondente e il tipo di porta come di seguito, quindi carica lo schizzo sul NodeMCU.

  • Scheda: "NodeMCU 0.9 (modulo ESP-12)"
  • Frequenza CPU: "80 MHz" Dimensione flash:"
  • 4M (3M SPIFFS)”
  • VelocitĂ  di caricamento: "115200"
  • Porta: scegli la tua porta seriale per il tuo NodeMCU

Passaggio 4: Impostazioni client MQTT

Impostazioni client MQTT
Impostazioni client MQTT
Impostazioni client MQTT
Impostazioni client MQTT

Se non sai come configurare il client MQTT, visita il nostro ultimo articolo:

Impostazioni degli argomenti: Argomento da pubblicare: OsoyooCommand

Argomento per la sottoscrizione: OsoyooData

Risultato di corsa

Una volta completato il caricamento, se il nome dell'hotspot Wi-Fi e l'impostazione della password sono ok e il broker MQTT è connesso, apri Serial Monitor, vedrai il seguente risultato: Continua a premere questo pulsante, il Serial Monitor visualizzerà "Stato pulsante: premuto" ogni 2 secondi;una volta rilasciato questo pulsante, il monitor seriale emetterà "Stato pulsante: non premuto" ogni 2 secondi.

Consigliato: