Mündəricat:
Video: NodeMCU MQTT Iot Layihəsi - Keçid Düyməsi: 4 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
OSOYOO NodeMCU IOT Başlanğıc dəsti
Zəhmət olmasa bizi facebook -da izləyin, yeni buraxılmış məhsulumuzu tapın və məhsullarımızdan necə yaradıcı şəkildə istifadə etmək barədə fikir və videonuzu paylaşın. Bizdən nağd pul geri ala və ya hədiyyə ala bilərsiniz! Facebook:
Youtube:
Bu dərsdə bir keçid düyməsini NodeMCU -ya bağlayacağıq və keçid vəziyyətini MQTT brokerinə göndərəcəyik. Düymə basıldıqda, NodeMCU düyməni MQTT brokerinə "basıldığını" dərc edəcək və MQTT müştərisi bu mesajlara abunə olacaq. Düymə buraxıldıqda "basılmadı" mesajı göndəriləcək.
Addım 1: Hazırlıq
Avadanlıq:
NodeMCU lövhəsi x 1
Düymə x 1
1K müqavimət x 1
Çörək lövhəsi x 1
Jumper telləri
Proqram təminatı:
Arduino IDE (1.6.4+ versiyası)
ESP8266 Kart Paketi və Serial Port Sürücüsü
MQTT Müştəri (MQTTBox burada)
Arduino kitabxanası: PubSubClient
Addım 2: Bağlantı qrafiki
Bu dərsdə açarı idarə etmək üçün D2 (GPIO4) istifadə edirik, zəhmət olmasa cihazı qrafikə uyğun olaraq qurun.
Qeyd: 1k rezistor aşağı çəkmə rezistoru kimi istifadə olunur, Belə bir dövrədə, keçid bağlandıqda, NodeMCU girişi məntiqi yüksək bir dəyərdədir, ancaq açar açıldıqda açılan müqavimət giriş gərginliyini çəkir yerə qədər (məntiqi sıfır dəyəri), girişdə müəyyən edilməmiş bir vəziyyətin qarşısını alır.
Addım 3: Kod
Aşağıdakı kodu Arduino IDE -ə kopyalayın:
/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * NodeMCU, WiFi vasitəsilə MQTT müştərisinə keçid düyməsi vəziyyətini göndərir * Təlimat URL: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2; // düyməsi D1 GPIO pininə bağlıdır
// Bunları şəbəkənizə uyğun dəyərlərlə yeniləyin. const char*ssid = "********"; // wifi ssidinizi bura qoyun const char*password = "********"; // wifi şifrənizi bura qoyun. const char* mqtt_server = "broker.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
PubSubClient müştəri (espClient); uzun müddətMsg = 0; char msg [50];
void setup_wifi () {
gecikmə (100); // Bir WiFi şəbəkəsinə qoşulmaqla başlayırıq Serial.print ("Bağlanır"); Serial.println (ssid); WiFi.begin (ssid, parol); while (WiFi.status ()! = WL_CONNECTED) {gecikmə (500); Serial.print ("."); } randomSeed (mikro ()); Serial.println (""); Serial.println ("WiFi bağlıdır"); Serial.println ("IP ünvanı:"); Serial.println (WiFi.localIP ()); }
boş zəng (char* mövzu, bayt* yük, imzasız int uzunluğu)
{} // geri çağırışı bitir
void reconnect () {
// (! Client.connected ()) {Serial.print ("MQTT bağlantısı cəhd edilir …"); // Təsadüfi bir müştəri ID yaradın String clientId = "ESP8266Client-"; clientId += String (təsadüfi (0xffff), HEX); // Bağlanmağa cəhd edin // MQTT brokerində clientID, istifadəçi adı və şifrə varsa // aşağıdakı sətri if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("bağlı"); // MQTT brokerinə qoşulduqda, hər hansı bir müştəri varsa abunə olun.subscribe ("OsoyooCommand"); } başqa {Serial.print ("uğursuz oldu, rc ="); Serial.print (client.state ()); Serial.println ("5 saniyə ərzində yenidən cəhd edin"); // Yenidən sınamaq üçün 5 saniyə gözləyin (5000); }}} // yenidən əlaqəni bitir ()
boş quraşdırma () {
Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (geri zəng); pinMode (BUTTON_PIN, GİRİŞ); }
boşluq döngəsi () {
if (! client.connected ()) {reconnect (); } client.loop (); uzun müddətdir = millis (); int statusu; // hər 2 saniyədə bir mesaj göndərin, əgər (indi - lastMsg> 2000) {lastMsg = indi; status = digitalRead (BUTTON_PIN); String msg = "Düymənin vəziyyəti:"; if (status == YÜKSEK) {msg = msg+ "Basıldı"; char mesajı [58]; msg.toCharArray (mesaj, 58); Serial.println (mesaj); // sensor məlumatlarını MQTT broker client.publish -də dərc edin ("OsoyooData", mesaj); } else {msg = msg+ "Not Press"; char mesajı [58]; msg.toCharArray (mesaj, 58); Serial.println (mesaj); // sensor məlumatlarını MQTT brokerinə dərc edin client.publish ("OsoyooData", mesaj); }}}
Aşağıdakı əməliyyatlar kimi öz WiFi və MQTT parametrlərinizə uyğun olaraq kodu düzəldin: 1) Hotspot Konfiqurasiyası: Aşağıda kod xəttini tapın, öz ssid və şifrənizi ora qoyun.
const char* ssid = "your_hotspot_ssid"; const char* parol = "your_hotspot_password";
2) MQTT Server Ünvan Ayarı: mqtt_server dəyərini yuxarıda təyin etmək üçün öz MQTT broker URL və ya IP ünvanınızdan istifadə edə bilərsiniz. Layihəni sınamaq üçün "broker.mqtt-dashboard.com", "iot.eclipse.org" və s. Kimi məşhur bir pulsuz MQTT serverindən də istifadə edə bilərsiniz.
const char* mqtt_server = "broker.mqtt-dashboard.com";
3) MQTT Müştəri Ayarları MQTT brokerinizdən müştəri kimliyi, istifadəçi adı və şifrə doğrulaması tələb olunarsa, dəyişdirməlisiniz.
əgər (client.connect (clientId.c_str ()))
Üçün
if (client.connect (clientId, userName, passWord)) // clientId/userName/passWord -u bura daxil edin
Əks təqdirdə, onları standart olaraq saxlayın. Bundan sonra, aşağıdakı kimi əsas lövhə tipini və port tipini seçin, sonra eskizi NodeMCU -ya yükləyin.
- Lövhə: "NodeMCU 0.9 (ESP-12 Modulu)"
- CPU Tezliyi: "80MHz" Flaş Ölçüsü:"
- 4M (3M SPIFFS)”
- Yükləmə Sürəti:”115200 ″
- Port: NodeMCU üçün öz Serial Portunuzu seçin
Addım 4: MQTT Müştəri Ayarları
MQTT müştərisini necə konfiqurasiya edəcəyinizi bilmirsinizsə, son məqaləmizə daxil olun:
Mövzular Ayarları: Dərc ediləcək mövzu: OsoyooCommand
Abunə olmaq üçün mövzu: OsoyooData
Qaçış Nəticəsi
Yükləmə tamamlandıqdan sonra, wifi qaynar nöqtəsinin adı və parol ayarı düzgündürsə və MQTT brokeri bağlanırsa, Serial Monitoru açın, aşağıdakı nəticəni görəcəksiniz: Bu düyməni basmağa davam edin, Serial Monitor hər 2 saniyədə "Düymə vəziyyəti: Basıldı" çıxacaq.; bu düyməni buraxdıqdan sonra Serial Monitor hər 2 saniyədə "Düymə vəziyyəti: Basılmır" yazısını çıxaracaq.
Tövsiyə:
5 dollarlıq ev avtomatlaşdırma düyməsi: 4 addım
5 dollarlıq ev avtomatlaşdırma düyməsi: 5 dollarlıq ev avtomatlaşdırma düyməsiBəzən ən sadə həll tək düymədir. İşıqların çoxunu söndürən, digərlərini müəyyən səviyyələrə qoyan ev avtomatlaşdırma mərkəzimizdə (Hubitat Elevation) "yuxu vaxtı" rejimini işə salmağın asan bir yolunu istədik
Raspberry Pi üçün söndürmə düyməsi: 3 addım
Raspberry Pi üçün söndürmə düyməsi: Raspberry Pi, müxtəlif IoT/robot/ağıllı ev/… layihə tətbiqləri yaratmağa imkan verən çox faydalı bir hesablama platformasıdır. Normal bir kompüterlə müqayisədə sahib olmadığı bir şey, bağlama gücünü kəsmə düyməsidir. Elə isə necə yarada bilərik
Ayaq İdarə Edilən Danış Düyməsi: 5 Addım
Ayaqla İdarə Edilən Danışıq Düyməsi: Ayaqlarınızla istifadə edə biləcəyiniz Danışmaq üçün Düyməni belə hazırladım
Totoro Layihəsi - IoT & MQTT & ESP01: 7 Addım (Şəkillərlə birlikdə)
Totoro Layihəsi - IoT & MQTT & ESP01: Totoro Layihəsi, bir çox fərqli formada kopyalaya biləcəyiniz gözəl bir IoT layihəsidir. case AdafruitIO) .MQTT və Reklam üçün faydalı bir bələdçi
Tətbiqinizi idarə edən IoT Düyməsi: 6 addım
Tətbiqinizə Nəzarət Edən Düymə: Mikrodenetleyicilər haqqında ən çox bəyəndiyim şeylərdən biri onları giriş cihazı kimi istifadə etmək bacarığıdır, məsələn, Arduino Micro HID (insan interfeysi cihazı) kimi istifadə edilə bilər ki, bu da bəzi kodlaşdırma və öz klaviaturanızı necə edə biləcəyinizi bilirsiniz