İçindekiler:
Video: TextPlayBulb: Raspberry Pi 3, BLE ve Telegram Kullanarak REST Etkin PlayBulb: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Bu talimat, Python, bir Raspberry Pi 3 ve Bluetooth kitaplığı kullanarak bir PlayBulb Renkli bluetooth LED lambasına nasıl bağlanılacağını ve bir IoT senaryosu için bir REST API aracılığıyla kontrollerin nasıl genişletileceğini gösterir ve bir ödül olarak, proje ayrıca nasıl genişletileceğini gösterir. PlayBulb'unuzu bir IM metin istemcisi üzerinden kontrol etmek için REST API, örn. Telgraf, örneğin otomatik evinizle metin yoluyla konuşmak gibi.
Bu proje 3 modül üzerine inşa edilmiştir:
- pyBulbDriver: PlayBulb'a BLE gatttool ve python aracılığıyla bağlanın.
- pyBulbServer: REST API aracılığıyla playbulb kontrolünü ortaya çıkarmak için pyBulbDriver'ı kullanma.
- pyBulbMessenger: Herhangi bir akıllı telefonda kurulu telgraf istemcisi aracılığıyla komut göndermek ve almak için bir telgraf botuna bağlanma ve PlayBulb'a komut vermek için REST API'yi kullanma.
Projeyi git deposu aracılığıyla klonlayabilirsiniz:
Projenin Amacı:
Şimdilik mesajlaşma gibi farklı yöntemlerle ampulünüzle etkileşim kurmak için bir temel araç oluşturmak için, gelecekteki senaryolar konuşma komutlarını, lambayı işaret etmeyi vb. içerebilir.
Bu talimatı oluşturmak için kullanılan diğer kaynaklar:
- PlayBulb Renkli Bluetooth Protokolü:
- Python'u Bluetooth üzerinden Playbulb'a bağlama:
- Telgraf botunun kurulumu:
Katkı
pyBulbDriver, daha esnek olacak şekilde genişletildi ve gelecekteki genişletme kolaylığı için parametreli hale getirildi ve lambanıza mesaj göndermekle uğraşmanıza izin verecek bir senaryo oluşturdu. Test etmek ve uğraşmak için basit arayüz.
sınırlama
Sürücü, PlayBulb Colour için yazılmıştır, diğer PlayBulb türleri için örn. Orijinal veya mum, pyBulbDriver'daki bluetooth kodunun yukarıda belirtilen protokole göre değiştirilmesi gerekir.
Bir telegram hesabı açmanız ve pyBulbMessenger.py'ye eklediğiniz bir api anahtarı almanız gerekiyor, diğer kaynaklarda telegram botunun kurulumunu takip edin.
Adım 1: Projeyi Kurma
1. API anahtarınızı Telegram'dan alma
> API anahtarınızı almak için mevcut talimatı izleyin
> API anahtarınızı pyBulbMessenger.py'deki değişken api'ye ekleyin
2. pyBulbDriver'da PlayBulb Adınızı Ayarlama
> Gatttool'un yazma cihazını bulması için, pyBulbDriver.scanForBulb("PLAYBULB COLOUR") kullanılarak taranacak cihaz adınızı ayarlayın. Örnek, REST Sunucunuzu kurmak için pyBulbServer.py'de bulunabilir.
3. Projeyi başlatmak için
> Mesajlaşma için önce pyBulbServer.py'yi, ardından pyBulbMessenger.py'yi başlatmanız gerekir. CURL kullanarak pyBulbServer komutlarını test edebilirsiniz.
4. Gerekli Malzeme:
> Raspberry Pi 3 ve PlayBulb Color veya PlayBulb Mum
> Android veya iOS için Telegram Kurulumu
5. Rasberry Pi 3 LE Bluetooth Kurulumu:
www.elinux.org/RPi_Bluetooth_LE
2. Adım: Kodun İçinden Yürümek
pyBulbDriver.py
pyBulbDriver, BLE aracılığıyla PlayBulb'a bağlanmak için sürücü sınıflarını içerir
pyBulbDriver, yalnızca playBulb bağlantılarını taramak ve kurmak için kodu içerdiğinden, diğer genel projeler için de kullanılabilir.
Kullanıcı Uygulaması arayüzü için ana API'ler:
- scanForBulb(devicename:String) > Cihaz adları aracılığıyla PlayBulb veya PlayBulbs'u taramak için
- setBulbColor(s:int, r:int, g:int, b:int) > Parlaklık ve RGB renk (0 ila 255) değerlerini tanımlamak için
-
setBulbEffect(s:int, r:int, g:int, b:int, mode:int, onbeat:int, offbeat:int) > setBulbColor'a benzer, ancak efekt ve hız türünü içerir. Daha fazla bilgi için renk protokolü Efektleri bölümünü kontrol edin
Bu sınıfta ayrıca, kullanıcı arayüzü için değil, veri bütünlüğü kontrolü için olan diğer yardımcı yöntemleri bulacaksınız.
- convertRGBToHexaCmd(s, r, g, b)
- convertIntToHex(sayı)
- checkModeAndSpeed(mod, sıra dışı, sıra dışı)
- kontrollerRGBInBounds(s, r, g, b)
pyBulbServer.py
pyBulbServer, pyBulbDriver'a veri göndermek ve almak için PUT ve JSON kullanarak Kullanıcı Uygulaması arabirimini RESTful köprülerine sunar. Ayrıca BLE bağlantısının taranması ve başlatılması, sunucu etkinleştirildiğinde yapılır.
pyBulbResource(Resource), bulb komutunu tanımlamak için renk ve efekt kullanarak çağrıları REST Sunucusuna yönlendirir.
Örnek Bir efekte komut vermek için:
127.0.0.1/bulb/etki
JSON POST > {data':'{"s":0, "r":255, "g":255, "b":255, "m":1, "on":15, "off":15 }'}
pyBulbMessenger.py
Son olarak, pyBulbMessenger, telegram akıllı telefon istemcinize bağlı Telegram botunun arayüzlenmesinden sorumludur. Bir telgraf botunun nasıl yapılandırılacağı ve bağlanacağı hakkında daha fazla ayrıntı için https://www.instructables.com/id/Set-up-Telegram-Bo…'yu kontrol edin.
cmdHandler(bot, update), metin komutlarının tanımlandığı ve RESTful API aracılığıyla PlayBulb'a bağlandığı yerdir.
Şu anda projede sadece metin var, başka bir amaç da diğer komutları etkinleştirmek için bir konuşma tanıyıcıya gönderilecek olan kayıtlı sesli mesajları göndermektir (Henüz Uygulanmadı).
3. Adım: Sonuç
Mevcut mimari tasarım, ölçeklenebilirlikten çok basitleştirme ile ilgiliydi. Grup bağlantısı hala eksik, ayrıca düz komut veya eğlenceli etkileşim için ampule mesaj göndermeyle ilgili daha fazla uygulama hala araştırılıyor.
Git repo'ya abone olarak veya takip ederek bu güncellemeler hakkında daha fazla detay gelecektir. Böyle bir projenin nedeni, playBulb'a arayüz oluşturmak ve bir IoT'de (nesnelerin interneti senaryosu) geliştirme kolaylığı için RESTful bir arayüz oluşturmak ve aynı zamanda IM Client telgrafı aracılığıyla resim, ses ve bir araştırma perspektifinden cihazlarla etkileşim kurmak için metin.
Önerilen:
WiFi Etkin Matrix Lambası: 6 Adım (Resimlerle)
WiFi Özellikli Matrix Lamba: Evdeki diğer lambalarla senkronize olan ve animasyonlar gösterebilen çarpıcı lambaya kim sahip olmak istemez ki? Öyle değil mi? O yüzden özel bir RGB lamba yaptım. Lamba, ayrı ayrı adreslenebilen 256 adet LED'den oluşur ve tüm LED'ler kontrol edilebilir
OpenLogger: Yüksek Çözünürlüklü, Wi-Fi Etkin, Açık Kaynak, Taşınabilir Veri Kaydedici: 7 Adım
OpenLogger: Yüksek Çözünürlüklü, Wi-Fi Etkin, Açık Kaynaklı, Taşınabilir Veri Kaydedici: OpenLogger, pahalı yazılım veya yazma yazılımı gerektirmeden yüksek kaliteli ölçümler sağlamak üzere tasarlanmış taşınabilir, açık kaynaklı, düşük maliyetli, yüksek çözünürlüklü bir veri kaydedicidir. sıfırdan. Eğer bir mühendis, bilim insanı veya meraklıysanız
Bluetooth Etkin Analog VU Metre: 6 Adım
Bluetooth Etkin Analog VU Metre: Bu, SMP adlı üniversite derslerimden biri için yaptığım projeydi. STM32F103RB geliştirme kartını kullandığımız için, basit bir VU metreden başlayarak projemi buna dayandırdım. Daha sonra çeşitli yayınlar yapmak için Bluetooth desteği gibi bazı ekstra özellikler ekledim
Alexa Etkin Uzaktan Kumanda (WEMO D1 Mini kullanarak): 3 Adım
Alexa Etkin Uzaktan Kumanda (WEMO D1 Mini kullanarak): Bu, önceki bir gönderinin güncellenmiş bir sürümüdür:https://www.instructables.com/id/Voice-Activated-R…Önceki sürümde, bir Geetech kullandım Normal bir garaj kapısı açıcı tipi uzaktan kumandayı kontrol etmek için ses modülü. Bu talimatta vo'yu değiştirdim
Alexa Etkin Asansör Düğmesi: 4 Adım
Alexa Etkin Asansör Düğmesi: Bu talimattaki yöntem herhangi bir düğme için kullanılabilir, ancak bu örnek için Amazon Alexa'yı kullanarak çağırmak istediğimiz bir asansörümüz var. Aynı şeyi yapmak için Alexa tarafından kontrol edilen bir solenoid kullandığım bir önceki talimatım var, ama