[PYTHON] Benachrichtigen Sie LINE über Standortinformationen (Google-Karte) mit der GPS-SORACOM Edition mit mehreren Einheiten

Was ich getan habe

GPS-SORACOM Edition-Daten mit mehreren Einheiten werden über SORACOM Funk an AWS Lambda gesendet, und Standortinformationen werden mithilfe von LINE Notify benachrichtigt. Die Standortinformationen sind ein Link in Google Maps. Die verwendete Sprache ist Python.

Was ist die GPS-SORACOM Edition mit mehreren Einheiten?

Unten zitiert von Official Site

GPS-Multi-Unit-SORACOM Edition ist ein Gerät, das LTE-M-Kommunikation verwenden kann. Hierbei handelt es sich um eine zellulare LPWA mit vier integrierten Sensoren für "Standortinformationen (GPS)", "Temperatur", "Luftfeuchtigkeit" und "Beschleunigung" sowie einem Akku. ist.

Weitere Informationen finden Sie weiter unten. Was ist (offizielle) GPS Multiunit SORACOM Edition Spielen Sie mit SORACOM Edition mit mehreren GPS-Geräten

Was ist SORACOM Funk?

Es ist ein Dienst, der die Funktion des Cloud-Dienstes direkt ausführen kann. Führen Sie diesmal AWS Lambda aus.

Siehe unten Was ist (offiziell) SORACOM Funk Ich habe versucht, SORACOM Funk zu verwenden.

Was ist LINE Notify?

Unten von Offizielle Seite

Erhalten Sie Benachrichtigungen von Webdiensten auf LINE Wenn Sie mit dem Webdienst verknüpft sind, erhalten Sie eine Benachrichtigung von dem von LINE bereitgestellten offiziellen Konto "LINE Notify". Es kann mit mehreren Diensten verknüpft werden, und sogar Gruppen können Benachrichtigungen erhalten.

Siehe unten Nachricht mit Python an LINE senden (LINE Notify)

Rufen Sie LINE Notify auf AWS Lambda an

Die Einstellungen für SORACOM, AWS Lambda und LINE Notify werden weggelassen.

Folgendes an AWS Lambda. Python 3.6 Die Uhrzeit wird ebenfalls mitgeteilt.

lambda_function.py


import os
import requests
import datetime

def lambda_handler(event, context):
    lat = event['lat']     #Breite
    lon = event['lon']     #Längengrad

#Holen Sie sich das aktuelle Datum und die Uhrzeit(Japan Zeit)
    now = datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=9))) 

#Wenn Standortinformationen nicht abgerufen werden können
    if lat == None or lon == None:
      msg = now.strftime('%Y-%m-%d') + " " + now.strftime('%H:%M:%S') + " " + "Standortinformationen konnten nicht abgerufen werden"
      line_notify(msg)
      return

#Auf Google Maps anzeigen
    mapurl = "https://maps.google.co.jp/maps?q=" + str(lat) + "," + str(lon)  #Für Google Map
    msg = now.strftime('%Y-%m-%d') + " " + now.strftime('%H:%M:%S') + " " +  "Du bist hier" + " " + mapurl
    line_notify(msg)

#Benachrichtigen LINE Benachrichtigen
def line_notify(msg):
    url = "https://notify-api.line.me/api/notify"
    headers = {"Authorization" : "Bearer "+ "<Setze LINE TOKEN>"}
    data = {"message" : msg}
    s3 = requests.Session()
    r3 = s3.post(url, data=data, headers=headers)

Ergebnis

IMG_2719.jpg

Wenn die Standortinformationen nicht abgerufen werden können,

IMG_2720.jpg

Recommended Posts

Benachrichtigen Sie LINE über Standortinformationen (Google-Karte) mit der GPS-SORACOM Edition mit mehreren Einheiten
Benachrichtigen Sie LINE über Informationen zum Zugbetrieb
Benachrichtigen Sie regelmäßig den Verarbeitungsstatus von Raspberry Pi mit Python → Google Spreadsheet → LINE
Benachrichtigen Sie LINE über die Informationen zum TV-Auftritt Ihres Lieblingsunterhalters
Ich habe versucht, die Zugverspätungsinformationen mit LINE Notify zu benachrichtigen
Visualisieren Sie Standortinformationen mit Basemap
Benachrichtigen Sie LINE über die Körpertemperatur vom BLE-Thermometer mit Raspeltorte Nr. 1
Benachrichtigen Sie LINE über die Körpertemperatur vom BLE-Thermometer mit Raspeltorte Nr. 2