
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01


Kit Permulaan OSOYOO NodeMCU IOT
Ikuti kami di facebook, cari item yang baru dikeluarkan dan kongsi idea dan Video anda mengenai cara menggunakan produk kami secara kreatif. Anda boleh mendapatkan wang tunai atau hadiah dari kami! Facebook:
Youtube:
Dalam pelajaran ini, kita akan menyambungkan butang beralih ke NodeMCU, dan mengirim status beralih ke broker MQTT. Apabila butang ditekan, NodeMCU akan menerbitkan status butang "ditekan" kepada broker MQTT dan klien MQTT akan melanggan mesej ini. Apabila butang tekan dilepaskan, "tidak ditekan" akan dikirim.
Langkah 1: Persiapan

Perkakasan:
Papan NodeMCU x 1
Butang Tukar x 1
Perintang 1K x 1
Papan roti x 1
Wayar pelompat
Perisian:
Arduino IDE (versi 1.6.4+)
Pakej Papan ESP8266 dan Pemandu Pelabuhan Serial
Pelanggan MQTT (MQTTBox di sini)
Perpustakaan Arduino: PubSubClient
Langkah 2: Graf Sambungan
Dalam pelajaran ini, kami menggunakan D2 (GPIO4) untuk mengawal suis, sila siapkan perkakasan mengikut grafik sambungan.
Catatan: perintang 1k digunakan sebagai penarik tarik ke bawah, Dalam litar seperti itu, apabila suis ditutup, input NodeMCU berada pada nilai tinggi yang logik, tetapi apabila suis terbuka, perintang penarik tarik voltan masukan turun ke bawah (nilai sifar logik), mencegah keadaan tidak ditentukan pada input.
Langkah 3: Kod


Salin kod di bawah ke Arduino IDE:
/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / * | | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _ / (_ / / _ / / _ | / _ / / _ (_) _) _ / | _ | _ | _ | * (_ / * Gunakan Status butang suis hantar NodeMCU kepada klien MQTT melalui WiFi * URL Tutorial: * CopyRight www.osoyoo.com * / #include #include
int BUTTON_PIN = D2; // butang disambungkan ke pin GPIO D1
// Kemas kini dengan nilai yang sesuai untuk rangkaian anda. const char * ssid = "********"; // letakkan wifi ssid anda di sini const char * password = "********"; // masukkan kata laluan wifi anda di sini. const char * mqtt_server = "broker.mqttdashboard.com"; // const char * mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
Pelanggan PubSubClient (espClient); lama terakhirMsg = 0; char msg [50];
batal setup_wifi () {
kelewatan (100); // Kita mulakan dengan menyambung ke rangkaian WiFi Serial.print ("Menyambung ke"); Serial.println (ssid); WiFi.begin (ssid, kata laluan); sementara (WiFi.status ()! = WL_CONNECTED) {kelewatan (500); Cetakan bersiri ("."); } randomSeed (mikro ()); Serial.println (""); Serial.println ("WiFi disambungkan"); Serial.println ("Alamat IP:"); Serial.println (WiFi.localIP ()); }
kekosongan panggilan balik (topik char *, bait * muatan, panjang int tidak ditandatangani)
{} // menamatkan panggilan balik
batal sambungkan semula () {
// Gelung sehingga kita disambungkan semula sementara (! Client.connected ()) {Serial.print ("Mencuba sambungan MQTT …"); // Buat ID pelanggan rawak String clientId = "ESP8266Client-"; clientId + = Rentetan (rawak (0xffff), HEX); // Cuba sambung // jika anda broker MQTT mempunyai ID pelanggan, nama pengguna dan kata laluan // sila ubah baris berikut menjadi jika (client.connect (clientId, userName, passWord)) jika (client.connect (clientId.c_str ())) {Serial.println ("bersambung"); // setelah disambungkan ke broker MQTT, langgan perintah jika ada pelanggan.subscribe ("OsoyooCommand"); } lain {Serial.print ("gagal, rc ="); Serial.print (pelanggan.state ()); Serial.println ("cuba lagi dalam 5 saat"); // Tunggu 5 saat sebelum mencuba penundaan (5000); }}} // sambung semula ()
batal persediaan () {
Serial.begin (115200); persediaan_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (panggilan balik); pinMode (BUTTON_PIN, INPUT); }
gelung kosong () {
jika (! client.connected ()) {reconnect (); } pelanggan.loop (); lama sekarang = millis (); status int; // hantar mesej setiap 2 saat jika (sekarang - lastMsg> 2000) {lastMsg = sekarang; status = digitalRead (BUTTON_PIN); String msg = "Status butang:"; jika (status == TINGGI) {msg = msg + "Ditekan"; mesej char [58]; msg.toCharArray (mesej, 58); Serial.println (mesej); // terbitkan data sensor ke klien broker MQTT.publish ("OsoyooData", mesej); } lain {msg = msg + "Not Press"; mesej char [58]; msg.toCharArray (mesej, 58); Serial.println (mesej); // terbitkan data sensor ke klien broker MQTT.publish ("OsoyooData", mesej); }}}
Edit kod tersebut agar sesuai dengan tetapan WiFi dan MQTT anda sendiri seperti operasi berikut: 1) Konfigurasi Hotspot: Cari baris kod di bawah ini, masukkan ssid dan kata laluan anda sendiri di sana.
const char * ssid = "your_hotspot_ssid"; const char * kata laluan = "your_hotspot_password";
2) Tetapan Alamat Pelayan MQTT: Anda boleh menggunakan URL atau alamat IP broker MQTT anda sendiri untuk menetapkan nilai mqtt_server di atas. Anda juga boleh menggunakan beberapa pelayan MQTT percuma yang terkenal untuk menguji projek seperti "broker.mqtt-dashboard.com", "iot.eclipse.org" dll.
const char * mqtt_server = “broker.mqtt-dashboard.com”;
3) Tetapan Pelanggan MQTTJika broker MQTT anda memerlukan pengesahan pelanggan, nama pengguna dan kata laluan, anda perlu menukar
jika (client.connect (clientId.c_str ()))
Ke
jika (client.connect (clientId, userName, passWord)) // letakkan clientId / userName / passWord anda di sini
Sekiranya tidak, simpan sahaja sebagai lalai. Selepas melakukannya, pilih jenis papan dan jenis port yang sesuai seperti di bawah, kemudian muat naik lakaran ke NodeMCU.
- Papan: "NodeMCU 0.9 (Modul ESP-12)"
- Kekerapan CPU: "80MHz" Saiz Kilat:"
- 4M (SPIFFS 3M)"
- Kelajuan Muat Naik:”115200 ″
- Port: Pilih Port Serial anda sendiri untuk NodeMCU anda
Langkah 4: Tetapan Pelanggan MQTT


Sekiranya anda tidak tahu cara mengkonfigurasi klien MQTT, sila lawati artikel terakhir kami:
Tetapan Topik: Topik untuk diterbitkan: OsoyooCommand
Topik untuk melanggan: OsoyooData
Keputusan Menjalankan
Setelah muat naik selesai, jika tetapan nama dan kata laluan hotspot wifi baik dan broker MQTT disambungkan, buka Serial Monitor, anda akan melihat hasil berikut: Terus menekan butang ini, Serial Monitor akan mengeluarkan "Status butang: Ditekan" setiap 2 saat sekali melepaskan butang ini, Serial Monitor akan mengeluarkan "Status butang: Tidak Ditekan" setiap 2 saat.
Disyorkan:
Cara Membuat RADAR Menggunakan Arduino untuk Projek Sains - Projek Arduino Terbaik: 5 Langkah

Cara Membuat RADAR Menggunakan Arduino untuk Projek Sains | Projek Arduino Terbaik: Hai rakan-rakan, dalam pengajaran ini saya akan menunjukkan kepada anda bagaimana membuat sistem radar yang menakjubkan yang dibina menggunakan arduino nano projek ini sangat sesuai untuk projek sains dan anda boleh membuatnya dengan pelaburan dan peluang yang sangat rendah jika memenangi hadiah adalah bagus untuk
Projek Totoro - IoT & MQTT & ESP01: 7 Langkah (dengan Gambar)

Projek Totoro - IoT & MQTT & ESP01: Projek Totoro adalah projek IoT yang bagus yang boleh anda salin dalam pelbagai bentuk lain. Dengan menggunakan papan ESP01, dengan protokol MQTT, anda boleh menyampaikan status butang kepada MQTT Broker (di saya case AdafruitIO). Panduan berguna untuk MQTT dan Iklan
10 Projek Arduino Asas untuk Pemula! Buat sekurang-kurangnya 15 Projek Dengan Papan Tunggal !: 6 Langkah

10 Projek Arduino Asas untuk Pemula! Buat sekurang-kurangnya 15 Projek Dengan Papan Tunggal !: Projek Arduino & Lembaga Tutorial; Termasuk 10 projek asas Arduino. Semua kod sumber, fail Gerber dan banyak lagi. Tiada SMD! Pematerian mudah untuk semua orang. Komponen yang mudah ditanggalkan dan diganti. Anda boleh membuat sekurang-kurangnya 15 projek dengan satu
TAMBAH Tukar Sentuh Kapasitif ke Projek Anda: 7 Langkah

TAMBAH Tukar Sentuh Kapasitif ke Projek Anda: Cara menambahkan suis sentuh kapasitif ke projek anda di rumah. Ada rakan elektronik di tutorial ini saya akan menunjukkan kepada anda bagaimana anda boleh menambahkan suis sentuh kapasitif ke projek elektronik anda dengan harga murah, dan memberikan projek diy anda penampilan profesional
Pembakar Bertenaga USB! Projek ini Boleh Membakar Melalui Plastik / Kayu / Kertas (Projek yang menyeronokkan Juga Harus Kayu Sangat Baik): 3 Langkah

Pembakar Bertenaga USB! Projek ini Boleh Membakar Melalui Plastik / Kayu / Kertas (Projek yang Menyeronokkan Juga Harus Kayu Sangat Baik): JANGAN JADIKAN MENGGUNAKAN USB INI !!!! saya mendapat tahu bahawa ia boleh merosakkan komputer anda dari semua komen. komputer saya baik-baik saja. Gunakan pengecas telefon 600ma 5v. Saya menggunakan ini dan berfungsi dengan baik dan tidak ada yang boleh rosak jika anda menggunakan palam keselamatan untuk menghentikan kuasa