İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13
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
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
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 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:
ESP8266 Kullanarak İnternetten Zaman Alma - ESP8266 Nodemcu ile NTP Saat Projesi: 5 Adım
ESP8266 Kullanarak İnternetten Zaman Alma | ESP8266 Nodemcu ile NTP Saat Projesi: Bu derste Arduino IDE ile ESP8266/nodemcu kullanarak nasıl zaman kazanılacağını göreceğiz. Zaman kazanmak, özellikle okumalarınızı zaman damgasına eklemek için veri kaydında yararlıdır. ESP8266 projenizin internete erişimi varsa, Network T
Totoro Projesi - IoT & MQTT & ESP01: 7 Adım (Resimlerle)
Totoro Projesi - IoT & MQTT & ESP01: Totoro Projesi güzel bir IoT projesidir ve daha birçok farklı formda kopyalayabilirsiniz. case AdafruitIO).MQTT ve Ad için faydalı bir rehber
IoT Düğmesi (D1 Mini): 6 Adım
IoT Düğmesi (D1 Mini): Telefonunuza bildirim göndermek için (örneğin bahçede dinlenirken içecek doldurma talebinde bulunmak için) kullanabileceğiniz bir IoT Düğmesi yaptım (Şu Amazon Dash şeylerini düşünün). Diğer birçok cihazla etkileşim kurmak için kolayca yeniden yapılandırabilirsiniz
NodeMCU ile Acil Durum Düğmesi: 7 Adım
NodeMCU ile Acil Durum Butonu: Acil Durum Butonu, herhangi bir Acil durum durumunda yardım almanıza yardımcı olur, sadece butona basın ve koda koyduğunuz mesajı otomatik olarak facebook veya twitter'da yayınlayacaktır, varsa başka bir buton ekleyebilirsiniz. tıbbi bir durum
Uygulamanızı Kontrol Eden IoT Düğmesi: 6 Adım
Uygulamanızı Kontrol Eden IoT Düğmesi: Mikrodenetleyiciler hakkında en sevdiğim şeylerden biri, onları bir giriş cihazı olarak kullanma yeteneğidir, örneğin, Arduino Micro bir HID (insan arayüz cihazı) olarak kullanılabilir, yani bazı kodlama ve kendi keyboa'nızı yapabileceğinizi bilmek