Mündəricat:

NodeMCU MQTT Iot Layihəsi - Keçid Düyməsi: 4 Addım
NodeMCU MQTT Iot Layihəsi - Keçid Düyməsi: 4 Addım

Video: NodeMCU MQTT Iot Layihəsi - Keçid Düyməsi: 4 Addım

Video: NodeMCU MQTT Iot Layihəsi - Keçid Düyməsi: 4 Addım
Video: ESP8STP-02 SteSP, ESP8266 D1 Mini NodeMCU ilə WiFi üzərindən istənilən açıya 2024, Noyabr
Anonim
Image
Image

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

Bağlantı qrafiki
Bağlantı qrafiki

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

Kod
Kod
Kod
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əri Ayarları
MQTT Müştəri Ayarları
MQTT Müştəri Ayarları
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ə: