İçindekiler:

TextPlayBulb: Raspberry Pi 3, BLE ve Telegram Kullanarak REST Etkin PlayBulb: 3 Adım
TextPlayBulb: Raspberry Pi 3, BLE ve Telegram Kullanarak REST Etkin PlayBulb: 3 Adım

Video: TextPlayBulb: Raspberry Pi 3, BLE ve Telegram Kullanarak REST Etkin PlayBulb: 3 Adım

Video: TextPlayBulb: Raspberry Pi 3, BLE ve Telegram Kullanarak REST Etkin PlayBulb: 3 Adım
Video: Очередной рейс (1958) фильм 2024, Kasım
Anonim
TextPlayBulb: Raspberry Pi 3, BLE ve Telegram Kullanarak REST Etkin PlayBulb
TextPlayBulb: Raspberry Pi 3, BLE ve Telegram Kullanarak REST Etkin PlayBulb

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:

  1. pyBulbDriver: PlayBulb'a BLE gatttool ve python aracılığıyla bağlanın.
  2. pyBulbServer: REST API aracılığıyla playbulb kontrolünü ortaya çıkarmak için pyBulbDriver'ı kullanma.
  3. 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: