Orodha ya maudhui:

Mradi wa NodeMCU MQTT Iot - Kitufe cha Kubadilisha: Hatua 4
Mradi wa NodeMCU MQTT Iot - Kitufe cha Kubadilisha: Hatua 4

Video: Mradi wa NodeMCU MQTT Iot - Kitufe cha Kubadilisha: Hatua 4

Video: Mradi wa NodeMCU MQTT Iot - Kitufe cha Kubadilisha: Hatua 4
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Novemba
Anonim
Image
Image

Kitanda cha Staro cha OSOYOO NodeMCU IOT

Tafadhali tufuate kwenye facebook, pata kipengee chetu kipya kilichotolewa na ushiriki wazo lako na Video juu ya jinsi ya kutumia bidhaa zetu kwa ubunifu. Unaweza kupata pesa taslimu au zawadi kutoka kwetu! Facebook:

Youtube:

Katika somo hili, tutaunganisha kitufe cha kubadili kwa NodeMCU, na tupeleke hali ya ubadilishaji kwa broker wa MQTT. Kitufe kinapobanwa, NodeMCU itachapisha hali ya kitufe "iliyobanwa" kwa broker wa MQTT na mteja wa MQTT atajiunga na ujumbe huu. Wakati kitufe cha kushinikiza kinatolewa, "haikubanwa" itatumwa.

Hatua ya 1: Maandalizi

Grafu ya Uunganisho
Grafu ya Uunganisho

Vifaa:

Bodi ya NodeMCU x 1

Kitufe cha Kubadili x 1

Kinga 1K x 1

Bodi ya mkate x 1

Waya za jumper

Programu:

Arduino IDE (toleo 1.6.4+)

Kifurushi cha Bodi ya ESP8266 na Dereva ya Port Serial

Mteja wa MQTT (MQTTBox hapa)

Maktaba ya Arduino: PubSubClient

Hatua ya 2: Grafu ya Uunganisho

Katika somo hili, tunatumia D2 (GPIO4) kudhibiti swichi, tafadhali sanidi vifaa kulingana na grafu ya unganisho.

Kumbuka: kipinzani cha 1k kinatumia kama kontena la kuvuta chini, Katika mzunguko kama huo, wakati swichi imefungwa, pembejeo ya NodeMCU iko kwa bei ya juu kabisa, lakini wakati swichi iko wazi, kontena la kuvuta-chini huvuta voltage ya pembejeo chini hadi chini (thamani ya sifuri ya mantiki), kuzuia hali isiyojulikana kwenye pembejeo.

Hatua ya 3: Kanuni

Kanuni
Kanuni
Kanuni
Kanuni

Nakili nambari hapa chini kwa Arduino IDE:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / * | | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | | | | | | | | NodeMCU tuma hali ya kitufe cha kubadili kwa mteja wa MQTT kupitia WiFi * URL ya Mafunzo: * CopyRight www.osoyoo.com * / #include #include

int BUTTON_PIN = D2; // kifungo kimeshikamana na GPIO pin D1

// Sasisha hizi na maadili yanayofaa mtandao wako. const char * ssid = "********"; // weka wifi yako ssid hapa const char * password = "********"; // weka nywila yako ya wifi hapa. const char * mqtt_server = "broker.mqttdashboard.com"; // const char * mqtt_server = "iot.eclipse.org";

Mteja wa WiFi espClient;

Mteja wa PubSubClient (espClient); mwisho mrefuMsg = 0; char msg [50];

batili setup_wifi () {

kuchelewesha (100); // Tunaanza kwa kuungana na mtandao wa WiFi Serial.print ("Kuunganisha kwa"); Serial.println (ssid); Kuanza kwa WiFi (ssid, password); wakati (WiFi.status ()! = WL_CONNECTED) {kuchelewa (500); Printa ya serial ("."); } nasibuSeed (micros ()); Serial.println (""); Serial.println ("WiFi imeunganishwa"); Serial.println ("Anwani ya IP:"); Serial.println (WiFi.localIP ()); }

upigaji simu utupu (mada ya * char, baiti * upakiaji wa malipo, urefu usiowekwa saini)

{} // kumaliza kupiga simu

unganisha tena () {

// Kitanzi mpaka tuunganishwe tena wakati (! Mteja.meunganishwa ()) {Serial.print ("Kujaribu unganisho la MQTT…"); // Unda mteja wa Kitambulisho cha mteja wa IDI "= ESP8266Mteja-"; mtejaId + = Kamba (bila mpangilio (0xffff), HEX); // Jaribio la kuunganisha // ikiwa broker ya MQTT ina mtejaID, jina la mtumiaji na nywila // tafadhali badilisha mstari ufuatao ikiwa (mteja. {Serial.println ("imeunganishwa"); // mara moja imeunganishwa na broker wa MQTT, jiandikishe amri ikiwa mteja yeyote. jisajili ("OsoyooCommand"); } mwingine {Serial.print ("alishindwa, rc ="); Serial.print (mteja.state ()); Serial.println ("jaribu tena kwa sekunde 5"); // Subiri sekunde 5 kabla ya kujaribu kuchelewesha tena (5000); }}} // mwisho unganisha tena ()

usanidi batili () {

Serial. Kuanza (115200); kuanzisha_wifi (); mteja.setServer (mqtt_server, 1883); mteja.setCallback (kupiga simu tena); pinMode (BUTTON_PIN, INPUT); }

kitanzi batili () {

ikiwa (! mteja.meunganishwa ()) {unganisha tena (); } mteja. kitanzi (); muda mrefu sasa = millis (); hali ya int; // tuma ujumbe kila sekunde 2 ikiwa (sasa - mwishoMsg> 2000) {lastMsg = sasa; hadhi = kusoma kwa dijiti (BUTTON_PIN); Kamba msg = "Hali ya kitufe:"; ikiwa (status == HIGH) {msg = msg + "Pressed"; ujumbe wa char [58]; msg.toCharArray (ujumbe, 58); Serial.println (ujumbe); // chapisha data ya sensa kwa mteja wa broker wa MQTT.chapisha ("OsoyooData", ujumbe); } mwingine {msg = msg + "Si Bonyeza"; ujumbe wa char [58]; msg.toCharArray (ujumbe, 58); Serial.println (ujumbe); // chapisha data ya sensa kwa mteja wa broker wa MQTT.chapisha ("OsoyooData", ujumbe); }}}

Hariri nambari ili kutoshea mipangilio yako ya WiFi na MQTT kama shughuli zifuatazo: 1) Usanidi wa Hotspot: Tafuta chini ya laini ya nambari, weka ssid yako na nywila yako hapo.

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

2) Kuweka Anwani ya Seva ya MQTT: Unaweza kutumia URL yako ya broker ya MQTT au anwani ya IP kuweka juu ya thamani ya mqtt_server. Unaweza pia kutumia seva maarufu ya bure ya MQTT kujaribu mradi kama "broker.mqtt-dashboard.com", "iot.eclipse.org" nk.

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

3) Mipangilio ya Mteja wa MQTT Ikiwa broker yako ya MQTT inahitaji mtejaID, jina la mtumiaji na uthibitishaji wa nywila, unahitaji kubadilisha

ikiwa (mteja.connect (mtejaId.c_str ()))

Kwa

ikiwa

Ikiwa sio hivyo, ziweke kama chaguo-msingi. Baada ya kufanya hivyo, chagua aina ya bodi inayolingana na aina ya bandari kama ilivyo hapo chini, kisha pakia mchoro kwa NodeMCU.

  • Bodi: "NodeMCU 0.9 (Moduli ya ESP-12)"
  • Mzunguko wa CPU: "80MHz" Ukubwa wa Kiwango:"
  • 4M (3M SPIFFS)”
  • Kasi ya Kupakia:”115200 ″
  • Bandari: Chagua Port yako ya Serial kwa NodeMCU yako

Hatua ya 4: Mipangilio ya Mteja wa MQTT

Mipangilio ya Mteja wa MQTT
Mipangilio ya Mteja wa MQTT
Mipangilio ya Mteja wa MQTT
Mipangilio ya Mteja wa MQTT

Ikiwa haujui jinsi ya kusanidi mteja wa MQTT, tafadhali tembelea nakala yetu ya mwisho:

Mipangilio ya Mada: Mada ya kuchapisha: OsoyooCommand

Mada ya kujisajili: OsoyooData

Matokeo ya Mbio

Mara baada ya kupakia kukamilika, ikiwa jina la wifi hotspot na kuweka nenosiri ni sawa na broker ya MQTT imeunganishwa, fungua Monitor Monitor, utaona matokeo yafuatayo: Endelea kubonyeza kitufe hiki, Monitor Monitor itatoa "hali ya kifungo: Imesisitizwa" kila sekunde 2 Mara baada ya kutolewa kitufe hiki, Mfuatiliaji wa serial atatoa "Hali ya kifungo: Haikubanwa" kila sekunde 2.

Ilipendekeza: