İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Tamircilik ve elektronikle ilgilenen biriyseniz, genellikle IoT olarak kısaltılan ve internete bağlanabilen bir dizi cihazı ifade eden Nesnelerin İnterneti terimiyle karşılaşırsınız! Kendim de böyle bir insan olarak, böyle harika cihazların benim için kolayca erişilebilir olduğunu öğrendiğimde büyülendim. Küçük bir donanım parçası kullanarak projelerimi internete bağlayabilme düşüncesi ve sadece proje fikirlerim için açacağı sayısız kapıyı düşünmek bile beni heyecanlandırdı.
Ancak IoT'ye internete bağlanmasını söylemek, onu raftan alıp çalıştırmak kadar basit değil. Ve cihazı internete bağlamanın yanı sıra, bazı faydalı verileri internete göndermemiz gerekiyor. Bu Eğitilebilirlik, yukarıda belirtilen hedefe ulaşmak için gerekli prosedürle ilgilidir ve yeni başlayanlardan IoT'ye yeni başlayan gazilere kadar herhangi bir deneyim seviyesindeki okuyucular içindir.
Bu Eğitilebilir Tabloda, bir örnek olarak, okuyuculara süreç hakkında iyi bir fikir vermesi gereken ESP32 geliştirme kartının dahili sıcaklık sensörü okumalarının grafiğinin nasıl çizileceğini göstereceğim.
Bu Eğitilebilir Kitap, ESP32 ve Mongoose OS kullanıyor olsa da, prosedür, mevcut tüm IoT'lere ve bellenime genişletilebilir!
Gereçler
Bu Eğitilebilir Tabloyu kendiniz uygulayabilmek için yalnızca minimum miktarda donanıma ihtiyacınız olacak ve bunlar:
- Nesnelerin İnterneti (IoT): Ucuz bir ESP32 geliştirme kartı klonu kullandım. Yeni bir ESP32 geliştirme kartı satın almayı planlıyorsanız, DFRobot'un ESP32 kartını kontrol etmelisiniz.
- Bir Veri Kablosu: IoT'nizin yanıp sönmesi vb. için ihtiyaç duyduğu bir kablo kullanın.
- Pil (İsteğe bağlı): Bunu yalnızca IoT'nizi uzun süre çalıştırmayı düşünüyorsanız satın alın.
- Mini Breadboard(Opsiyonel)
Okuyucuya ESP32'den farklı bir IoT kullanmasını öneririm, böylece sadece beni taklit etmek yerine burada ne yapıldığını gerçekten anlayabilir. İnanın bana, başka bir IoT'de kendi zihninizi kullanarak bu süreci uygulamaktan keyif alacaksınız, örneğin ESP8266 iyi bir seçim olacaktır.
Adım 1: MQTT'ye Giriş
MQTT nedir?
"MQTT, düşük bant genişliğine sahip kısıtlı cihazlar için tasarlanmış basit bir mesajlaşma protokolüdür. Bu nedenle, Nesnelerin İnterneti uygulamaları için mükemmel bir çözümdür. MQTT, çıktıları kontrol etmek için komutlar göndermenize, sensör düğümlerinden veri okuyup yayınlamanıza ve çok daha fazlasına olanak tanır. " (RandomNerdTutorials'dan)
MQTT nasıl çalışır?
Teknik konulara geçmeden önce, önce gerçek dünyamızı düşünelim. Diyelim ki, arkadaşınızın, örneğin, kişisel olarak tanımadığınız Laurel'in sahip olduğu bir kart koleksiyonuyla ilgileniyorsunuz. Bu kart koleksiyonu konusunda çok titiz olduğunuz için, arkadaşınızdan, diyelim ki Tom'dan Laurel'in onu satmaya istekli olup olmadığını sormasını isteyeceksiniz. Bunu yaparken, Laurel satmaya istekliyse Tom'dan kart koleksiyonunu kendisinin satın almasını isteyeceksiniz, çünkü arzu ettiğiniz koleksiyona başka birinin eline geçmesini istemezsiniz! Zaman geçtikçe, Tom ve Laurel etkileşime girer ve karşılıklı anlaşarak Laurel kart koleksiyonunu para karşılığında Tom'a verir. Bu değiş tokuştan sonra Tom, sizinle tekrar buluşana kadar kartları kendisinde tutar, bu da nihayet size kart koleksiyonunu verdiği zamandır. Günlük hayatımızda normal bir değiş tokuş bu şekilde ilerler.
MQTT'de, değişime dahil olan temel unsurlar yayıncı (Laurel), bir abone (Siz) ve komisyoncudur (Tom). İş akışı, büyük bir fark dışında, yukarıda belirtilen gerçek dünya örneğine benzer! MQTT'de değişim komisyoncu tarafından başlatılır, yani Laurel, Tom'a ulaşan ve kart koleksiyonunu satmak istediğini söyleyen ilk kişi olacaktır. MQTT'nin çalışmasını gerçek dünya örneğimizle karşılaştırırsak, aşağıdaki gibi olur:
- Laurel, Tom'a kart koleksiyonunu (veri veya yük) satmak istediğini söyler ve kartları ona verir.
- Tom bu kartları eline alır ve kart koleksiyonu için tekliflere açıktır. Tom'la tanıştığınızda ve o kartlarla ilgilendiğinizi öğrendiğinde (bir konuya abone olduğunda). Tom sonra sana kartları verir.
Tüm süreç aracıya bağlı olduğundan ve abone ile yayıncı arasında doğrudan bir etkileşim olmadığından, MQTT hem yayıncıyı hem de aboneyi senkronize etme zorluğunu ortadan kaldırır. Bir aracı aracının varlığı, IoT'ler ve mikroişlemciler gibi kaynak kısıtlı cihazlar için bir nimettir, çünkü işlem güçleri normal şekilde veri aktarımını gerçekleştirmek için yetersizdir ve bu da kimlik doğrulama, şifreleme vb. gibi ek ek masraflar gerektirecektir. Bunun dışında, MQTT, hafif olma, bire çok dağıtım vb. gibi birçok başka özelliğe sahiptir ve bu da onu kısıtlı ağlar ve istemciler için ideal kılar.
2. Adım: IoT Platformuna Giriş
IoT Platformu nedir?
"Yüksek düzeyde, Nesnelerin İnterneti (IoT) platformu, uç donanımları, erişim noktalarını ve veri ağlarını değer zincirinin diğer bölümlerine (genellikle son kullanıcı uygulamaları olan) bağlayan destek yazılımıdır. IoT platformları tipik olarak Kullanıcıların ortamlarını otomatikleştirmelerine olanak tanıyan devam eden yönetim görevlerini ve veri görselleştirmeyi yönetin." (Link-Labs'tan)
Özet olarak, bir IoT platformu, kullanıcı ile toplanan verileri temsil etmekten sorumlu olan veri toplama aracıları arasında bir ortam görevi görür.
Bu Eğitilebilir Kitapta, ESP32'nin sıcaklık okumalarını çevrimiçi hale getirmeyi planlıyoruz. ESP32'miz, MQTT yayıncısı olarak hareket edecek ve MQTT aracısı, tercih ettiğimiz bir IoT platformu olacak. Projemizde, veriler platformun kendisi tarafından ilk elden temsil edildiğinden, bir MQTT abonesinin rolü olmadığını unutmayın. IoT platformu, yayınlanan verilerimizi depolamaktan ve burada bir çizgi grafiği olarak güzel bir şekilde temsil etmekten sorumlu olacaktır. Losant'ı burada IoT platformum olarak kullanacağım çünkü kullanımı ücretsiz ve verileri temsil etmek için bazı iyi yollar sunuyor. IoT platformlarının diğer bazı örnekleri Google Cloud, Amazon AWS ve Adafruit, Microsoft Azure vs.'dir. Okuyucuya seçtikleri IoT platformunun belgelerine bakmalarını tavsiye etmek isterim.
Losant'ı kurmak:
- Losant'a giriş yap
- Bir cihaz oluştur(Bağımsız tip)
- Cihaza birkaç veri türü ekleyin1. Ad: sıcaklık, Veri Türü: Sayı2. Ad: ofset, Veri Türü: Sayı3. Ad: birim, Veri Türü: Dize
- Bir erişim anahtarı oluşturun ve cihaz kimliğini ve erişim anahtarını not edin
- Bir grafik oluşturun1. Bir gösterge panosu oluşturun.2. Sıcaklık değişkenini ve oluşturduğunuz cihazı kullanarak "Zaman Serisi Grafiği" bloğunu ekleyin.
"Aygıt Kimliği", bir aygıt için benzersiz bir parmak izi işlevi görme amacına hizmet eder. Adından da anlaşılacağı gibi "erişim anahtarları", IoT'nin cihaz kimliği altında Losant'a yayınlanmasını sağlar.
3. Adım: MQTT Publisher'ı hazırlayın
Artık verileri almak ve temsil etmek için IoT platformunu hazırladığımıza göre, verileri toplayıp platforma göndermekten sorumlu olacak bir MQTT yayıncısı hazırlamamız gerekiyor.
MQTT yayıncı hazırlığının ana hatları aşağıdaki gibidir:
- Kodu yazın:Yayıncıya (IoT) nasıl veri toplayacağını, işleyeceğini ve IoT platformuna nasıl göndereceğini öğretmek için. Talimatlar, normalde kod olarak adlandırılan, insan tarafından okunabilen yüksek seviyeli programlama dillerinde yazılmıştır.
- Bellenimi flaşlayın: IoT, başlangıçta herhangi bir dil bilmediği için bu talimatları kolayca anlamayacaktır. İnsan ve makine arasındaki bu dil engelini aşmak için kod, temel olarak IoT içindeki bellenim olarak bilinen ve daha sonra IoT'ye aktarılan bellek konumlarına özgü onaltılık veya ikili değer kümeleri olan kaba bir talimat kümesinde derlenir.
Bu Eğitilebilir Kitapta, kullanışlı ESP32'mi kullandığım için, hem C hem de JavaScript ile yazılmış programları kabul eden Mongoose OS ürün yazılımını yanıp söneceğim. JS uyumluluğunun yanı sıra, Mongoose OS, programınızı çevrimiçi olarak değiştirmek için kablosuz güncellemeler ve cihazlar (mDash) vb. için özel bir gösterge panosu gibi sunabileceği çok şey var.
Bu Eğitilebilir Dosya için Mongoose OS için açık kaynaklı bir uygulama geliştirdim. ESP32'nin dahili sıcaklık okumalarına dayalı olarak yaklaşık ortam sıcaklığı okumalarını Losant'a (ücretsiz bir IoT platformu) göndermek için MQTT kullanan, losant-temp-sensor adlı basit bir uygulamadır. Daha iyi bir anlayış için uygulamanın kodunu gözden geçirmeniz önerilir. Bu Eğitilebilir Tablo için bu uygulamayı yanıp söneceğiz.
Eğer maceraperest biriyseniz, ESP32'yi Arduino (WiFi özellikli) olarak kullanmayı sağlayan Arduino-ESP32 firmware ile aynı hedefe ulaşmayı deneyebilirsiniz.
Mongoose OS ile yanıp sönen uygulama için hızlı bir özet:
- İşletim sisteminiz için mos aracını yükleyin.
-
Aracı açın ve aşağıdaki komutları yürütün:
- mos klonu
- cd kayıp-temp-sensörü
- mos build --platform esp32
- mos flaş
- mos wifi "wifi ssid" "wifi şifreniz" ör. mos wifi "Ev" "ev@123"
-
mos yapılandırma-set sıcaklık.basis=
sıcaklık.birim="
"örn. mos config-set sıcaklık.basis=33 \temperature.unit="celsius"
-
mos config-set device.id=
mqtt.client_id= mqtt.kullanıcı= mqtt.pass=
Başarılı bir şekilde yanıp söndükten sonra, cihazın yeniden başlatılmasına izin verin ve ardından aşağıdaki komutları yürütün:
Tüm bu adımları doğru bir şekilde tamamladıktan sonra, her 10 dakikada bir sıcaklık okumalarını Losant'a periyodik olarak gönderen bir ESP32'ye sahip olacaksınız. Başarılı yayın, yukarıdaki videoda gösterildiği gibi mavi LED ile gösterilir.
4. Adım: Dipnot
Önceki adımları doğru bir şekilde tekrarlayabiliyorsanız, artık odanızın içindeki veya projeyi yerleştirmeyi planladığınız yerdeki sıcaklık eğilimlerini gözlemleyebileceğiniz bir çalışma projeniz olacak. Bu Eğitilebilir Yazıyı yapabildiğim kadar genel tuttuğumdan, bu nedenle IoT'nizi her türlü veri toplamak ve ondan yararlı bir sonuç çıkarmaya çalışmak için kullanabilir veya bunu sadece kurcalamak için yapabilirsiniz. Bu Talimatı doğru bir şekilde anladım.
Benim için IoT'nin en iyi yanı, tek başına alındığında sonuçsuz olan çok büyük miktarda veri toplamamıza ve onu kesin bir şeye dönüştürmemize olanak sağlamasıdır. Bu gerçekten bilimin ruhunu eve vuruyor. Yağmurlu saatlerde odamın içindeki sıcaklığın düştüğünü grafiğim üzerinden fark etmek benim için çok tatmin edici ve aydınlatıcı oldu.
Losant-temp-sensor-app, ESP32'nin derin uyku özelliğini kullandığından güç tüketimi için optimize edilmiştir, bu nedenle pil konusunda hiç endişelenmeden uzun süre kullanabilirsiniz. Geliştirme kartındaki LED'i çıkararak güç verimliliğini daha da artırabilirsiniz. Tüm kurulumun mevcut çizimi yukarıda gösterilmiştir.
Bu Eğitilebilir Yazının amacı, en başından beri size IoT dünyasına bir giriş yapmaktı. Bu Eğitilebilir Yazıyı bitirdiğinizde, diğer çevrimiçi kaynaklar aracılığıyla daha da güçlendirebileceğiniz temel bilgilere iyi bir şekilde sahip olacaksınız.
Bu aşamada karmaşık projeler yapamayacak olsanız da, yeterince güçlü bir tuğlanız varsa ve bunları bir araya getirmenin bir yolu varsa, o zaman akla gelebilecek herhangi bir yapıyı basit bir şekilde yapabilirsiniz. komplekse. Benzer şekilde, temel bilgileri iyi bir şekilde kavramak ve bunları doğru bir şekilde nasıl uygulayacağınızı bilmek, çok sayıda mekanizma kurmanıza olanak sağlayacaktır. Bu nedenle, ilk adımı atmak için sırtınızı sıvazlayın.
Adım 5: Krediler ve Destek
Bu Eğitilebilirlik, resimlerden oluşur, örn. kişisel olarak yaptığım MQTT değişimini açıklayan. Bu çizimler yalnızca aşağıdaki ücretsiz SVG paketleri sayesinde mümkün olmuştur:
- freepik tarafından oluşturulan infografik vektör - www.freepik.com
- Starline tarafından oluşturulan infografik vektör - www.freepik.com
- pikisuperstar tarafından oluşturulan insan vektörü - www.freepik.com
- Makro vektör tarafından oluşturulan soyut vektör - www.freepik.com
- Makro vektör tarafından oluşturulan soyut vektör - www.freepik.com
- pikisuperstar tarafından oluşturulan infografik vektör - www.freepik.com
Bu Eğitilebilir Tablo, DFRobot tarafından desteklenmiştir. DFRobot'un harika bir elektronik koleksiyonu var, bu yüzden kontrol ettiğinizden emin olun.
Bu Eğitilebilir Dosyayı beğendiğinizi düşünüyorsanız ve bunun gibi daha fazla Eğitilebilir Öğe istiyorsanız, beni Patreon'da destekleyebilirsiniz. O kadar ileri gidemezseniz, beni burada Instructables'ta takip edebilirsiniz.