Ubiregi Adventskalender 2019 Tag 4 führt ein einfaches IoT mit Raspeye und MESH ein.
Wenn Sie die "Taste" des MESH-Blocks drücken, wird eine feste Nachricht an Slack gesendet, was sehr einfach ist. Als Anwendung befestige ich einen Monitor an der Raspeltorte und verwende ihn als Türsprechanlage. Ich denke, ich möchte ihn sehen. Wenn Sie alleine leben, gibt es ein Problem, bei dem Sie nicht wissen, ob Personen während Ihrer Abwesenheit zu Besuch sind. Wenn Sie stattdessen eine MESH-Taste drücken, können Sie beispielsweise Ihr Smartphone benachrichtigen, dass eine Person angekommen ist.
Die Formel ist in dieser Hinsicht sehr großzügig, daher sollten Sie sich darauf beziehen.
[Sagen Sie mir, wie Sie die App "MESH Hub" auf Raspberry Pi - MESH Support \ | Blockförmige elektronische Tags installieren, die aus Versehen eine Verbindung zur App herstellen](https://support.meshprj.com/hc/ ja / articles / 115002125554)
Die Raspeltorte, die ich dieses Mal verwendet habe, ist Null, daher ist sie beim Starten des Browsers sehr schwer.
Der Teil, auf den im obigen Verfahren mit dem Browser zugegriffen werden soll, wird mit einem normalen PC ausgeführt.
② So melden Sie sich bei Raspberry Pi an und führen den Download-Befehl aus
Ich denke, es ist einfach, den Befehl zu kopieren und über SSH herunterzuladen.
Legen Sie im Voraus einen Benachrichtigungszielkanal fest.
Nächster, Verwenden Sie Slacks eingehende Webhooks \ -Qiita Fügen wir den eingehenden Webhook hinzu und kopieren Sie die URL unter Bezugnahme auf. Es wird empfohlen, die URL zu speichern, da es sich um einen Notizblock handeln kann (wir werden ihn beim nächsten Mal verwenden).
Ich benutze Python einfach, weil ich es oft benutze. Es spielt also keine Rolle, welche Sprache Sie verwenden, solange Sie dasselbe tun können. In Rasbian ist Python übrigens standardmäßig installiert, sodass Sie Python nicht selbst installieren müssen. Die diesmal verwendete Version von Python ist "Python 2.7.13".
Erstellen Sie einen einfachen HTTP-Server, um Raspeye-Programme von MESH aus zu erreichen. Diesmal habe ich ein leichtes Micro-Web-Framework namens "Flasche" verwendet.
Installieren Sie die im Quellcode verwendete Bibliothek mit pip
.
(Requests
wird verwendet, wenn Slack getroffen wird)
$ pip install bottle requests
Der Speicherort kann sich überall befinden. Erstellen Sie daher eine Datei an einem geeigneten Ort und schreiben Sie den folgenden Quellcode. Der Name kann alles sein, aber diesmal habe ich "server.py" gewählt. (Siehe "Erstellen eines von Apple Watch mit der Himbeerversion MESH \ -Qiita betriebenen Chatroboters")
server.py
# -*- coding: utf-8 -*-
from bottle import route, run, template
import json
import requests
slack_settings = {
# channel_Lassen Sie uns den Namen willkürlich ändern
#Dies liegt daran, dass es einfach ist, die Einstellung zu erhöhen, wenn Sie auch andere Kanäle benachrichtigen möchten.
'channel_name': {
'url' : '{URL erhalten im Prozess "URL des eingehenden Webhooks abrufen"}',
'botname': 'test',
'icon' : ':muscle:',
'message': '<!here>\Benachrichtigung von 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)
Starten Sie den Server mit dem folgenden Befehl. Ich denke nicht, dass es besonders schwierig ist.
$ python server.py
Wenn Sie es gut starten, sehen Sie diese Anzeige.
Bottle v0.12.17 server starting up (using WSGIRefServer())...
Listening on http://localhost:8080/
Hit Ctrl-C to quit.
Versuchen Sie es mit "Curl". Wenn Sie die Konsole schließen, auf der "python server.py" ausgeführt wird, wird der Server gestoppt. Öffnen Sie also eine andere Konsole (auch wenn Sie eine SSH-Verbindung haben).
$ curl http://localhost:8080/post/slack/channel_name
Auf der Seite läuft der Server
<Response [200]>
127.0.0.1 - - [04/Dec/2019 13:46:15] "GET /post/slack/channel_name HTTP/1.1" 200 0
Ich denke, dass ein Protokoll angezeigt wird. Wenn dies der Fall ist, ist es ein Erfolg.
In MESH wird die Verarbeitung erstellt, indem die als Blöcke bezeichnete Standardverarbeitung mit Zeilen verbunden wird. (Später eingestellt) Sie müssen also einen Block erstellen, der auf die zuvor erstellte URL von "server.py" trifft. Also mach es zuerst.
Greifen Sie auf [SDK \ _TOP \ _JP] zu (https://meshprj.com/sdk-jp/). Sie können unter "MESH SDK verwenden" zum Bildschirm für die benutzerdefinierte Blockverwaltung wechseln.
Klicken Sie auf "Neuen Block erstellen", um den Bildschirm zum Erstellen benutzerdefinierter Blöcke anzuzeigen. Legen Sie ihn also fest. Die Einstellungen sind wie folgt. Wenn Sie alles eingestellt haben, klicken Sie oben links auf "Speichern", um zu speichern.
Quellcode in Code eingestellt
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'
}
Für die Einstellungen in diesem Bereich habe ich auf "Erstellen eines von Apple Watch mit der Himbeerversion MESH \ -Qiita betriebenen Chatroboters" verwiesen.
Connector Dies stellte nur den Eingangsanschluss ein. Wie Sie später durch Berühren der MESH-App sehen werden, befinden sich im MESH-Block Ein- und Ausgänge. Dieses Mal wird nach dem Drücken der Taste die Verarbeitung dieses benutzerdefinierten Blocks gestartet und es fühlt sich wie das Ende an, sodass im Ausgangsanschluss keine Einstellung vorhanden ist. Wenn Sie etwas anderes tun möchten, nachdem dieser benutzerdefinierte Block funktioniert, muss auch der Output Connector konfiguriert werden.
Property Auf diese Weise können Sie Eigenschaften erstellen, auf die Sie in Ihrem Code verweisen können. Sie können den Wert der Eigenschaft anpassen, wenn Sie einen benutzerdefinierten Block platzieren. Selbst wenn Sie beispielsweise einen anderen Kanal benachrichtigen möchten, müssen Sie keinen neuen Block erstellen. Sie können den Wert der Eigenschaft beim Anordnen einfach ändern, und es ist in Ordnung.
Code Dies ist der JavaScript-Code, der ausgeführt wird, wenn der benutzerdefinierte Block gekickt wird. Sobald der Code gekickt ist, werde ich den Server treffen, den ich zuvor in Python mit Ajax geschrieben habe.
Um einen Prozess mit MESH zu erstellen, müssen Sie mit der MESH-App ein "Rezept" erstellen. ** Dieses Rezept kann nur über die MESH-App erstellt werden. ** Rezepte, die mit Razzpie funktionieren, werden ebenfalls über die MESH-App erstellt.
Lassen Sie uns als vorläufige Vorbereitung Bluetooth für Smartphones und Raspetorte aktivieren. Starten Sie die MESH-App von Ihrem Smartphone aus. Oben rechts befindet sich eine Smartphone-Markierung. Wenn Sie jedoch darauf tippen, wird die folgende Meldung "Zu einem anderen Terminal wechseln" angezeigt. Tippen Sie also auf diese Markierung.
Daraufhin wird der Bildschirm "Gerät auswählen" angezeigt. Melden Sie sich an und tippen Sie auf "Hub hinzufügen".
Tippen Sie auf "Hub hinzufügen", um den nächsten Bildschirm anzuzeigen. Tippen Sie auf "Start Setup", um fortzufahren.
Dieser Bildschirm fährt auch mit "Weiter" fort.
Wenn die Verbindung zwischen dem Smartphone und Raspeye erfolgreich ist, wird der folgende Bildschirm angezeigt. Wenn Sie nicht einige Minuten warten können, überprüfen Sie Bluetooth oder prüfen Sie, ob Raspeye zur Einrichtung bereit ist (tippen Sie auf den Link auf dem Bildschirm, und Sie werden sehen, wie es geht). ..
Dieser Bildschirm gibt an, ob das WLAN von Raspeye eingestellt werden soll oder nicht. Wenn Sie keine drahtgebundene Verbindung hergestellt haben, sollte die Wi-Fi-Verbindung grundsätzlich beendet sein. Überspringen Sie sie daher.
Entscheiden Sie den Namen des Hubs entsprechend und fahren Sie mit dem nächsten fort.
Wenn alles gut geht, wird dieser Bildschirm angezeigt. Wählen Sie also den MESH-Hub des Raspeye aus, den Sie gerade hinzugefügt haben, und tippen Sie unten auf dem Bildschirm auf "Auswählen".
Tippen Sie im oberen Bildschirmbereich der App auf "Neues Rezept", um diesen Bildschirm anzuzeigen. Fügen wir zunächst einen MESH-Block hinzu. Schalten Sie den MESH-Block ein und tippen Sie unten links auf die Plus-Markierung "Block hinzufügen". (Die Stromversorgung kann durch Drücken und Halten des Siliziummaterialteils des MESH-Blocks eingeschaltet werden. Wenn es sich nicht einschalten lässt, laden Sie es auf.)
Wenn Sie es erfolgreich hinzufügen können, wird im unteren linken Block ein "Schaltflächenblock" angezeigt. Tippen Sie also darauf und ziehen Sie ihn, um ihn zu platzieren. Es sollte wie auf dem Bildschirm unten aussehen.
Fügen Sie dann einen benutzerdefinierten Block hinzu. Ich habe gerade den JavaScript-Code auf dem Webbildschirm registriert. Obwohl dies auf dem oberen Bildschirm angezeigt wird, können Sie zum Additionsbildschirm wechseln, indem Sie auf das Pluszeichen "Benutzerdefinierte Addition" tippen. Anschließend wird der zuvor registrierte benutzerdefinierte Block wie unten gezeigt angezeigt. Tippen Sie also darauf und dann auf die Schaltfläche "Hinzufügen".
Ich glaube, ich konnte es sicher hinzufügen. Platzieren Sie den benutzerdefinierten Block auf die gleiche Weise wie den "Schaltflächenblock" zuvor und verbinden Sie das Ende des Schaltflächenblocks und das Ende des benutzerdefinierten Blocks wie unten gezeigt. Sie können eine Verbindung mit einer Linie herstellen, indem Sie vom platzierten Schaltflächenblock zum benutzerdefinierten Block ziehen.
Wenn Sie auf den platzierten benutzerdefinierten Block tippen, wird ein Bildschirm wie dieser angezeigt. Hier können Sie den Wert der Eigenschaft ändern. Wenn Sie das serverseitige Programm von Python ändern, können Sie das Verhalten ändern, indem Sie den Pfad hier im selben benutzerdefinierten Block ändern.
Nachdem die Einstellungen abgeschlossen sind, drücken wir die MESH-Taste. Wenn Sie bei Slack posten, sind Sie erfolgreich.
Damit ist die Benachrichtigung (über Raspeye) über Slack abgeschlossen, wenn Sie die MESH-Taste drücken. Es gibt ziemlich viele Schritte, aber wie Sie vielleicht bemerkt haben, ist der Quellcode, den ich geschrieben habe, sehr klein. Erstens gibt es eine Hürde, dass Sie Raspeye installieren müssen, aber wenn Sie diese überschreiten, können Sie dies relativ schnell tun. Zusätzlich zu den Tasten verfügt MESH über verschiedene Blöcke wie LED, menschlicher Sensor, Bewegungssensor, Temperatur- / Feuchtigkeitssensor, Helligkeitssensor und GPIO. Eine seiner Stärken ist, dass Sie Ihr eigenes IoT erstellen können, auch wenn Sie überhaupt keine elektronische Arbeit leisten können (außer GPIO). Wenn es um elektronische Arbeit geht, sind einige Kenntnisse in Elektrotechnik und Elektronik erforderlich. Für diejenigen, die gewöhnliche Softwareentwickler waren, sind die Hürden daher etwas hoch. MESH-Tags erfordern jedoch fast keine Kenntnisse der elektronischen Arbeit und werden empfohlen, da die meisten Dinge durch Software überfordert sein können. Übrigens, wenn Sie etwas physisch tun möchten, aber keine Kenntnisse über elektronische Arbeit haben, können Sie versuchen, den Befehl Auswerfen zu verwenden, was sehr praktisch ist (Referenz: Befehl Auswerfen ist Himbeere). Spielen wir mit Pi ~ Einfache Arbeit mit CD \ -ROM-Laufwerk ~).
Recommended Posts