Talaan ng mga Nilalaman:
- Hakbang 1: Paghahanda
- Hakbang 2: Graph ng Koneksyon
- Hakbang 3: Code
- Hakbang 4: Mga setting ng MQTT Client
Video: NodeMCU MQTT Iot Project - Button ng Lumipat: 4 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
OSOYOO NodeMCU IOT Starter kit
Mangyaring sundin kami sa facebook, hanapin ang aming bagong inilabas na item at ibahagi ang iyong ideya at Video tungkol sa kung paano malikhaing gamitin ang aming mga produkto. Maaari kang makakuha ng cash o giveaway mula sa amin! Facebook:
Youtube:
Sa araling ito, ikonekta namin ang isang pindutan ng paglipat sa NodeMCU, at ipadala ang katayuan ng switch sa isang broker ng MQTT. Kapag pinindot ang pindutan, ilalathala ng NodeMCU ang katayuan ng pindutan na "pinindot" sa MQTT broker at mag-subscribe ang client ng MQTT sa mga mensaheng ito. Kapag ang pindutan ng push ay pinakawalan, "hindi pinindot" ay ipapadala.
Hakbang 1: Paghahanda
Hardware:
Lupon ng NodeMCU x 1
Pindutan ng Lumipat x 1
1K risistor x 1
Breadboard x 1
Jumper wires
Software:
Arduino IDE (bersyon 1.6.4+)
Ang Package ng Board ng ESP8266 at ang Serial Port Driver
MQTT Client (MQTTBox dito)
Library ng Arduino: PubSubClient
Hakbang 2: Graph ng Koneksyon
Sa araling ito, ginagamit namin ang D2 (GPIO4) upang makontrol ang switch, mangyaring i-setup ang hardware ayon sa graph ng koneksyon.
Tandaan: ang 1k risistor ay ginagamit bilang isang pull down risistor, Sa naturang circuit, kapag ang switch ay sarado, ang input ng NodeMCU ay nasa isang lohikal na mataas na halaga, ngunit kapag ang switch ay bukas, ang pull-down na risistor ay hinihila ang input boltahe pababa sa lupa (lohikal na zero halaga), pinipigilan ang isang hindi natukoy na estado sa input.
Hakbang 3: Code
Kopyahin ang code sa ibaba sa Arduino IDE:
/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / * | | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _ / (_ / / _ / / _ | / _ / / _ (_) _) _ / | _ | _ | _ | * (_ / * Gamitin ang Nagpadala ang NodeMCU ng katayuan ng switch button sa MQTT client sa pamamagitan ng WiFi * Tutorial URL: * CopyRight www.osoyoo.com * / #include #include
int BUTTON_PIN = D2; // button ay konektado sa GPIO pin D1
// I-update ang mga ito sa mga halagang angkop para sa iyong network. Const char * ssid = "********"; // ilagay ang iyong wifi ssid dito const char * password = "********"; // ilagay ang iyong wifi password dito. const char * mqtt_server = "broker.mqttdashboard.com"; // const char * mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
PubSubClient client (espClient); mahaba lastMsg = 0; char msg [50];
void setup_wifi () {
pagkaantala (100); // Nagsisimula kami sa pamamagitan ng pagkonekta sa isang WiFi network Serial.print ("Kumokonekta sa"); Serial.println (ssid); WiFi.begin (ssid, password); habang (WiFi.status ()! = WL_CONNected) {pagkaantala (500); Serial.print ("."); } randomSeed (micros ()); Serial.println (""); Serial.println ("Konektado sa WiFi"); Serial.println ("IP address:"); Serial.println (WiFi.localIP ()); }
void callback (char * paksa, byte * payload, unsigned int haba)
{} // tapusin ang callback
walang bisa muling kumonekta () {
// Loop hanggang sa kumonekta ulit kami habang (! Client.connected ()) {Serial.print ("Pagtatangka sa koneksyon ng MQTT …"); // Lumikha ng isang random client ID String clientId = "ESP8266Client-"; clientId + = String (random (0xffff), HEX); // Subukang kumonekta // kung ikaw MQTT broker ay may clientID, username at password // mangyaring baguhin ang sumusunod na linya sa kung (client.connect (clientId, userName, passWord)) kung (client.connect (clientId.c_str ())) {Serial.println ("konektado"); // sa sandaling nakakonekta sa MQTT broker, mag-subscribe ng utos kung mayroong anumang client.subscribe ("OsoyooCommand"); } iba pa {Serial.print ("failed, rc ="); Serial.print (client.state ()); Serial.println ("subukang muli sa 5 segundo"); // Maghintay ng 5 segundo bago subukang muli ang pagkaantala (5000); }}} // end reconnect ()
walang bisa ang pag-setup () {
Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (callback); pinMode (BUTTON_PIN, INPUT); }
void loop () {
kung (! client.connected ()) {muling magkonekta (); } client.loop (); mahaba ngayon = millis (); int status; // send message bawat 2 segundo kung (ngayon - lastMsg> 2000) {lastMsg = now; katayuan = digitalRead (BUTTON_PIN); String msg = "Katayuan ng pindutan:"; kung (status == MATAAS) {msg = msg + "Pinindot"; mensahe ng char [58]; msg.toCharArray (mensahe, 58); Serial.println (mensahe); // publish data ng sensor sa MQTT broker client.publish ("OsoyooData", mensahe); } iba pa {msg = msg + "Not Press"; mensahe ng char [58]; msg.toCharArray (mensahe, 58); Serial.println (mensahe); // publish data ng sensor sa MQTT broker client.publish ("OsoyooData", mensahe); }}}
I-edit ang code upang magkasya sa iyong sariling mga setting ng WiFi at MQTT bilang mga sumusunod na operasyon: 1) Hotspot Configration: Hanapin sa ibaba ang linya ng code, ilagay ang iyong sariling ssid at password doon.
const char * ssid = "your_hotspot_ssid"; const char * password = "your_hotspot_password";
2) Pagtatakda ng MQTT Server Address: Maaari mong gamitin ang iyong sariling MQTT broker URL o IP address upang maitakda sa itaas ang halagang mqtt_server. Maaari mo ring gamitin ang ilang sikat na libreng MQTT server upang subukan ang proyekto tulad ng "broker.mqtt-dashboard.com", "iot.eclipse.org" atbp.
const char * mqtt_server = "broker.mqtt-dashboard.com";
3) Mga setting ng Client ng MQTT Kung ang iyong MQTT broker ay nangangailangan ng clientID, username at password authentication, kailangan mong baguhin
kung (client.connect (clientId.c_str ()))
Sa
kung (client.connect (clientId, userName, passWord)) // ilagay ang iyong clientId / userName / passWord dito
Kung hindi, panatilihin lamang ang mga ito bilang default. Pagkatapos gawin iyon, piliin ang uri ng coresponding board at uri ng port tulad ng sa ibaba, pagkatapos ay i-upload ang sketch sa NodeMCU.
- Lupon: "NodeMCU 0.9 (ESP-12 Modyul)"
- Dalas ng CPU: "80MHz" Laki ng Flash:"
- 4M (3M SPIFFS)”
- Bilis ng Pag-upload:”115200 ″
- Port: Pumili ng iyong sariling Serial Port para sa iyong NodeMCU
Hakbang 4: Mga setting ng MQTT Client
Kung hindi mo alam kung paano i-configure ang MQTT client, mangyaring bisitahin ang aming huling artikulo:
Mga Setting ng Mga Paksa: Paksa upang mai-publish: OsoyooCommand
Paksa upang mag-subscribe: OsoyooData
Tumatakbo na Resulta
Kapag tapos na ang pag-upload, kung ang pangalan ng wifi hotspot at setting ng password ay ok at ang MQTT broker ay konektado, buksan ang Serial Monitor, makikita mo ang sumusunod na resulta: Patuloy na pindutin ang pindutan na ito, ang Serial Monitor ay maglalabas ng "katayuan ng Button: Pinindot" bawat 2 segundo; sa sandaling bitawan ang pindutang ito, ang Serial Monitor ay maglalabas ng "Katayuan ng pindutan: Hindi Pinindot" bawat 2 segundo.
Inirerekumendang:
Arduino Uno + ESP8266 ESP-01 Lumipat sa isang lampara sa Internet (Hindi LAN WIFI): 3 Mga Hakbang
Arduino Uno + ESP8266 ESP-01 Lumipat sa isang lampara sa Internet (Hindi LAN WIFI): Lumipat sa isang lampara sa pamamagitan ng website sa anumang aparato gamit ang web browser sa aparatong iyon kahit na malayo ka sa lampara. Maaari mong ma-access ang website sa pamamagitan ng iyong laptop, smartphone o iba pa sa web browser na naka-install sa device na iyon
Paano Gumawa ng Clap? ON / OFF Lumipat -- Nang Walang Anumang IC: 6 Mga Hakbang
Paano Gumawa ng Clap? ON / OFF Lumipat || Nang Walang Anumang IC: Ito Ay Isang Pag-clap ON Ng Switch Nang Walang Anumang IC. Maaari kang Pumalakpak? First Time Saka The Light Bulb? ON At Clap Second Time Ang Light Bulb? PATAY. Ang Circuit Batay Sa SR Flip-flop. Mga Bahagi 1. BC547 NPN Transistors (4pcs) 2. 10k Resistors (5pcs) 3. 1K Lumaban
Paano Lumipat ang GPS sa Iba't ibang Kagamitan: 5 Mga Hakbang
Paano Lumipat ang GPS sa Iba't Ibang Kagamitan: Ang proseso ay upang alisin ang GPS mula sa thecab ng pagsasama, ilagay ito sa taksi ng traktor, alisin ang takip ng display mula sa pagsamahin, at ilagay ito sa traktor. Hindi na kakailanganin ng mga tool upang makumpleto ang prosesong ito at maging maingat sa pag-akyat sa paligid ng equip
Lumipat na Load Resistor Bank Na May Mas Maliit na Laki ng Hakbang: 5 Hakbang
Ang Switched Load Resistor Bank Na May Mas Maliit na Laki ng Hakbang: Kinakailangan ang mga Load Resistor Bank para sa pagsubok ng mga produkto ng kuryente, para sa paglalarawan ng mga solar panel, sa mga test lab at sa mga industriya. Nagbibigay ang mga rheostat ng tuluy-tuloy na pagkakaiba-iba sa paglaban sa pag-load. Gayunpaman, habang ang halaga ng paglaban ay nabawasan, ang lakas
Ang Panasonic Cd Player ay nakabukas at Lumipat sa Lumipat: 6 na Hakbang
Panasonic Cd Player on and Off Switch: Ang on at off na pindutan sa aking panasonic cd player ay muling nagising kaya kailangan ko ng isang paraan upang patayin ito upang mai-save ang mga baterya. Nagpasya akong maglagay ng isang maliit na switch at isang iba't ibang mga pack ng baterya na ayusin mo ang problema