Table des matières:

TextPlayBulb : PlayBulb compatible REST avec Raspberry Pi 3, BLE et Telegram : 3 étapes
TextPlayBulb : PlayBulb compatible REST avec Raspberry Pi 3, BLE et Telegram : 3 étapes

Vidéo: TextPlayBulb : PlayBulb compatible REST avec Raspberry Pi 3, BLE et Telegram : 3 étapes

Vidéo: TextPlayBulb : PlayBulb compatible REST avec Raspberry Pi 3, BLE et Telegram : 3 étapes
Vidéo: Sylvania Zigbee Garden Lights with Nanoleaf Hub (Apple Homekit) 2024, Novembre
Anonim
TextPlayBulb: PlayBulb activé pour REST utilisant Raspberry Pi 3, BLE et Telegram
TextPlayBulb: PlayBulb activé pour REST utilisant Raspberry Pi 3, BLE et Telegram

Cette instructable montre comment se connecter à une lampe LED Bluetooth PlayBulb Color à l'aide de Python, une bibliothèque Raspberry Pi 3 et Bluetooth et étendre les contrôles via une API REST pour un scénario IoT, et en guise de bonus, le projet montre également comment étendre le API REST pour contrôler votre PlayBulb via un client texte de messagerie instantanée, par exemple Télégramme, comme parler à votre domicile automatisé par SMS.

Ce projet est construit sur 3 modules:

  1. pyBulbDriver: Connectez-vous au PlayBulb via BLE gatttool et python.
  2. pyBulbServer: Utilisation du pyBulbDriver pour exposer le contrôle playbulb via l'API REST.
  3. pyBulbMessenger: connexion à un bot télégramme pour envoyer et recevoir des commandes via un client télégramme installé sur n'importe quel téléphone intelligent, et utilisation de l'API REST pour émettre des commandes au PlayBulb.

Vous pouvez cloner le projet via le référentiel git:

Objectif du projet:

Pour créer un outil de base pour interagir avec votre ampoule via différentes modalités telles que le texto pour le moment, les scénarios futurs pourraient impliquer des commandes vocales, des gestes vers la lampe… etc.

Autres ressources utilisées pour créer cette instructable:

  • Protocole Bluetooth PlayBulb Color:
  • Connecter Python à Playbulb via Bluetooth:
  • Configuration du bot télégramme:

Contribution

pyBulbDriver est étendu pour être plus flexible et paramétré pour faciliter l'extension future, en créant un scénario pour vous permettre de jouer avec les SMS de votre lampe. Interface simple pour tester et bidouiller.

Limitation

Le pilote est écrit pour PlayBulb Colour, pour d'autres types de PlayBulb, par ex. Original ou bougie, le code bluetooth dans pyBulbDriver doit être modifié selon le protocole précité.

Vous devez enregistrer un compte de télégramme et obtenir une clé api, que vous ajoutez dans le pyBulbMessenger.py, suivez la configuration du bot de télégramme dans Autres ressources.

Étape 1: Configuration du projet

1. Obtenir votre clé API de Telegram

> Suivez l'instructable actuelle pour obtenir votre clé API

> Ajoutez votre clé api à l'api variable dans pyBulbMessenger.py

2. Définir votre nom PlayBulb dans pyBulbDriver

> Pour que gatttool trouve le périphérique d'écriture, définissez le nom de votre périphérique à analyser à l'aide de pyBulbDriver.scanForBulb("PLAYBULB COLOUR"). Un exemple peut être trouvé dans pyBulbServer.py pour configurer votre serveur REST

3. Pour démarrer le projet

> Vous devez d'abord démarrer pyBulbServer.py, puis pyBulbMessenger.py pour l'envoi de SMS. Vous pouvez tester les commandes pyBulbServer en utilisant CURL.

4. Matériel nécessaire:

> Raspberry Pi 3 et PlayBulb Color ou PlayBulb Candle

> Installer Telegram pour Android ou iOS

5. Installation du Rasberry Pi 3 LE Bluetooth:

www.elinux.org/RPi_Bluetooth_LE

Étape 2: parcourir le code

pyBulbDriver.py

pyBulbDriver contient les classes de pilotes pour se connecter au PlayBulb via BLE

pyBulbDriver peut également être utilisé pour tout autre projet générique, car il ne contient que le code pour analyser et configurer les connexions playBulb.

Les principales API pour l'interface de l'application utilisateur:

  • scanForBulb(devicename:String) > Pour rechercher le PlayBulb ou les PlayBulbs via leur nom d'appareil
  • setBulbColor(s:int, r:int, g:int, b:int) > Pour définir les valeurs de luminosité et de couleur RVB (0 à 255)
  • setBulbEffect(s:int, r:int, g:int, b:int, mode:int, onbeat:int, offbeat:int) > Similaire à setBulbColor, mais inclut le type d'effet et la vitesse. Pour en savoir plus, consultez la section Effets du protocole de couleur

Dans cette classe, vous trouverez également d'autres méthodes d'assistance destinées à la vérification de l'intégrité des données et non à l'interface utilisateur.

  • convertirRGBToHexaCmd(s, r, g, b)
  • convertIntToHex(nombre)
  • checkModeAndSpeed(mode, décalé, onbeat)
  • vérifieRGBInBounds(s, r, g, b)

pyBulbServer.py

pyBulbServer expose l'interface de l'application utilisateur dans des liens hypertexte RESTful en utilisant PUT et JSON pour envoyer et recevoir des données au pyBulbDriver. L'analyse et l'initialisation de la connexion BLE sont également effectuées lorsque le serveur est activé.

pyBulbResource(Resource) canalise les appels vers le serveur REST en utilisant la couleur et l'effet pour définir la commande bulb.

Exemple Pour commander un effet:

127.0.0.1/ampoule/effet

POST JSON > {data':'{"s":0, "r":255, "g":255, "b":255, "m":1, "on":15, "off":15 }'}

pyBulbMessenger.py

Enfin, pyBulbMessenger est responsable de l'interfaçage du bot Telegram connecté à votre client de téléphone intelligent Telegram. Pour plus de détails sur la configuration et la connexion à un bot de télégramme, consultez

cmdHandler(bot, update) est l'endroit où les commandes de texte sont définies et connectées au PlayBulb via l'API RESTful.

Actuellement, le projet n'a que du texte, un autre objectif est d'envoyer également des messages vocaux enregistrés qui seraient envoyés à un logiciel de reconnaissance vocale pour activer d'autres commandes (pas encore implémenté).

Étape 3: Conclusion

La conception actuelle de l'architecture était plus une question de simplification que d'évolutivité. Manquant toujours de connectivité de groupe, d'autres applications concernant l'envoi de SMS à l'ampoule, que ce soit pour une commande directe ou une interaction ludique, sont toujours en cours de recherche.

En vous abonnant à git repo ou en suivant, plus de détails viendront sur ces mises à jour. La raison d'un tel projet était d'interfacer le playBulb et de créer une interface RESTful pour faciliter le développement dans un IoT (scénario de l'internet des objets) mais aussi d'ouvrir la possibilité d'utiliser différentes modalités via le télégramme client IM telles que des images, de la voix et texte pour interagir avec les appareils dans une perspective de recherche.

Conseillé: