-
Notifications
You must be signed in to change notification settings - Fork 3
/
ZigBeetest.py
123 lines (112 loc) · 2.82 KB
/
ZigBeetest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# FYP2017
# Program to establish ZigBee communication between raspberry Pi and arduino
# Complete control of HVAC elements based on commands sent from the Pi (TESTING)
# Author: Kunal Jagadeesh
# License: Public Domain
import time
import serial
#import fuzzy
hour = 3600
PORT = '/dev/ttyUSB0'
BAUD_RATE = 9600
# Open serial port
ser = serial.Serial(PORT, BAUD_RATE)
def getSensorData():
if ser.isOpen():
ser.close()
ser.open()
ser.isOpen()
ser.write('s'.encode())
time.sleep(2)
response = ser.readline().strip().decode()
hum = float(response[:5])
temp = float(response[5:])
return (hum, temp)
def level_1():
h, t = getSensorData()
print('humidity is: ',h)
print('Temperature is: ',t)
print('Running in level 1..')
if (t > 35):
ser.write('c'.encode())
print('Cooler on')
if (t < 15):
ser.write('f'.encode())
print('Heater on')
if (h < 25):
ser.write('h'.encode())
print('Humidifier on')
if (h > 80):
ser.write('e'.encode())
print('Exhaust on')
time.sleep(300)
def level_2():
h, t = getSensorData()
print('humidity is: ',h)
print('Temperature is: ',t)
print('Running in level 2..')
if (t > 32):
ser.write('c'.encode())
print('Cooler on')
if (t < 18):
ser.write('f'.encode())
print('Heater on')
if (h < 30):
ser.write('h'.encode())
print('Humidifier on')
if (h > 70):
ser.write('e'.encode())
print('Exhaust on')
time.sleep(300)
def level_3():
h, t = getSensorData()
print('humidity is: ',h)
print('Temperature is: ',t)
print('Running in level 3..')
if (t > 30):
ser.write('c'.encode())
print('Cooler on')
if (t < 20):
ser.write('f'.encode())
print('Heater on')
if (h < 40):
ser.write('h'.encode())
print('Humidifier on')
if (h > 60):
ser.write('e'.encode())
print('Exhaust on')
time.sleep(300)
def level_4():
h, t = getSensorData()
print('humidity is: ',h)
print('Temperature is: ',t)
print('Running in level 4..')
if (t > 28):
ser.write('c'.encode())
print('Cooler on')
if (t < 22):
ser.write('f'.encode())
print('Heater on')
if (h < 25):
ser.write('h'.encode())
print('Humidifier on')
if (h > 50):
ser.write('e'.encode())
print('Exhaust on')
time.sleep(300)
def getLevel():
return 2 #int(fuzzy.level)
if __name__ == "__main__":
level = getLevel()
while True:
if (level == 1):
level_1()
elif (level == 2):
level_2()
elif (level == 3):
level_3()
elif (level == 4):
level_4()
else:
ser.write('x'.encode())
break