[JAVA] IoT facile pour démarrer avec Raspeye et MESH

Ubiregi Advent Calendar 2019 Day 4 introduit un IoT simple utilisant Raspeye et MESH.

Quoi faire

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.

Que préparer (celui utilisé cette fois)

Conditions préalables

procédure

Faire de Rasppie un «hub MESH»

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)

Supplément

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.

Obtenez l'URL du Webhook entrant

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).

Écrire un serveur en Python

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».

Préparation préalable

Installez la bibliothèque utilisée dans le code source avec pip. (Requests est utilisé pour frapper Slack)

$ pip install bottle requests

Code source

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

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.

Créer un bloc personnalisé à partir du SDK MESH

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éder à la page de création de bloc personnalisé

Accédez au SDK \ _TOP \ _JP. Vous pouvez accéder à l'écran de gestion des blocs personnalisés à partir de "Utiliser le SDK MESH". FireShot Capture 005 - SDK_TOP_JP - meshprj.com.png

Créer un bloc personnalisé

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.

FireShot Capture 010 - MESH SDK - meshprj.com.png FireShot Capture 011 - MESH SDK - meshprj.com.png

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'
}

Une brève description des paramètres

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.

Créez une recette avec l'application MESH

Une brève description de l'application MESH

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.

Enregistrement du hub 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.

IMG_5206.PNG

Ensuite, l'écran "Sélectionner un appareil" apparaît. Connectez-vous et appuyez sur "Ajouter un concentrateur". IMG_5208.PNG

Appuyez sur "Ajouter un hub" pour afficher l'écran suivant. Appuyez sur "Démarrer la configuration" pour continuer. IMG_5210.PNG

Cet écran continue également avec "Suivant". IMG_5211.PNG

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). .. IMG_5213.PNG

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. IMG_5215.PNG

Décidez correctement du nom du hub et passez au suivant. IMG_5218.PNG

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. IMG_5220.PNG

Ajouter un bloc / un bloc personnalisé / créer une recette

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.) IMG_5222.PNG

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. IMG_5226.PNG

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". IMG_5227.PNG

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é. IMG_5230.PNG

Supplément

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é. IMG_5231.PNG

Contrôle de fonctionnement

Maintenant que les réglages sont terminés, appuyons sur le bouton MESH. Si vous publiez sur Slack, vous réussissez. 無題.png

Résumé

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

IoT facile pour démarrer avec Raspeye et MESH
Introduction facile au piratage domestique avec Raspberry Pi et discord.py
Connexion facile entre Raspberry Pi et AWS IoT
Connectez Raspberry Pi à Alibaba Cloud IoT Platform avec «Python»
Surveillance des animaux avec Rekognition et Raspberry pi
Raspberry Pi + python + appareil IoT, procédure de construction d'environnement pour démarrer le traitement d'image et l'apprentissage automatique
MQTT Radicon Car avec Arduino et Raspberry
Obtenez la température et l'humidité avec DHT11 et Raspberry Pi
Exemple de programme de connexion Raspberry Pi et AWS IoT
Connectez-vous à MySQL avec Python sur Raspberry Pi
GPGPU avec Raspberry Pi
DigitalSignage avec Raspberry Pi
Enregistrez la température et l'humidité avec systemd sur Raspberry Pi
Apprentissage automatique avec Raspberry Pi 4 et Coral USB Accelerator
Visualisons la pièce avec tarte aux râpes, partie 1
Détecter l'état de port du masque avec OpenCV et Raspberry Pi
Mesurez la température et l'humidité avec Raspberry Pi3 et visualisez avec Ambient
Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Résoudre les problèmes liés à l'installation d'OpenCV sur Raspberry Pi et à la capture
Contrôlez la lecture de musique sur un smartphone connecté à Raspberry Pi 3 et Bluetooth avec AVRCP
Plantes Mutter avec Raspberry Pi
J'ai parlé à Raspberry Pi
Rendre avec la syntaxe facile
Présentation de PyMySQL à Raspberry pi3
API Nifty Cloud facile à utiliser avec botocore et python
Mettre à jour Raspberry Pi Python vers 3.7 ou version ultérieure avec pyenv
Créez une caméra de surveillance WEB avec Raspberry Pi et OpenCV
Débutant Python s'ouvre et se ferme avec Raspberry Pi
Créez des jeux LCD (16x2) avec Raspberry Pi et Python
J'ai essayé de connecter Raspeye et conect + avec l'API Web
Production de système de contrôle de température avec tarte aux framboises et ESP32 (1)
Mesurez et comparez les températures avec Raspberry Pi et générez automatiquement des graphiques
[Razpai] Comment surveiller en permanence le répertoire et exécuter n'importe quel shell avec des crochets pour les changements
Portez FreeRTOS vers Raspberry Pi 4B
Connectez-vous à Raspberry PI avec ssh sans mot de passe (authentification par clé)
Utilisez vl53l0x avec RaspberryPi (python)
Commande de servomoteur avec Raspberry Pi
MQTT sur Raspberry Pi et Mac
Easy Slackbot avec Docker et Errbot
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
Communication série avec Raspberry Pi + PySerial
J'ai créé un serveur Web avec Razpai pour regarder des anime
Home Hack pour acheter automatiquement quand il devient moins cher avec Amazon Dash Button et Raspberry Pi
Sortie du Raspberry Pi vers la ligne
Classique de Noël (?) Éclairage d'un arbre de Noël avec Raspberry Pi et Philips Hue
Configuration du système d'exploitation avec Raspberry Pi Imager
Installez facilement pyspark avec conda
Créez un thermomètre avec Raspberry Pi et rendez-le visible sur le navigateur Partie 4
Essayez L Chika avec raspberrypi
Faire une boussole d'affichage kanji avec Raspberry Pi et Sense Hat
Démarrage automatique du programme au démarrage avec Raspberry Pi 3B + systemd Résumé
Construire un serveur VPN avec Raspberry Pie
Affichage graphique de la consommation électrique des ménages avec 3GPI et Raspeye
La vie IoT facile et facile avec Micropython!
Créez votre propre plateforme IoT en utilisant raspberrypi et ESP32 (partie 1)
Essayez de déplacer 3 servos avec Raspeye
Mesurez la température, l'humidité, etc. avec SensorTag et envoyez-le à Ambient via Raspberry Pi 3 pour le représenter graphiquement Partie 2
Dessinez facilement des graphiques avec matplotlib