İçindekiler:

NodeMCU MQTT Iot Projesi - Anahtar Düğmesi: 4 Adım
NodeMCU MQTT Iot Projesi - Anahtar Düğmesi: 4 Adım

Video: NodeMCU MQTT Iot Projesi - Anahtar Düğmesi: 4 Adım

Video: NodeMCU MQTT Iot Projesi - Anahtar Düğmesi: 4 Adım
Video: ESP8266 NodeMCU Nedir, Nasıl Kullanılır? Örnek Web Server Projesi ve Arduino ile Kıyaslama 2024, Temmuz
Anonim
Image
Image

OSOYOO NodeMCU IOT Başlangıç kiti

Lütfen bizi facebook'ta takip edin, yeni çıkan ürünümüzü bulun ve ürünlerimizi yaratıcı bir şekilde nasıl kullanacağınıza dair fikir ve videonuzu paylaşın. Bizden para iadesi veya hediye alabilirsiniz!Facebook:

Youtube:

Bu derste, NodeMCU'ya bir anahtar düğmesi bağlayacağız ve anahtar durumunu bir MQTT aracısına göndereceğiz. Düğmeye basıldığında, NodeMCU “basıldı” düğme durumunu MQTT aracısına yayınlayacak ve MQTT istemcisi bu mesajlara abone olacaktır. Basma düğmesi bırakıldığında, “basılmadı” mesajı gönderilecektir.

Adım 1: Hazırlık

Bağlantı Grafiği
Bağlantı Grafiği

Donanım:

NodeMCU kurulu x 1

Anahtar Düğmesi x 1

1K direnç x 1

Breadboard x 1

Atlama telleri

Yazılım:

Arduino IDE(sürüm 1.6.4+)

ESP8266 Anakart Paketi ve Seri Bağlantı Noktası Sürücüsü

MQTT İstemcisi (burada MQTTBox)

Arduino kütüphanesi: PubSubClient

2. Adım: Bağlantı Grafiği

Bu derste, anahtarı kontrol etmek için D2(GPIO4) kullanıyoruz, lütfen donanımı bağlantı grafiğine göre kurun.

Not: 1k direnç aşağı çekme direnci olarak kullanılır, Böyle bir devrede anahtar kapalıyken NodeMCU girişi mantıksal olarak yüksek bir değerdedir ancak anahtar açıkken aşağı çekme direnci giriş voltajını çeker. zemine kadar (mantıksal sıfır değeri), girişte tanımsız bir durumu önler.

3. Adım: Kodlayın

kod
kod
kod
kod

Aşağıdaki kodu Arduino IDE'ye kopyalayın:

/* _ _ _ _ _ _ _ _ _ _ * / _ / /_)/ _ \| | | |/ _ / / _ / / _) _ \| / *| |_| |_ | |_| | |_| | |_| | |_| ((_| |_| | | | | * \_/(_/ \_/ \_ |\_/ \_(_)_)_/|_|_|_| * (_/ * NodeMCU, WiFi aracılığıyla MQTT istemcisine geçiş düğmesi durumu gönderir * Eğitim URL'si: * CopyRight www.osoyoo.com */ #include #include

int BUTTON_PIN = D2; //buton GPIO pin D1'e bağlı

// Bunları ağınıza uygun değerlerle güncelleyin. const char* ssid = "********";//wifi ssid'nizi buraya yazın const char* password = "********";//wifi şifrenizi buraya yazın. const char* mqtt_server = "broker.mqttdashboard.com"; //const char* mqtt_server = "iot. Eclipse.org";

WiFiClient espClient;

PubSubClient istemcisi(espClient); uzun sonMsg = 0; karakter mesajı[50];

geçersiz setup_wifi() {

gecikme(100); // Bir WiFi ağına bağlanarak başlıyoruz Serial.print("Bağlanıyor "); Serial.println(ssid); WiFi.begin(ssid, şifre); while (WiFi.status() != WL_CONNECTED) { gecikme(500); Seri.print("."); } randomSeed(micros()); Seri.println(""); Serial.println("WiFi bağlandı"); Serial.println("IP adresi: "); Serial.println(WiFi.localIP()); }

geçersiz geri arama(char* konu, bayt* yükü, imzasız int uzunluk)

{ } //geri aramayı sonlandır

geçersiz yeniden bağlanma () {

// Yeniden bağlanana kadar döngü while (!client.connected()) { Serial.print("MQTT bağlantısı deneniyor…"); // Rastgele bir istemci kimliği oluştur String clientId = "ESP8266Client-"; clientId += String(rastgele(0xffff), HEX); // Bağlanmaya çalış //MQTT brokerinin clientID, kullanıcı adı ve parolası varsa //lütfen aşağıdaki satırı if (client.connect(clientId, userName, passWord)) if (client.connect(clientId.c_str())) olarak değiştirin { Serial.println("bağlı"); //MQTT brokerine bağlandıktan sonra, herhangi bir client.subscribe("OsoyooCommand"); } else { Serial.print("başarısız, rc="); Serial.print(client.state()); Serial.println("5 saniye sonra tekrar deneyiniz"); // gecikmeyi tekrar denemeden önce 5 saniye bekleyin (5000); } } } //yeniden bağlantıyı sonlandır()

geçersiz kurulum() {

Seri.başla(115200); setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(geri arama); pinMode(BUTTON_PIN, INPUT); }

boşluk döngüsü () {

if (!client.connected()) { reconnect(); } client.loop(); uzun şimdi = millis(); int durumu; // her 2 saniyede bir mesaj gönder if (şimdi - lastMsg > 2000) { lastMsg = şimdi; durum=dijitalOkuma(BUTTON_PIN); String msg="Düğme durumu: "; if(durum==YÜKSEK) { msg= msg+ "Basılı"; karakter mesajı[58]; msg.toCharArray(mesaj, 58); Serial.println(mesaj); //sensör verilerini MQTT aracısına yayınla client.publish("OsoyooData", mesaj); } else { msg= msg+ " Basmayın"; karakter mesajı[58]; msg.toCharArray(mesaj, 58); Serial.println(mesaj); //sensör verilerini MQTT aracısına yayınla client.publish("OsoyooData", mesaj); } } }

Kodu, kendi WiFi ve MQTT ayarlarınıza uyacak şekilde aşağıdaki işlemler gibi düzenleyin:1)Hotspot Configuration:Aşağıdaki kod satırını bulun, kendi ssid'nizi ve şifrenizi buraya girin.

const char* ssid = “your_hotspot_ssid”;const char* şifre = “your_hotspot_password”;

2)MQTT Sunucu Adresi Ayarı: Mqtt_server değerinin üzerinde ayarlamak için kendi MQTT broker URL'nizi veya IP adresinizi kullanabilirsiniz. Projeyi test etmek için “broker.mqtt-dashboard.com”, “iot.eclipse.org” vb. gibi bazı ünlü ücretsiz MQTT sunucularını da kullanabilirsiniz.

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

3)MQTT İstemci AyarlarıMQTT aracınız istemci kimliği, kullanıcı adı ve parola kimlik doğrulaması gerektiriyorsa, değiştirmeniz gerekir

if (client.connect(clientId.c_str()))

NS

if (client.connect(clientId, userName, passWord)) //clientId/userName/passWord'unuzu buraya yazın

Değilse, onları varsayılan olarak tutmanız yeterlidir. Bunu yaptıktan sonra, aşağıdaki gibi karşılık gelen kart tipini ve bağlantı noktası tipini seçin, ardından çizimi NodeMCU'ya yükleyin.

  • Anakart:”NodeMCU 0.9(ESP-12 Modülü)”
  • CPU Frekansı:”80MHz”Flaş Boyutu:”
  • 4M (3M SPIFFS)”
  • Yükleme Hızı:”115200″
  • Bağlantı Noktası: NodeMCU'nuz için kendi Seri Bağlantı Noktanızı seçin

Adım 4: MQTT İstemci Ayarları

MQTT İstemci Ayarları
MQTT İstemci Ayarları
MQTT İstemci Ayarları
MQTT İstemci Ayarları

MQTT istemcisini nasıl yapılandıracağınızı bilmiyorsanız, lütfen son makalemizi ziyaret edin:

Konu Ayarları:Yayınlanacak konu: OsoyooCommand

Abone olunacak konu: OsoyooData

Koşu Sonuç

Yükleme tamamlandıktan sonra, wifi erişim noktası adı ve şifre ayarı uygunsa ve MQTT aracısı bağlıysa, Seri Monitörü açın, aşağıdaki sonucu göreceksiniz: Bu düğmeye basmaya devam edin, Seri Monitör her 2 saniyede bir “Düğme durumu: Basılı” yazacaktır.;bu düğmeyi bıraktığınızda, Seri Monitör her 2 saniyede bir “Düğme durumu: Basılmadı” yazacaktır.

Önerilen: