Sunday, October 29, 2017

ตั้งเวลาเปิดพัดลมให้แมวด้วย Python กับ DHT11

1.ติดตั้งสิ่งที่จำเป็น
sudo apt-get install git-core
sudo apt-get install build-essential python-dev
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python setup.py install

2.แก้ไข code ตัวอย่างสำหรับตรวจสอบอุณหภูมิ
cd Adafruit_Python_DHT/examples
nano AdafruitDHT.py
แก้ตรงส่วนเช็คอุณหภูมิด้านล่างของไฟล์ ถ้าอุณหภูมิสูงกว่า 27 องศา return ค่าเป็น 1
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
if humidity is not None and temperature is not None:
    if temperature > 27:
        print 1
    else:
        print 0 
else:
    print('Error')

3.สร้างไฟล์ dht11mqtt.h เพื่อเรียกใช้ python แล้วสั่งไปที่ MQTT Broker อีกที (11 คือ DHT11, 4 คือ GPIO4)
#!/bin/bash
result=`python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py "11" "4"`
if [ $result == "1" ]; then
    echo "hot"
    mosquitto_pub -h 192.168.x.x -t "cmnd/fan1/power" -m 1
    mosquitto_pub -h 192.168.x.x -t "cmnd/fan2/power" -m 1
else
    echo "cool"
fi

4.ตั้ง crontab ให้เรียก script มาเช็คอุณหภูมิทุก 30 นาที
*/30 10-18 * * 1-5 /home/pi/Adafruit_Python_DHT/dht11mqtt.sh

No comments: