Taula de continguts:

NodeMCU MQTT Iot Project: botó de commutació: 4 passos
NodeMCU MQTT Iot Project: botó de commutació: 4 passos

Vídeo: NodeMCU MQTT Iot Project: botó de commutació: 4 passos

Vídeo: NodeMCU MQTT Iot Project: botó de commutació: 4 passos
Vídeo: MQTT Protocol with NodeMCU ESP8266 Tutorial 2024, De novembre
Anonim
Image
Image

Kit d’inici OSOYOO NodeMCU IOT

Seguiu-nos a Facebook, cerqueu el nou article publicat i compartiu la vostra idea i vídeo sobre com utilitzar creativament els nostres productes. Podeu obtenir diners en efectiu o obsequiar-nos amb nosaltres! Facebook:

Youtube:

En aquesta lliçó, connectarem un botó de commutació al NodeMCU i enviarem l’estat del commutador a un broker MQTT. Quan es prem el botó, NodeMCU publicarà l'estat del botó "premut" al corredor MQTT i el client MQTT subscriurà aquests missatges. Quan es deixa anar el polsador, s'enviarà "no premut".

Pas 1: Preparació

Gràfic de connexió
Gràfic de connexió

Maquinari:

Taula NodeMCU x 1

Botó de commutació x 1

1K resistència x 1

Taula de pa x 1

Filferros de pont

Programari:

Arduino IDE (versió 1.6.4+)

Paquet de placa ESP8266 i el controlador de port sèrie

Client MQTT (MQTTBox aquí)

Biblioteca Arduino: PubSubClient

Pas 2: gràfic de connexió

En aquesta lliçó, fem servir D2 (GPIO4) per controlar l’interruptor. Configureu el maquinari segons el gràfic de connexió.

Nota: la resistència 1k s’utilitza com a resistència de tracció, en aquest circuit, quan l’interruptor està tancat, l’entrada NodeMCU té un valor lògic elevat, però quan l’interruptor està obert, la resistència de tracció tira de la tensió d’entrada. fins a terra (valor lògic zero), evitant un estat indefinit a l'entrada.

Pas 3: Codi

Codi
Codi
Codi
Codi

Copieu el codi següent a Arduino IDE:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / * | | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _ / (_ / / _ / / _ | / _ / / _ (_) _) _ / | _ | _ | _ | * (_ / * Utilitzeu el NodeMCU envia l'estat del botó del commutador al client MQTT mitjançant WiFi * URL del tutorial: * CopyRight www.osoyoo.com * / #include #include

int BUTTON_PIN = D2; // El botó està connectat al pin D1 de GPIO

// Actualitzeu-los amb valors adequats per a la vostra xarxa. const char * ssid = "********"; // posa aquí el teu wifi ssid const char * password = "********"; // posa la teva contrasenya wifi aquí. const char * mqtt_server = "broker.mqttdashboard.com"; // const char * mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

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

void setup_wifi () {

retard (100); // Comencem connectant-nos a una xarxa WiFi Serial.print ("Connexió a"); Serial.println (ssid); WiFi.begin (ssid, contrasenya); while (WiFi.status ()! = WL_CONNECTED) {demora (500); Serial.print ("."); } randomSeed (micros ()); Serial.println (""); Serial.println ("WiFi connectat"); Serial.println ("adreça IP:"); Serial.println (WiFi.localIP ()); }

nul·la devolució de trucada (tema char *, byte * càrrega útil, longitud int sense signar)

{} // finalitzar la devolució de trucada

void reconnect () {

// Bucleu fins que ens tornem a connectar mentre (! Client.connected ()) {Serial.print ("Intent de connexió MQTT …"); // Creeu un identificador de client aleatori String clientId = "ESP8266Client-"; clientId + = String (random (0xffff), HEX); // Intenteu connectar-vos // si el vostre corredor MQTT té identificador de client, nom d’usuari i contrasenya // canvieu la línia següent a if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("connectat"); // un cop connectat al broker MQTT, subscribe command si algun client.subscribe ("OsoyooCommand"); } else {Serial.print ("fallen, rc ="); Serial.print (client.state ()); Serial.println ("torneu-ho a provar en 5 segons"); // Espereu 5 segons abans de tornar a provar el retard (5000); }}} // finalitzar la connexió ()

configuració nul·la () {

Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (devolució de trucada); pinMode (BUTTON_PIN, INPUT); }

bucle buit () {

if (! client.connected ()) {reconnect (); } client.loop (); llarg ara = millis (); estat int; // enviar missatge cada 2 segons si (ara - lastMsg> 2000) {lastMsg = ara; estat = DigitalRead (BUTTON_PIN); String msg = "Estat del botó:"; if (estat == ALT) {msg = msg + "Pressed"; missatge char [58]; msg.toCharArray (missatge, 58); Serial.println (missatge); // publicar dades del sensor a l’agent MQTT client.publish ("OsoyooData", missatge); } else {msg = msg + "Not Press"; missatge char [58]; msg.toCharArray (missatge, 58); Serial.println (missatge); // publicar dades del sensor a l’agent MQTT client.publish ("OsoyooData", missatge); }}}

Editeu el codi per adaptar-lo a la vostra pròpia configuració de WiFi i MQTT de la següent manera: 1) Configuració de punt d'accés: trobeu a sota la línia de codi, poseu-hi el vostre propi ssid i contrasenya.

const char * ssid = "your_hotspot_ssid"; const char * password = "your_hotspot_password";

2) Configuració de l'adreça del servidor MQTT: podeu utilitzar el vostre propi URL o adreça IP del broker MQTT per establir un valor superior al valor mqtt_server. També podeu utilitzar algun famós servidor MQTT gratuït per provar el projecte, com ara "broker.mqtt-dashboard.com", "iot.eclipse.org", etc.

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

3) Configuració del client MQTT Si el vostre intermediari MQTT necessita l’identificació del client, nom d’usuari i contrasenya, heu de canviar

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

Per a

if (client.connect (clientId, userName, passWord)) // posa el teu clientId / userName / passWord aquí

Si no, mantingueu-los per defecte. Després de fer-ho, trieu el tipus de placa corresponent i el tipus de port com es mostra a continuació i, a continuació, pengeu l’esbós al NodeMCU.

  • Tauler: "NodeMCU 0.9 (mòdul ESP-12)"
  • Freqüència de la CPU: "80 MHz" Mida del flaix:"
  • 4M (3M SPIFFS)”
  • Velocitat de càrrega: "115200"
  • Port: trieu el vostre propi port sèrie per al vostre NodeMCU

Pas 4: Configuració del client MQTT

Configuració del client MQTT
Configuració del client MQTT
Configuració del client MQTT
Configuració del client MQTT

Si no sabeu com configurar el client MQTT, visiteu el nostre darrer article:

Configuració de temes: Tema a publicar: OsoyooCommand

Tema per subscriure: OsoyooData

Resultat en curs

Un cop feta la càrrega, si la configuració del nom i la contrasenya del punt d'accés Wi-Fi està bé i el corredor MQTT està connectat, obriu el monitor sèrie, veureu el resultat següent: continueu prement aquest botó, el monitor sèrie publicarà "Estat del botó: premut" cada 2 segons; un cop deixeu anar aquest botó, el monitor sèrie emetrà "Estat del botó: no es prem" cada 2 segons.

Recomanat: