Ubiregi Advent Calendar 2019 Day 4 introduit un IoT simple utilisant Raspeye et MESH.
Lorsque vous appuyez sur le "bouton" du bloc MESH, un message fixe sera posté sur Slack, ce qui est très simple. En tant qu'application, j'attache un moniteur à la tarte aux râpes et je l'utilise comme interphone, je pense que je veux le voir. Si vous vivez seul, il y a un problème que vous ne savez pas si les gens visitent pendant que vous êtes absent, et si vous placez un bouton MESH à la place, vous pouvez faire quelque chose comme informer votre smartphone qu'une personne est arrivée.
La formule est très généreuse à cet égard, vous devriez donc vous y référer.
[Dites-moi comment installer l'application "MESH Hub" sur Raspberry Pi - MESH Support \ | Balises électroniques en forme de bloc qui se connectent à l'application pour plus de jeu](https://support.meshprj.com/hc/ ja / articles / 115002125554)
La tarte aux râpes que j'ai utilisée cette fois-ci est zéro, donc elle est très lourde lorsque je lance le navigateur.
Ainsi, la partie à accéder avec le navigateur dans la procédure ci-dessus se fait avec un PC normal,
② Comment se connecter à Raspberry Pi et exécuter la commande de téléchargement
Je pense qu'il est facile de copier la commande et de la télécharger via SSH.
Décidez / créez un canal de destination de notification à l'avance.
prochain, Utiliser les webhooks entrants de Slack \ -Qiita Ajoutons le Webhook entrant et copions l'URL en faisant référence à. Il est recommandé de sauvegarder l'URL car il peut s'agir d'un bloc-notes (nous l'utilisons la prochaine fois).
J'utilise Python simplement parce que je l'utilise beaucoup, donc peu importe le langage que vous utilisez tant que vous pouvez faire de même.
À propos, Rasbian a installé Python par défaut, vous n'avez donc pas besoin d'installer Python lui-même.
La version de Python utilisée cette fois est Python 2.7.13
.
Créez un serveur HTTP simple pour accéder aux programmes Raspeye à partir de MESH. Cette fois, j'ai utilisé un micro-framework Web léger appelé «bouteille».
Installez la bibliothèque utilisée dans le code source avec pip
.
(Requests
est utilisé pour frapper Slack)
$ pip install bottle requests
L'emplacement peut être n'importe où, alors créez un fichier à un endroit approprié et écrivez le code source suivant.
Le nom peut être n'importe quoi, mais cette fois j'ai choisi server.py
.
(Reportez-vous à "Créer un robot de discussion exploité par Apple Watch en utilisant la version Raspberry MESH \ -Qiita")
server.py
# -*- coding: utf-8 -*-
from bottle import route, run, template
import json
import requests
slack_settings = {
# channel_Changeons le nom arbitrairement
#En effet, il est facile d'augmenter le paramètre lorsque vous souhaitez également notifier d'autres chaînes.
'channel_name': {
'url' : '{URL obtenue lors du processus "Obtention de l'URL du Webhook entrant"}',
'botname': 'test',
'icon' : ':muscle:',
'message': '<!here>\Notification de nMESH'
}
}
def push(setting):
datas = {
'username' : setting['botname'],
'icon_emoji' : setting['icon'],
'text' : setting['message'],
'contentType': 'application/json'
}
payload = json.dumps(datas)
result = requests.post(setting['url'], payload)
print(result)
@route('/post/slack/<command>')
def mesh_button(command):
if command == 'channel_name':
push(slack_settings['channel_name'])
else:
raise Error
run(host='localhost', port=8080, reloader=True)
Démarrez le serveur avec la commande suivante. Je ne pense pas que ce soit particulièrement difficile.
$ python server.py
Si vous le démarrez correctement, vous verrez cet affichage.
Bottle v0.12.17 server starting up (using WSGIRefServer())...
Listening on http://localhost:8080/
Hit Ctrl-C to quit.
Essayez de le frapper avec curl
. Si vous fermez la console exécutant python server.py
, le serveur s'arrêtera, alors ouvrons une autre console (même si vous avez une connexion SSH).
$ curl http://localhost:8080/post/slack/channel_name
Du côté exécutant le serveur
<Response [200]>
127.0.0.1 - - [04/Dec/2019 13:46:15] "GET /post/slack/channel_name HTTP/1.1" 200 0
Je pense qu'un journal apparaîtra, donc si c'est le cas, c'est un succès.
Dans MESH, le traitement est créé en connectant des traitements standard appelés blocs avec des lignes.
(Régler après)
Donc, vous devez créer un bloc qui atteint l'URL de server.py
créée précédemment. Alors, faites-le d'abord.
Accédez au SDK \ _TOP \ _JP. Vous pouvez accéder à l'écran de gestion des blocs personnalisés à partir de "Utiliser le SDK MESH".
Cliquez sur Créer un nouveau bloc
pour afficher l'écran de création de bloc personnalisé, définissez-le.
Les paramètres sont les suivants. Une fois que vous avez tout défini, cliquez sur "Enregistrer" en haut à gauche pour enregistrer.
Code source défini dans Code
var localhost = 'http://localhost:8080' + properties.path;
ajax({
url : localhost,
type : 'get',
timeout: 5000,
success: function (data) {
callbackSuccess({
resultType : 'continue'
});
},
error: function(request, errorMessage) {
log('ERROR: ' + errorMessage);
callbackSuccess({
resultType: 'continue'
});
}
});
return {
resultType: 'pause'
}
Pour les paramètres dans ce domaine, je me suis référé à "Créer un robot de chat exploité par Apple Watch en utilisant la version Raspberry MESH \ -Qiita".
Connector Ceci définit uniquement le connecteur d'entrée. Comme vous le verrez plus tard en touchant l'application MESH, il y a Entrée et Sortie dans le bloc MESH. Cette fois-ci, après avoir appuyé sur le bouton, le traitement de ce bloc personnalisé est lancé et cela ressemble à la fin, il n'y a donc aucun paramètre dans le connecteur de sortie. Si vous souhaitez faire autre chose une fois que ce bloc personnalisé fonctionne, le connecteur de sortie doit également être configuré.
Property Cela vous permettra de créer des propriétés que vous pourrez référencer dans votre code. Vous pouvez modifier la valeur de la propriété lors du placement d'un bloc personnalisé. Ainsi, par exemple, même si vous souhaitez notifier un autre canal, vous n'avez pas besoin de créer un nouveau bloc, vous pouvez simplement changer la valeur de la propriété lors de son organisation et ce sera OK.
Code Il s'agit du code JavaScript qui sera exécuté lorsque le bloc personnalisé est lancé. Une fois le code lancé, je vais frapper le serveur que j'ai écrit plus tôt en Python avec Ajax.
Pour créer un processus à l'aide de MESH, vous devez créer une "recette" avec l'application MESH. ** Cette recette ne peut être réalisée qu'à partir de l'application MESH. ** Les recettes qui fonctionnent avec Razzpie seront également créées à partir de l'application MESH.
En guise de préparation préliminaire, activons Bluetooth pour les smartphones et la tarte à la râpe. Lancez l'application MESH depuis votre smartphone. Il y a une marque de smartphone en haut à droite, mais si vous appuyez dessus, vous verrez le message suivant "Passer à un autre terminal", alors appuyez dessus.
Ensuite, l'écran "Sélectionner un appareil" apparaît. Connectez-vous et appuyez sur "Ajouter un concentrateur".
Appuyez sur "Ajouter un hub" pour afficher l'écran suivant. Appuyez sur "Démarrer la configuration" pour continuer.
Cet écran continue également avec "Suivant".
Si la connexion entre le smartphone et Raspeye réussit, l'écran suivant s'affiche. Si vous ne pouvez pas attendre quelques minutes, vérifiez Bluetooth ou voyez si Raspeye est prêt à être configuré (appuyez sur le lien à l'écran et vous verrez comment le faire). ..
Cet écran est un écran permettant de définir ou non le Wi-Fi de Raspeye. À moins que vous ne vous soyez connecté par fil, la connexion Wi-Fi devrait être terminée, alors ignorez-la.
Décidez correctement du nom du hub et passez au suivant.
Si tout se passe bien, vous vous retrouverez avec cet écran, alors sélectionnez le hub MESH du Raspeye que vous venez d'ajouter et appuyez sur "Sélectionner" en bas de l'écran.
Appuyez sur "Nouvelle recette" sur l'écran supérieur de l'application pour afficher cet écran. Tout d'abord, ajoutons un bloc MESH. Activez le bloc MESH et appuyez sur la marque plus "Ajouter un bloc" en bas à gauche. (L'alimentation peut être allumée en appuyant et en maintenant la partie en silicone du bloc MESH. S'il ne s'allume pas, chargez-le.)
Si vous pouvez l'ajouter avec succès, un "bloc de boutons" sera affiché dans le bloc inférieur gauche, alors appuyez dessus et faites-le glisser pour le placer. Cela devrait ressembler à l'écran ci-dessous.
Ajoutez ensuite un bloc personnalisé. Je viens d'enregistrer le code JavaScript sur l'écran Web. Bien que cela soit reflété sur l'écran supérieur, vous pouvez accéder à l'écran d'ajout en appuyant sur le signe plus de «Ajout personnalisé». Ensuite, le bloc personnalisé que vous avez enregistré précédemment sera affiché comme indiqué ci-dessous, alors appuyez dessus et appuyez sur le bouton "Ajouter".
Je pense que j'ai pu l'ajouter en toute sécurité, alors placez le bloc personnalisé de la même manière que le "bloc de boutons" a été placé plus tôt, et connectez la fin du bloc de boutons et la fin du bloc personnalisé comme indiqué ci-dessous. Vous pouvez vous connecter à une ligne en faisant glisser le bloc de boutons placé vers le bloc personnalisé.
Si vous appuyez sur le bloc personnalisé placé, vous verrez un écran comme celui-ci. Vous pouvez modifier la valeur de la propriété ici. Si vous modifiez le programme côté serveur de Python, vous pouvez changer le comportement en modifiant le chemin ici dans le même bloc personnalisé.
Maintenant que les réglages sont terminés, appuyons sur le bouton MESH. Si vous publiez sur Slack, vous réussissez.
Ceci termine la notification (via Raspeye) sur Slack lorsque vous appuyez sur le bouton MESH. Il y a pas mal d'étapes, mais comme vous l'avez peut-être remarqué, le code source que j'ai écrit est très petit. En premier lieu, il y a un obstacle que vous devez installer Raspeye, mais si vous le dépassez, vous pouvez le faire relativement rapidement. En plus des boutons, MESH dispose de divers blocs tels que LED, capteur humain, capteur de mouvement, capteur de température / humidité, capteur de luminosité et GPIO. L'un de ses points forts est que vous pouvez créer votre propre IoT même si vous ne pouvez pas du tout faire de travail électronique (sauf pour GPIO). En ce qui concerne le travail électronique, certaines connaissances en électricité et en électronique sont nécessaires, donc pour ceux qui ont été des ingénieurs en logiciel ordinaires, les obstacles sont un peu élevés. Cependant, les balises MESH ne nécessitent presque aucune connaissance du travail électronique et sont recommandées car la plupart des choses peuvent être submergées par les logiciels. Au fait, si vous voulez faire quelque chose physiquement mais que vous ne connaissez pas le travail électronique, vous pouvez essayer d'utiliser la commande Eject, ce qui est très pratique (Référence: La commande Eject is Raspberry). Jouons avec Pi ~ Travail facile avec le lecteur CD \ -ROM ~).
Recommended Posts