[PYTHON] Notifier LINE des informations de localisation (Google map) avec GPS Multi-Unit SORACOM Edition

Ce que j'ai fait

Les données GPS multi-unités SORACOM Edition sont envoyées à AWS Lambda via SORACOM Funk et les informations de localisation sont notifiées à l'aide de LINE Notify. Les informations de localisation sont un lien sur Google Maps. Le langage utilisé est Python.

Qu'est-ce que l'édition SORACOM multi-unités GPS?

Ci-dessous, cité sur Site officiel

GPS multi-unit SORACOM Edition est un appareil qui peut utiliser la communication LTE-M, qui est un LPWA cellulaire, avec quatre capteurs intégrés de «localisation (GPS)», «température», «humidité» et «accélération» et une batterie rechargeable. est.

Voir ci-dessous pour plus d'informations. Qu'est-ce que l'édition (officielle) du GPS Multiunit SORACOM Jouez avec l'édition SORACOM multi-unités GPS

Qu'est-ce que SORACOM Funk?

C'est un service qui peut exécuter directement la fonction du service cloud. Cette fois, exécutez AWS Lambda.

Voir ci-dessous Qu'est-ce que SORACOM Funk (officiel) J'ai essayé d'utiliser SORACOM Funk.

Qu'est-ce que LINE Notify?

Ci-dessous, à partir du Site officiel

Recevoir des notifications de services Web sur LINE Une fois lié au service Web, vous recevrez une notification du compte officiel "LINE Notify" fourni par LINE. Il peut être lié à plusieurs services, et même les groupes peuvent recevoir des notifications.

Voir ci-dessous Envoyer un message à LINE avec Python (LINE Notify)

Appeler LINE Notify sur AWS Lambda

Les paramètres de SORACOM, AWS Lambda et LINE Notify sont omis.

Les éléments suivants pour AWS Lambda. Python 3.6 L'heure est également notifiée.

lambda_function.py


import os
import requests
import datetime

def lambda_handler(event, context):
    lat = event['lat']     #latitude
    lon = event['lon']     #longitude

#Obtenez la date et l'heure actuelles(Heure du Japon)
    now = datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=9))) 

#Lorsque les informations de localisation ne peuvent pas être obtenues
    if lat == None or lon == None:
      msg = now.strftime('%Y-%m-%d') + " " + now.strftime('%H:%M:%S') + " " + "Impossible d'obtenir les informations de localisation"
      line_notify(msg)
      return

#Voir sur Google Maps
    mapurl = "https://maps.google.co.jp/maps?q=" + str(lat) + "," + str(lon)  #Pour google map
    msg = now.strftime('%Y-%m-%d') + " " + now.strftime('%H:%M:%S') + " " +  "Tu es là" + " " + mapurl
    line_notify(msg)

#Notifier LINE Notifier
def line_notify(msg):
    url = "https://notify-api.line.me/api/notify"
    headers = {"Authorization" : "Bearer "+ "<Définir le JETON DE LIGNE>"}
    data = {"message" : msg}
    s3 = requests.Session()
    r3 = s3.post(url, data=data, headers=headers)

résultat

IMG_2719.jpg

Si les informations de localisation ne peuvent pas être obtenues,

IMG_2720.jpg

Recommended Posts

Notifier LINE des informations de localisation (Google map) avec GPS Multi-Unit SORACOM Edition
Notifier LINE des informations sur l'exploitation du train
Informer périodiquement l'état de traitement de Raspberry Pi avec python → Google Spreadsheet → LINE
Notifier LINE des informations d'apparence TV de votre artiste préféré
J'ai essayé de notifier les informations de retard de train avec LINE Notify
Visualisez les informations de localisation avec Basemap
Notifier LINE de la température corporelle du thermomètre BLE avec la tarte à la râpe # 1
Avertir LINE de la température corporelle du thermomètre BLE avec la tarte à la râpe n ° 2