import requests
import os
import time
from time import sleep
from datetime import datetime
import Adafruit_DHT
from luma.core.interface.serial import i2c
from luma.core.rander import canvas
from luma.oled.device import ssd1306, ssd1325, ssd1331, sh1106
import RPi.GPIO as GPIO
dht = Adafruit_DHT.DHT22
pin = 14
serial = i2c(port=1, address=0x3C)
device = sh1106(serial, rotate=0)
#---------------กำหนดขาไฟแจ้งเตือน-----------
V1 = 18; F1 = 23; M = 25
V2 = 5; F2 = 6; L = 12
ON = 1
OFF = 0
#------------ตั้งค่าไฟแจ้งเตือน-------------------
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(V1,GPIO.OUT); GPIO.setup(F1,GPIO.OUT); GPIO.setup(M,GPIO.OUT)
GPIO.setup(V2,GPIO.OUT); GPIO.setup(F2,GPIO.OUT); GPIO.setup(L,GPIO.OUT)
#---------------------เปิดไฟล์ เพื่อเก็บค่า----------------
file = open("/home/pi/data_log1.csv","a")
i=0
if os.state("/home/pi/data_log1.csv").st_size == 0:
file.write("Date:Time,Temperature,Humidty\n")
#-------------------เรียกใช้ฟังก์ชั่นแจ้งเตือน---------------------------
url = 'https://notify-api.line.me/api/notify'
token =
headers = {
'content-type':
'application/x-www-form-urlencoded',
'Authorization':'Bearer'+token
}
#-----------------------------------------------------------
def control_led1(M,state1,F1,state2,V1,state3):
GPIO.output(M,state1); GPIO.output(F1,state2); GPIO.output(V1,state3)
def control_led2(L,state4,F2,state5,V2,state6):
GPIO.output(L,state4); GPIO.output(F2,state5); GPIO.output(V2,state6)
while True:
control_led1(M,ON,F1,OFF,V1,OFF)
print("LED1_RED = ON, LED2_YELLOW = OFF, LED3_GREEN = OFF")
control_led2(L,ON,F2,OFF,V2,OFF)
print("LED4_RED = ON, LED5_YELLOW = OFF, LED6_GREEN = OFF")
time.sleep(5)
with canvas(device) as draw:
h,t = Adafruit_DHT.read_retry(dht,pin)
draw.text((10,0), "Thitapa Smart Farm", fill="white")
print("Thitapa Smart Farm")
draw.line((0,20,128,20), fill="white")
print("----------------------------------")
draw.text((10,25), "Temperature =%d 'c"%t, fill="white")
print("Temperature = %d" %t)
draw.text((10,45), "Humudity =%d RH."%h, fill="white")
print("Humidity = %d" %h)
#-----------------ค่าความชื้นและอุณหภูมิแสดงที่จอOLED---------------
now = datetime.now()
file.write(str(now)+","+str(t)+","+str(h)+"\n")
file.flush()
#--------------เก็บค่าที่ได้จากการแสดงผลบนหน้าจอ------------------
if (t < 30 and h < 60 ):
msg = ("Farm_A and Farm_B"+"\n"+"Temperature"+str(t)+", Humidity"+str(h))
r = requests.post(url, headers=headers, data = {'message' : msg})
print(r.text)
control_led1(M,OFF,F1,OFF,V1,ON)
print("LED1_RED = OFF, LED2_YELLOW = OFF, LED3_GREEN = ON")
control_led2(L,OFF,F2,OFF,V2,ON)
print("LED4_RED = OFF, LED5_YELLOW = OFF, LED6_GREEN = ON")
if (t < 30 and h >= 60 ):
msg = ("Farm_A and Farm_B"+"\n"+"Temperature"+str(t)+", Humidity"+str(h))
r = requests.post(url, headers=headers, data = {'message' : msg})
print(r.text)
control_led1(M,OFF,F1,ON,V1,OFF)
print("LED1_RED = OFF, LED2_YELLOW = ON, LED3_GREEN = OFF")
control_led2(L,OFF,F2,ON,V2,OFF)
print("LED4_RED = OFF, LED5_YELLOW = ON, LED6_GREEN = OFF")
if (t >= 30 and h < 60 ):
msg = ("Farm_A and Farm_B"+"\n"+"Temperature"+str(t)+", Humidity"+str(h))
r = requests.post(url, headers=headers, data = {'message' : msg})
print(r.text)
control_led1(M,OFF,F1,ON,V1,ON)
print("LED1_RED = OFF, LED2_YELLOW = ON, LED3_GREEN = ON")
control_led2(L,OFF,F2,ON,V2,OFF)
print("LED4_RED = OFF, LED5_YELLOW = ON, LED6_GREEN = ON")
if (t >= 30 and h >= 60 ):
msg = ("Farm_A and Farm_B"+"\n"+"Temperature"+str(t)+", Humidity"+str(h))
r = requests.post(url, headers=headers, data = {'message' : msg})
print(r.text)
control_led1(M,OFF,F1,ON,V1,OFF)
print("LED1_RED = OFF, LED2_YELLOW = ON, LED3_GREEN = OFF")
control_led2(L,OFF,F2,ON,V2,OFF)
print("LED4_RED = OFF, LED5_YELLOW = ON, LED6_GREEN = OFF")