Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
AWS IOT SDK en Python
#1
saludos, 

Estoy desarrollando una aplicación IoT con Raspberry Pi y AWS IoT. Cuando quiero enviar un mensaje desde mi Raspberry, ejecuto mi código desde Thonny, utilizando el SDK de AWS IoT asi:

Código:
from decimal import Decimal
import RPi.GPIO as GPIO
import PCF8591 as ADC
import math
import requests
import time
import LCD1602 as LCD
from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient

GPIO.setmode(GPIO.BOARD)
myMQTTClient = AWSIoTMQTTClient("RishabClientID") #random key, if another connection using the same key is opened the previous one is auto closed by AWS IOT
myMQTTClient.configureEndpoint("a1l83aslu1wtwg-ats.iot.us-east-1.amazonaws.com", 8883)

myMQTTClient.configureCredentials("/home/pi/AWSIoT/root-ca.pem", "/home/pi/AWSIoT/private.pem.key", "/home/pi/AWSIoT/certificate.pem.crt")

myMQTTClient.configureOfflinePublishQueueing(-1) # Infinite offline Publish queueing
myMQTTClient.configureDrainingFrequency(2) # Draining: 2 Hz
myMQTTClient.configureConnectDisconnectTimeout(10) # 10 sec
myMQTTClient.configureMQTTOperationTimeout(5) # 5 sec
print ('Initiating Realtime Data Transfer From Raspberry Pi...')
myMQTTClient.connect()

def setup():
    ADC.setup(0x48)
    GPIO.setup(11, GPIO.IN)
    LCD.init(0x27, 1)

def loop():
    while True:
        analogVal = ADC.read(0)
        Vr = 5 * float(analogVal) / 255
        Rt = 10000 * Vr / (5 - Vr)
        temperature = 1 / (((math.log(Rt / 10000)) / 3950) + (1 / (273.15 + 25)))
        temperature = (temperature - 273.15)
        temperature = round(temperature, 1)
        fahrenheit = ((temperature*1.8)+32)
        LCD.write(0,0, 'Temp: {} F'.format(fahrenheit)+'        ')
        time.sleep(.5)
        print("Sending Temperature: ", fahrenheit)


        myMQTTClient.publish(
            topic="RealTimeDataTrasfer/Temperature",
            QoS=1,
            payload='{"Temperature":"'+str(fahrenheit)+'"}')

if __name__ == '__main__':
    try:
        setup()
        loop()
    except KeyboardInterrupt:
        pass

Al ejecutar el código me arroja el siguiente error:

ModuleNotFoundError: No module named AWSIoTPythonSDK


No se pueda estar pasando, soy nuevo en esto. Agradezco su ayuda....
Responder
#2
Hola, bienvenido. Te falta instalar el SDK de AWS. Ejecutá este comando en la terminal:

Código:
pip install AWSIoTPythonSDK

Saludos!
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)