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:

  1. from decimal import Decimal
  2. import RPi.GPIO as GPIO
  3. import PCF8591 as ADC
  4. import math
  5. import requests
  6. import time
  7. import LCD1602 as LCD
  8. from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient
  9.  
  10. GPIO.setmode(GPIO.BOARD)
  11. myMQTTClient = AWSIoTMQTTClient("RishabClientID") #random key, if another connection using the same key is opened the previous one is auto closed by AWS IOT
  12. myMQTTClient.configureEndpoint("a1l83aslu1wtwg-ats.iot.us-east-1.amazonaws.com", 8883)
  13.  
  14. myMQTTClient.configureCredentials("/home/pi/AWSIoT/root-ca.pem", "/home/pi/AWSIoT/private.pem.key", "/home/pi/AWSIoT/certificate.pem.crt")
  15.  
  16. myMQTTClient.configureOfflinePublishQueueing(-1) # Infinite offline Publish queueing
  17. myMQTTClient.configureDrainingFrequency(2) # Draining: 2 Hz
  18. myMQTTClient.configureConnectDisconnectTimeout(10) # 10 sec
  19. myMQTTClient.configureMQTTOperationTimeout(5) # 5 sec
  20. print ('Initiating Realtime Data Transfer From Raspberry Pi...')
  21. myMQTTClient.connect()
  22.  
  23. def setup():
  24. ADC.setup(0x48)
  25. GPIO.setup(11, GPIO.IN)
  26. LCD.init(0x27, 1)
  27.  
  28. def loop():
  29. while True:
  30. analogVal = ADC.read(0)
  31. Vr = 5 * float(analogVal) / 255
  32. Rt = 10000 * Vr / (5 - Vr)
  33. temperature = 1 / (((math.log(Rt / 10000)) / 3950) + (1 / (273.15 + 25)))
  34. temperature = (temperature - 273.15)
  35. temperature = round(temperature, 1)
  36. fahrenheit = ((temperature*1.8)+32)
  37. LCD.write(0,0, 'Temp: {} F'.format(fahrenheit)+' ')
  38. time.sleep(.5)
  39. print("Sending Temperature: ", fahrenheit)
  40.  
  41.  
  42. myMQTTClient.publish(
  43. topic="RealTimeDataTrasfer/Temperature",
  44. QoS=1,
  45. payload='{"Temperature":"'+str(fahrenheit)+'"}')
  46.  
  47. if __name__ == '__main__':
  48. try:
  49. setup()
  50. loop()
  51. except KeyboardInterrupt:
  52. 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!
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)