Taula de continguts:
Vídeo: NodeMCU MQTT Iot Project: botó de commutació: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
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ó
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
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
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:
Tauler de commutació de simulació de vol de bricolatge: 7 passos (amb imatges)
Tauler de commutació de simulació de vol de bricolatge: després de passar molts anys a la comunitat de simuladors de vol i involucrar-me en avions cada cop més complicats, em vaig trobar anhelant la possibilitat de mantenir les mans en interruptors físics en lloc d’intentar volar amb la mà dreta mentre feia servir el m
Oficina amb bateria. Sistema solar amb panells solars de commutació automàtica est / oest i turbina eòlica: 11 passos (amb imatges)
Oficina amb bateria. Sistema solar amb panells solars de commutació automàtica est / oest i turbina eòlica: el projecte: una oficina de 200 peus quadrats ha de funcionar amb bateria. L'oficina també ha de contenir tots els controladors, bateries i components necessaris per a aquest sistema. L’energia solar i eòlica carregarà les bateries. Hi ha un petit problema de només
Botó de commutació automàtica Vac (sense Arduino): 7 passos
Interruptor automàtic Shop Vac (no es necessita Arduino): com molts treballadors de fusta aficionats, tinc un buit de botiga connectat a la serra de taula i cada cop que vull fer un tall l’he d’encendre abans d’encendre la serra. Pot semblar una tonteria, però és un dolor al coll activar i desactivar la botiga de botigues tantes
Com fer un sensor de commutació tàctil: 7 passos
Com fer un sensor de commutació tàctil: Hii amic, avui faré un senzill sensor tàctil amb transistor BC547. Quan tocarem el cable, el LED brillarà i, com que no tocarem el cable, el LED no brillarà. Comencem
Botó de commutació: 6 passos
Togglebutton: Vi ska g ö ra en togglebutton som st ä nger av och p å en lysdiod