import RPi.GPIO as GPIO import dht11 import time import datetime import Adafruit_CharLCD as LCD # start of LCD setup # Raspberry Pi pin setup lcd_rs = 25 lcd_en = 24 lcd_d4 = 23 lcd_d5 = 17 lcd_d6 = 18 lcd_d7 = 22 lcd_backlight = 4 # Raspberry Pi 2 pin setup acd_rs = 26 acd_en = 19 acd_d4 = 13 acd_d5 = 6 acd_d6 = 5 acd_d7 = 21 acd_backlight = 4 # Define LCD column and row size for 16x2 LCD. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) lcd2 = LCD.Adafruit_CharLCD(acd_rs, acd_en, acd_d4, acd_d5, acd_d6, acd_d7, lcd_columns, lcd_rows, acd_backlight) # End of LCD setup # initialize GPIO GPIO.setwarnings(True) GPIO.setmode(GPIO.BCM) # read data using pin 14 instance1 = dht11.DHT11(pin=4) instance2 = dht11.DHT11(pin=27) instance3 = dht11.DHT11(pin=20) instance4 = dht11.DHT11(pin=12) try: while True: result1 = instance1.read() result2 = instance2.read() result3 = instance3.read() result4 = instance4.read() if result1.is_valid(): print("Last valid input: " + str(datetime.datetime.now())) print("Temperature1: %-3.1f C" % result1.temperature) print("Humidity3: %-3.1f %%" % result1.humidity) print(" ") text = result1.temperature lcd.clear() lcd.message(str(text)) time.sleep(5) if result2.is_valid(): print("Last valid input: " + str(datetime.datetime.now())) print("Temperature2: %-3.1f C" % result2.temperature) print("Humidity3: %-3.1f %%" % result2.humidity) print(" ") text2 = result2.temperature lcd2.clear() lcd2.message(str(text2)) time.sleep(5) if result3.is_valid(): print("Last valid input: " + str(datetime.datetime.now())) print("Temperature3: %-3.1f C" % result3.temperature) print("Humidity3: %-3.1f %%" % result3.humidity) print(" ") text3 = result3.temperature lcd.clear() lcd.message(str(text3)) time.sleep(5) if result4.is_valid(): print("Last valid input: " + str(datetime.datetime.now())) print("Temperature4: %-3.1f C" % result4.temperature) print("Humidity4: %-3.1f %%" % result4.humidity) print(" ") text4 = result4.temperature lcd2.clear() lcd2.message(str(text4)) time.sleep(5) except KeyboardInterrupt: print("Cleanup") GPIO.cleanup() result1=msg.payload return msg