In den Sommerferien habe ich mich der Herausforderung der elektronischen Arbeit gestellt. Dies ist Qiitas erster Beitrag.
Erkennt Vibrationen (Beschleunigungen) mithilfe eines kleinen IOT-Sensors mit Beschleunigung (TWE-LITE-2525A) und POSTs zur Twitter-API.
Online bei Akizuki Electronics gekauft. Ich kam in ungefähr 2 Tagen an.
- Windows10(64bit)
Wenn es so bleibt, wie es zum Zeitpunkt des Kaufs war, sind die von Twilight 2525 gesendeten Daten schwer zu verarbeiten. Schreiben Sie die Einstellungen von MONOSTICK und TWE-LITE-2525A neu.
Zum Umschreiben verwende ich eine Funktion namens "OTA". Es ist ein Mechanismus, um "die Firmware auf die USB-Seite (Empfänger: Monostick-Seite) zu schreiben und sie drahtlos von der USB-Seite auf die Sensorseite zu überschreiben". Da die USB-Seite danach jedoch als Empfänger verwendet wird, muss die Firmware für den Empfänger erneut überschrieben werden. Es scheint eine Abkürzung für # Over The Air zu sein.
Da es ein offizielles Video gibt, ist es einfach, sich einen Überblick zu verschaffen, indem Sie sich das Folgende ansehen. https://www.youtube.com/watch?v=uq_pkrvypBA
Ich verstehe den Ablauf, aber wie schreibt man ihn tatsächlich um? Die Informationen auf der offiziellen Website waren unübersichtlich, und ich war ein wenig süchtig danach, sie zu verschieben.
DL die "Samp_Monitor-Anwendung" aus dem Folgenden. https://mono-wireless.com/jp/products/TWE-Lite-2525A/firmware_update.html
1.Samp_Monitor_EndDevice_Input_JN5164_CNFMST_1_6_1.bin 2.Samp_Monitor_EndDevice_Input_JN5164_LITE2525A_1_6_1.bin 3.Samp_Monitor_Parent_JN5164_1_6_1.bin
Die ZIP-Datei, die DL war, enthält die oben genannten drei: 1 wird für den auf der Sensorseite installierten Behälter und 3 für den auf der USB-Seite installierten Behälter verwendet.
DL / Installieren Sie "TWE-LITE Programmer für Windows" wie folgt. http://mono-wireless.com/jp/tech/misc/LiteProg/
Verwenden Sie diese Anwendung, um verschiedene Firmware auf den Monostick auf der USB-Seite zu schreiben.
Bitte beachten Sie, dass MONOSTICK, wenn es in einem anderen Fenster erkannt wird, von dieser Anwendung nicht erkannt wird. Wenn es nicht erkannt wird, ist es möglicherweise besser, den USB anzuschließen / zu trennen.
Firmware zum Schreiben auf die Sensorseite mit dem oben genannten TWE-LITE-Programmiergerät Schreiben Sie (1.Samp_Monitor_EndDevice_Input_JN5164_CNFMST_1_6_1.bin) auf USB.
Wechseln Sie zu einer beliebigen Einstellung wie im Video. (Vergessen Sie nicht, die Einstellungen mit "S" zu speichern) Einzelheiten wie die Einstellung der seriellen Verbindung und der Baudrate in TeraTerm finden Sie separat beim Beamten.
Siehe diese Abbildung für diese Einstellung
Schalten Sie nach Abschluss der Einstellungen die Lithiumversorgung ein, während Sie den Sensor in der Nähe von USB halten. Schreiben Sie die Firmware auf der Sensorseite neu.
Firmware zum Schreiben auf die USB-Seite mit dem TWE-LITE-Programmiergerät Schreiben Sie (3.Samp_Monitor_Parent_JN5164_1_6_1.bin) auf USB.
Wechseln Sie zu einer beliebigen Einstellung wie im Video. (Vergessen Sie nicht, die Einstellungen mit "S" zu speichern)
Siehe diese Abbildung für diese Einstellung
Die Einstellung ist auf der USB-Seite so wie sie ist abgeschlossen.
Wenn Sie von TeraTerm aus prüfen, können Sie verschiedene Werte mit key = value erhalten, wie unten gezeigt.
Wenn der Sensor nicht reagiert, wird nur das Tag "ts" ausgegeben. Sie können die x-Achse, die y-Achse und die z-Achse erhalten. (Ich sehe diesmal nicht so viel)
Ich habe Python zum ersten Mal geschrieben. Bitte beziehen Sie sich separat auf die Installation von Python und die Erstellung der Twitter-API.
Die Integration von Twitter (OAuth) in Python verwendet request-oauthlib, eine OAuth-Authentifizierungsbibliothek für Python. Installieren Sie die Bibliothek wie folgt.
pip install requests requests_oauthlib
Erstellen Sie den Code anhand des Beispiels auf der Website von Monowire. Der gesamte Quellcode sieht so aus.
DetectionTweet.py
import serial
import requests
from requests_oauthlib import OAuth1Session
from datetime import datetime
CK = 'Write your Consumer Key'
CS = 'Write your Consumer Secret'
AT = 'Write your Access Token'
AS = 'Write your Accesss Token Secert'
#Öffnen Sie COM3
s = serial.Serial('COM3', 115200)
#URL zum Posten von Tweets
url = "https://api.twitter.com/1.1/statuses/update.json"
#Endlosschleife
while 1:
data = s.readline()
#Der Erste ":Beseitigen, abschütteln
data = data[2:]
spilitdatum = data.decode('utf-8').split(":")
dict = {}
# key,Als Wertetyp im Wörterbuch speichern
for spilitdata in spilitdatum:
s_key = spilitdata.split("=")[0]
s_val = spilitdata.split("=")[1]
dict[s_key] = s_val
#Wenn vom Sensor keine Erkennung erfolgt, kann nur die Taste "ts" abgerufen werden
#Hier als passender Schlüssel[id]Urteil von
if ("id" in dict):
#Tweet Körper
#Wenn der Text von Twitter identisch ist, ist Status ein Duplikat und lautet 403 Status. Stellen Sie also die Uhrzeit ein.
params = {"status": "Vibrate Detection! " + "\n" + datetime.now().strftime('%X')}
#Post-by-POST-Methode mit OAuth-Authentifizierung
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.post(url, params = params)
#Überprüfen Sie die Antwort
if req.status_code == 200:
print ("OK: %s" % req)
else:
print ("Error: %s" % req.content)
s.close()
Es ist einfach, aber perfekt für die Tür.
Er twitterte wunderbar, indem er die Tür öffnete und schloss.
Wenn dies unverändert bleibt, werden zu viele Erkennungen vorgenommen (einige Benachrichtigungen werden durch einmaliges Öffnen und Schließen der Tür gesendet). Es scheint notwendig zu sein, das Benachrichtigungs-Timing auf der drahtlosen Seite (Standard 0,5 Sekunden) zu reduzieren und Anpassungen auf der Python-Seite und der Server-Seite vorzunehmen. Ich benutze zu viele Twitter-Ressourcen ;;
Wenn Sie es anschließend mit AWS IoT oder MQTT kombinieren, wird der IOT-Service abgeschlossen. Wie wäre es mit elektronischer Arbeit für die Hausaufgaben Ihres Kindes in den Sommerferien?
Also schrieb ich zum ersten Mal Qiita, aber ich war müde.