Daftar Isi:

NodeMCU MQTT Iot Project - Tombol Switch: 4 Langkah
NodeMCU MQTT Iot Project - Tombol Switch: 4 Langkah

Video: NodeMCU MQTT Iot Project - Tombol Switch: 4 Langkah

Video: NodeMCU MQTT Iot Project - Tombol Switch: 4 Langkah
Video: Install ChatGPT on Nodemcu ESP8266!! Passable? #shortvideos #electrical #nodemcu #soelectronics 2024, Juli
Anonim
Image
Image

OSOYOO NodeMCU IOT Starter kit

Ikuti kami di facebook, temukan item baru kami yang dirilis dan bagikan ide dan Video Anda tentang cara menggunakan produk kami secara kreatif. Anda bisa mendapatkan cash back atau giveaway dari kami! Facebook:

Youtube:

Dalam pelajaran ini, kita akan menghubungkan tombol sakelar ke NodeMCU, dan mengirim status sakelar ke broker MQTT. Ketika tombol ditekan, NodeMCU akan mempublikasikan status tombol "ditekan" ke broker MQTT dan klien MQTT akan berlangganan pesan-pesan ini. Saat tombol tekan dilepaskan, "tidak ditekan" akan dikirim.

Langkah 1: Persiapan

Grafik Koneksi
Grafik Koneksi

Perangkat keras:

Papan NodeMCU x 1

Tombol Beralih x 1

1K resistor x 1

Papan tempat memotong roti x 1

Kabel jumper

Perangkat lunak:

Arduino IDE (versi 1.6.4+)

Paket Papan ESP8266 dan Driver Port Serial

Klien MQTT (MQTTBox di sini)

Perpustakaan Arduino: PubSubClient

Langkah 2: Grafik Koneksi

Dalam pelajaran ini, kami menggunakan D2(GPIO4) untuk mengontrol sakelar, silakan atur perangkat keras sesuai dengan grafik koneksi.

Catatan: resistor 1k digunakan sebagai resistor pull-down, Dalam rangkaian seperti itu, ketika sakelar ditutup, input NodeMCU berada pada nilai tinggi yang logis, tetapi ketika sakelar terbuka, resistor pull-down menarik tegangan input down to ground (nilai nol logis), mencegah keadaan tidak terdefinisi pada input.

Langkah 3: Kode

Kode
Kode
Kode
Kode

Salin kode di bawah ini ke Arduino IDE:

/* _ _ _ _ _ _ _ _ _ _ * / _ / /_)/ _ \| | | |/ _ / / _ / / _) _ \| / *| |_| |_ | |_| | |_| | |_| | |_| ((_| |_| | | | | * \_/(_/ \_/ \_ |\_/ \_(_)_)_/|_|_|_| * (_/ * Gunakan NodeMCU mengirim status tombol sakelar ke klien MQTT melalui WiFi * URL Tutorial: * CopyRight www.osoyoo.com */ #include #include

int BUTTON_PIN = D2; //tombol terhubung ke pin GPIO D1

// Perbarui ini dengan nilai yang sesuai untuk jaringan Anda. const char* ssid = "*********";//letakkan ssid wifi Anda di sini const char* password = "*********";//masukkan kata sandi wifi Anda di sini. const char* mqtt_server = "broker.mqttdashboard.com"; //const char* mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

klien PubSubClient (espClient); long lastMsg = 0; pesan char[50];

batalkan setup_wifi() {

penundaan(100); // Kita mulai dengan menghubungkan ke jaringan WiFi Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, kata sandi); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } randomSeed(mikro()); Serial.println(""); Serial.println("WiFi terhubung"); Serial.println("Alamat IP: "); Serial.println(WiFi.localIP()); }

void callback(char* topic, byte* payload, unsigned int length)

{} //akhiri panggilan balik

batal sambungkan kembali() {

// Ulangi sampai kita terhubung kembali while (!client.connected()) { Serial.print("Mencoba koneksi MQTT…"); // Buat ID klien acak String clientId = "ESP8266Client-"; clientId += String(acak(0xffff), HEX); // Mencoba untuk terhubung // jika broker MQTT Anda memiliki ID klien, nama pengguna, dan kata sandi // harap ubah baris berikut menjadi if (client.connect(clientId, userName, passWord)) if (client.connect(clientId.c_str())) { Serial.println("terhubung"); //setelah terhubung ke broker MQTT, berlangganan perintah jika ada client.subscribe("OsoyooCommand"); } else { Serial.print("gagal, rc="); Serial.print(klien.status()); Serial.println("coba lagi dalam 5 detik"); // Tunggu 5 detik sebelum mencoba lagi delay(5000); } } } //akhiri koneksi ulang()

batalkan pengaturan() {

Serial.begin(115200); setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(panggilan balik); pinMode(BUTTON_PIN, INPUT); }

lingkaran kosong() {

if (!client.connected()) { hubungkan kembali(); } klien.loop(); lama sekarang = mili(); status int; //kirim pesan setiap 2 detik if (now - lastMsg > 2000) { lastMsg = now; status=digitalRead(BUTTON_PIN); String msg="Status tombol: "; if(status==HIGH) { msg= msg+ "Ditekan"; pesan karakter[58]; msg.toCharArray(pesan, 58); Serial.println(pesan); //mempublikasikan data sensor ke klien broker MQTT.publish("OsoyooData", pesan); } else { msg= msg+ " Tidak Ditekan"; pesan karakter[58]; msg.toCharArray(pesan, 58); Serial.println(pesan); //mempublikasikan data sensor ke klien broker MQTT.publish("OsoyooData", pesan); } } }

Edit kode agar sesuai dengan pengaturan WiFi dan MQTT Anda sendiri sebagai operasi berikut: 1) Konfigurasi Hotspot: Temukan baris kode di bawah ini, masukkan ssid dan kata sandi Anda sendiri di sana.

const char* ssid = “your_hotspot_ssid”;const char* password = “your_hotspot_password”;

2) Pengaturan Alamat Server MQTT: Anda dapat menggunakan URL atau alamat IP broker MQTT Anda sendiri untuk menetapkan nilai mqtt_server di atas. Anda juga dapat menggunakan beberapa server MQTT gratis yang terkenal untuk menguji proyek seperti “broker.mqtt-dashboard.com”, “iot. Eclipse.org” dll.

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

3) Pengaturan Klien MQTT Jika broker MQTT Anda memerlukan ID klien, otentikasi nama pengguna dan kata sandi, Anda perlu mengubah

jika (client.connect(clientId.c_str()))

Ke

if (client.connect(clientId, userName, passWord)) // letakkan clientId/userName/passWord Anda di sini

Jika tidak, simpan saja sebagai default. Setelah itu, pilih jenis papan dan jenis port yang sesuai seperti di bawah ini, lalu unggah sketsa ke NodeMCU.

  • Papan: "NodeMCU 0.9 (Modul ESP-12)"
  • Frekuensi CPU: "80MHz" Ukuran Flash:"
  • 4M (3M SPIFFS)”
  • Kecepatan Unggah:”115200″
  • Port: Pilih Port Serial Anda sendiri untuk NodeMCU Anda

Langkah 4: Pengaturan Klien MQTT

Pengaturan Klien MQTT
Pengaturan Klien MQTT
Pengaturan Klien MQTT
Pengaturan Klien MQTT

Jika Anda tidak tahu cara mengkonfigurasi klien MQTT, silakan kunjungi artikel terakhir kami:

Pengaturan Topik:Topik yang akan dipublikasikan: OsoyooCommand

Topik untuk berlangganan: OsoyooData

Hasil Berjalan

Setelah pengunggahan selesai, jika pengaturan nama hotspot wifi dan kata sandi ok dan broker MQTT terhubung, buka Serial Monitor, Anda akan melihat hasil berikut: Tekan terus tombol ini, Serial Monitor akan menampilkan "Status tombol: Ditekan" setiap 2 detik; setelah melepaskan tombol ini, Serial Monitor akan menampilkan “Status Tombol: Tidak Ditekan” setiap 2 detik.

Direkomendasikan: