Temps estimé : 15 minutesPrérequis :Compte Twilio Compte CloudinaryCompte Thinged.io ThingAppareil photo Raspberry Pi RPiCe didacticiel vous guidera dans la création d'une partie thinged.io qui peut prendre une photo avec votre Raspberry Pi, la télécharger sur cloudinary et l'envoyer via mms à l'aide de Twilio.
Eh bien, guidez-vous dans la création de votre première pièce et comment penser à les structurer, afin que vous puissiez créer vos propres extensions de la plate-forme Thinged.io.0 : Configurez votre Raspberry Pi avec Thinged.
ioConsultez votre Raspberry Pi pour prendre une photoTéléchargez la photo sur CloudinaryEnvoyez un MMS à l'aide de TwilioWrap upCréez les comptes requis et obtenez toutes les clés et jetons APIUne fois que vous avez créé vos comptes Twilio et Cloudinary, vous pouvez obtenir vos identifiants de compte et vos jetons d'accès à partir de leurs tableaux de bord respectifs : 2. Configurez votre Raspberry Pi avec les prérequis Python : maintenant que vos comptes sont créés, nous devons installer les exigences sur le Raspberry Pi pour communiquer avec Cloudinary et Twilio. sudo apt-get install python3-pippip3 install --user cloudinarypip3 install --user twilioDone.
2. Configurez votre caméra Raspberry Pi Activez votre module caméra Raspberry Pi via raspi-config:sudo raspi-configSélectionnez Options d'interfaçage, puis Caméra et activez-le. Redémarrez votre Raspberry Pi.
Testez votre appareil photo : raspistill -v -o test.jpg3. Testez le script sur votre Raspberry PiWeve a créé un github gist que vous pouvez utiliser pour prendre ces photos.
Téléchargez ce script sur votre Raspberry Pi et éditez les variables suivantes : cloudinary_cloud_namecloudinary_api_keycloudinary_api_secrettwilio_account_sidtwilio_auth_tokentwilio_from_numberphone_numberLe script lui-même est ultra simple et est composé de quelques petites fonctions :take_photo(photo_name) qui prend la photo du raspberry pi en utilisant la bibliothèque raspistill installée par défaut dans Raspbian. upload_photo_to_cloudinary(photo_file_name) qui télécharge une photo avec le prénom.send_mms(to, message, media_url) qui envoie votre photo en utilisant Twilio.
4. Création du Thinged. io PartTout comme le script python était un wrapper fin autour de Cloudinary et Twilio, Thinged est un wrapper fin autour des commandes shell.
Une chose est composée de parties qui ne sont que des états qui peuvent être obtenus et définis via des commandes de ligne de commande. Le texte renvoyé de la commande constitue la base des parties get et les espaces réservés sont utilisés pour intervenir pour les arguments dans les commandes set. La partie que nous créons ressemble à ceci : Il y a beaucoup de touches différentes, mais ne vous inquiétez pas, c'est en fait assez simple.
J'ai décomposé les paramètres ci-dessous: humanName nom convivial que vous pouvez utiliser pour identifier la part.description description conviviale afin que vous puissiez comprendre comment cela fonctionne et ajouter d'autres détails. partId chaîne générée aléatoirement qui a fait l'objet.
io utilise pour identifier la partie et vous l'utilisez dans l'API pour y définir des valeurs.type Input, output ou inputOutput définit si la partie est utilisée pour obtenir l'état de votre chose, définir l'état de votre chose ou une combinaison des deux (vous pouvez le définir, mais il pourrait changer ailleurs et devrait être lu). Les entrées nécessitent getCommand , les sorties nécessitent setCommand.
setCommand La commande qui sera lancée lors de la définition d'une valeur. Ici, il pointe simplement vers notre script python. L'ajout de valeur à cela sera remplacé partout par la valeur des pièces lorsque vous définissez des commandes via l'API.
Le script python devra être chargé dans le raspberry pi par d'autres moyens.valueType Cela peut être un nombre, une chaîne ou un état. Comme mentionné précédemment, Thinged est essentiellement un wrapper mince pour les commandes de ligne de commande, et donc tout est traduit en chaînes sur la ligne de commande.
valueType est important pour toute interface graphique qui souhaite présenter des détails sur l'état d'une pièce. Ici, le valueType est state, ce qui implique qu'il existe un nombre discret d'états, et ils peuvent être énumérés en valeurs. Cela permet à l'interface graphique de présenter un joli bouton pour 2 parties d'état et une liste déroulante pour 3 parties d'état ou plus.
états Chaque état représente une possibilité discrète différente. Comme Thinged.io ne déclenchera un ensemble que lorsqu'une valeur change, ici les états discrets sont des doublons les uns des autres, mais avec des valeurs différentes.
regexes Utile pour les parties input ou inputOutput où vous souhaitez prétraiter la réponse de la commande.Créez cette partie, soit via le portail web, soit via l'API. à partir de là, vous pouvez ajouter la pièce à votre truc et maintenant vous avez terminé !
Conclusion : si vous avez créé la pièce, elle devrait maintenant ressembler à ceci sur l'interface graphique : si vous avez chargé le script dans votre pi, etc. Le service io est en cours d'exécution, tout est fait. Maintenant, pour le paiement : appuyez sur le bouton !
Dans ce didacticiel, nous avons travaillé avec des parties de sortie thinged.io pour créer une caméra espion avec des comptes raspberry pi, cloudinary et twilio et 42 lignes de python tenant le tout ensemble. Restez à l'écoute pour plus de tutoriels sur Thinged.
Io.
Technologie Cie., Ltd de Shenzhen TigerWong
Tel:86 13717037584
E-mail: info@sztigerwong.com
Ajouter : 1er étage, bâtiment A2, parc industriel numérique de Silicon Valley Power, No. 22 route Dafu, rue Guanlan, district de Longhua,
Shenzhen, province du Guangdong, Chine