Wednesday 24 May 2017

Amazon Web Service

My Secound programming connection is raspberry pi to AWS.

Sensor details send to raspberry pi board to AWS cloud.

following the programming code is Temperature & Humidity sensor values send to AWS cloud.

from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient
import paho.mqtt.client as paho
import os
import socket
import ssl
import datetime
from time import sleep
from random import uniform
import RPi.GPIO as GPIO
import Adafruit_DHT

sensor = Adafruit_DHT.DHT11
#sensor = Adafruit_DHT.DHT22
 
GPIO.setmode(GPIO.BOARD)
 
# Defines the GPIO connected to the sensor data pin
pino_sensor=25

connflag = False
def on_connect(client,userdata,flags,rc):
    global connflag
    connflag = True
    print("connection return result:"+str(rc))
def on_message(client,userdata,msg):
    print(msg.Topic+" "+str(msg.payload))

mqttc = paho.Client()
mqttc.on_connect = on_connect
mqttc.on_message = on_message
awshost = "a1ajeyt0psxjow.iot.ap-southeast-1.amazonaws.com"
awsport = 8883
clientId = "temperature"
thingName = "temperature"
caPath = "/home/pi/tempcert/root-CA.crt"
certPath = "/home/pi/tempcert/temperature.cert.pem"
keyPath = "/home/pi/tempcert/temperature.private.key"
mqttc.tls_set(caPath,certfile=certPath,keyfile=keyPath,cert_reqs=ssl.CERT_REQUIRED,tls_version=ssl.PROTOCOL_TLSv1_2, ciphers=None)
mqttc.connect(awshost,awsport,keepalive = 60)
mqttc.loop_start()
timestamp = datetime.datetime.now()
 # Read the sensor
umid, temp = Adafruit_DHT.read_retry (sensor, pino_sensor);
if temp is not None and umid  is not None:
    mqttc.publish("tempandhumd","credo websolutions"+"temperature"+str(temp)+"humidity"+str(umid)+"time"+format(timestamp),qos=1)
    print("temperature"+"%.2f"%temp,"humidity"+"%.2f"%umid,"time" + format(timestamp))
else:
    mqttc.publish("tempandhumd","sensor is not connected",qos=1)
    print("values not sent")
while temp>30  and umid<60:
    sleep(10)
    if connflag == True:
        timestamp = datetime.datetime.now()
        # Read the sensor
        umid, temp = Adafruit_DHT.read_retry (sensor, pino_sensor);
        mqttc.publish("tempandhumd","change in temperature "+"temperature"+str(temp)+"humidity"+str(umid)+"time"+format(timestamp),qos=1)
        print("temperature"+"%.2f"%temp,"humidity"+"%.2f"%umid,"time" + format(timestamp))
    else:
       print("waiting for connection")

o/p: finally run this code DHT11 sensor values is read in AWS cloud.. 

No comments:

Post a Comment