[PYTHON] Exemple de programme de connexion Raspberry Pi et AWS IoT

supposition

environnement

Structure du programme

--Programme de publication de messages: MQTTpub_test1_qiita.py

PubSub Figure 1.png

programme

―― Ce qui suit est un programme à exécuter sur Raspberry Pi. --Publier le programme

MQTTpub_test1_qiita.py


from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient
import os
import json
import time

CLIENT_ID = "mqtt_pub1"
IOT_ENDPOINT_URL = "XXX-XXX.XXX.ap-northeast-1.amazonaws.com"
IOT_ENDPOINT_PORT = 8883

PATH = os.getcwd()
ROOT_CA_PATH = PATH + "/XXX-CA1.pem"
PRIVATE_KEY_PATH =  PATH + "/XXX-private.pem.key"
CERTIFICATE_PATH =  PATH + "/XXX-certificate.pem.crt"

KEEP_ALIVE_TIME = 60

TOPIC = "rasp3-mono/timestamp"

myMQTTClient = AWSIoTMQTTClient(CLIENT_ID)
myMQTTClient.configureEndpoint(IOT_ENDPOINT_URL, IOT_ENDPOINT_PORT)
myMQTTClient.configureCredentials(ROOT_CA_PATH, PRIVATE_KEY_PATH, CERTIFICATE_PATH)

myMQTTClient.configureOfflinePublishQueueing(-1)
myMQTTClient.configureDrainingFrequency(2)
myMQTTClient.configureConnectDisconnectTimeout(10)
myMQTTClient.configureMQTTOperationTimeout(5)

def GetTimeStamp():
  return time.time()

if __name__ == '__main__':
  myMQTTClient.connect(KEEP_ALIVE_TIME)

  num = 0
  while num < 10:
    message = {}
    message['num'] = num
    message['time'] = GetTimeStamp()
    payload = json.dumps(message)
    print("payload=", payload)
    myMQTTClient.publish(TOPIC, payload, 1)
    num += 1
    time.sleep(5)

MQTTsub_test1_qiita.py


from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient
import os
import json
import time

CLIENT_ID = "mqtt_sub1"
IOT_ENDPOINT_URL = "XXX-XXX.XXX.ap-northeast-1.amazonaws.com"
IOT_ENDPOINT_PORT = 8883

PATH = os.getcwd()
ROOT_CA_PATH = PATH + "/XXX-CA1.pem"
PRIVATE_KEY_PATH =  PATH + "/XXX-private.pem.key"
CERTIFICATE_PATH =  PATH + "/XXX-certificate.pem.crt"

KEEP_ALIVE_TIME = 60

TOPIC = "rasp3-mono/timestamp"

myMQTTClient = AWSIoTMQTTClient(CLIENT_ID)
myMQTTClient.configureEndpoint(IOT_ENDPOINT_URL, IOT_ENDPOINT_PORT)
myMQTTClient.configureCredentials(ROOT_CA_PATH, PRIVATE_KEY_PATH, CERTIFICATE_PATH)

myMQTTClient.configureOfflinePublishQueueing(-1)
myMQTTClient.configureDrainingFrequency(2)
myMQTTClient.configureConnectDisconnectTimeout(10)
myMQTTClient.configureMQTTOperationTimeout(5)

def customCallback(client, userdata, message):
    dict_message = json.loads(message.payload)
    print("num = {}, Time Difference = {}".format(dict_message['num'], time.time() - dict_message['time']))

if __name__ == '__main__':
  myMQTTClient.connect(KEEP_ALIVE_TIME)

  num = 0
  while num < 12:
    myMQTTClient.subscribe(TOPIC, 1, customCallback)
    num += 1
    time.sleep(5)

Exemple d'exécution

--Exemple d'exécution de programme d'abonnement --Le décalage horaire est affiché

Sortie exemple_Figure 2.png

Comparaison

  1. Testez la connexion à AWS IoT message prober via WiFi
  2. Testez la connexion à AWS IoT Message Broker via le partage de connexion iPhone (4G)

――Lorsque j'ai exécuté Pub / Sub 30 fois, le résultat du décalage est le suivant. 比較_図3.png

――Le décalage temporel dépend de l'environnement de communication, c'est donc juste pour référence. ――Comme mentionné ci-dessus, le test de connexion a été effectué à l'aide du programme Pub / Sub.

Recommended Posts

Exemple de programme de connexion Raspberry Pi et AWS IoT
Connexion facile entre Raspberry Pi et AWS IoT
Envoyer des données depuis Raspberry Pi à l'aide d'AWS IOT
IoT facile pour démarrer avec Raspeye et MESH
Exécutez AWS IoT Device SDK for Python sur Raspberry Pi
MQTT sur Raspberry Pi et Mac
Créez votre propre plateforme IoT en utilisant raspberrypi et ESP32 (partie 1)
[Raspberry Pi] Ajouter un thermomètre et un hygromètre
Surveillance active des appareils AWS IoT
Construction de VPN de passerelle IPsec avec CentOS 8 et openSUSE (Raspberry Pi) --2 Confirmation de connexion VPN StrongSwan
Raspberry Pi 3 x Julius (fichier de lecture et fichier de grammaire)
MQTT Radicon Car avec Arduino et Raspberry
Obtenez la température et l'humidité avec DHT11 et Raspberry Pi
Modifiez et déboguez le code dans Raspberry Pi avec la fonction de connexion SSH de VSCode
Construction VPN simple de la passerelle IPsec avec Ubuntu 20.04 et Raspberry Pi --2 Confirmation de connexion VPN StrongSwan
Créez votre propre plateforme IoT en utilisant raspberrypi et ESP32 (partie 2) ~ ESP32 Setting L Chika
Enregistrez la température et l'humidité avec systemd sur Raspberry Pi
Apprentissage automatique avec Raspberry Pi 4 et Coral USB Accelerator
Créez un capteur de couleur à l'aide d'une tarte à la râpe et d'une caméra
Surveiller la température à l'aide de la plate-forme IoT cloud Raspberry Pi + Alibaba
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
Installation de Docker sur Raspberry Pi et L Chika
Installez pyenv sur Raspberry Pi pour gérer Python
Résoudre les problèmes liés à l'installation d'OpenCV sur Raspberry Pi et à la capture
Utilisez raspberryPi et Julius (reconnaissance vocale). ③ Création de dictionnaire
Créez votre propre plate-forme IoT à l'aide de raspberrypi et ESP32 (partie 3) ~ Paramètres ESP32 Capteur de température analogique
Raspberry Pi + python + appareil IoT, procédure de construction d'environnement pour démarrer le traitement d'image et l'apprentissage automatique