Posts

Showing posts with the label MQTT

ตั้งเวลาเปิดพัดลมให้แมวด้วย 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 คือ DHT 11 , 4 คือ GPIO 4 ) #!/bin/bash result=`python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py "11" "4"` if [ $result == "1" ]; then     echo "hot"   ...

How to schedule Power On/Off Raspberry Pi

Image
วิธีตั้งเวลา Power On/Off Raspberry Pi    เรื่อง Shutdown หรือ Wakeup Raspberry Pi หลายคนคงค้นเจอเยอะแล้ว แต่นี่น่าจะเป็นการ Power On และ Power Off ที่ค่อนข้างตรงความหมายจริง ๆ คือ จ่ายและหยุดจ่ายไฟ วงจรการทำงาน   ณ จุด ๆ นี้ ขอบอกเลยว่า เราเน้นที่การตั้งเวลา Power On และ Power Off ไม่ได้คำนึงในแง่ของการประหยัดไฟ ดังนั้นเราจะใช้อุปกรณ์มาควบคุมการจ่ายไฟเพิ่มนั่นก็คือ Sonoff นั่นเอง ตามรูป หลักการทำงาน Shutdown : 1.ตั้ง crontab ที่ Raspberry Pi ให้ shutdown ตามเวลาที่ต้อง sudo crontab -e 0 18 * * 1,2,3,4,5,6 /sbin/shutdown -h now Power Off/On  : 2.Setup MQTT Broker ตามตัวอย่าง  http://www.komkid.net/2017/10/mqtt.html 3.โปรแกรม Sonoff ให้เป็น MQTT Client ซึ่งมีหลายวิธี แต่ทำตามตัวอย่างนี้ ก็สะดวกดี  https://github.com/arendst/Sonoff-Tasmota  โดย setup ให้ subscribe ไปที่ topic ชื่อ raspberrypi 4.ตั้ง crontab ที่ broker หรือที่ MQTT Client ก็ได้ให้ publish ไปที่ topic ที่ว่า เช่น 3 18 * * * mosquitto_pub -h 127.0.0.1 -t "cmnd/ raspberr...

ควบคุมอุปกรณ์ในบ้านด้วย home-assistant.io

1.ติดตั้ง (ที่มา :  https://home-assistant.io/docs/installation/raspberry-pi/ ) sudo apt-get install python3 python3-venv python3-pip sudo useradd -rm homeassistant $ cd /srv $ sudo mkdir homeassistant $ sudo chown homeassistant:homeassistant homeassistant $ sudo su -s /bin/bash homeassistant $ cd /srv/homeassistant $ python3 -m venv . $ source bin/activate ( homeassistant ) homeassistant@raspberrypi:/srv/homeassistant $ pip3 install homeassistant ( homeassistant ) $ hass 2.เข้าใช้งานที่ http://ipaddress:8123 3.ตั้งค่าให้ run เป็น service $ sudo nano /etc/systemd/system/ home-assistant@ homeassistant.service [Unit] Description=Home Assistant After=network.target [Service] Type=simple User=%i ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant" [Install] WantedBy=multi-user.target $ sudo systemctl enable home-assistant@homeassistant $ sudo systemctl start home-assistant@homeassistant sudo journalctl -f -u home-assistant@homeassistant...

เริ่มต้นกับ MQTT

Image
MQTT เป็นชื่อ Protocol หนึ่งไว้สำหรับรับ-ส่งข้อมูลอย่างง่าย เป็นที่นิยมใช้ในอุปกรณ์ IOT : Internet Of Thing (รายละเอียด : https://en.wikipedia.org/wiki/MQTT ) หลักการทำงานพอสังเขป : 1.สื่อสารกันโดยประกาศว่าจะส่งข้อความ (Publish) และรอรับข้อความ (Subscribe) 2.มี Broker เป็นตัวกลางในการสื่อสาร สองรูปแทนสองหมื่นตัวอักษร (เครดิตรูปและคำอธิบายจาก https://github.com/arendst/Sonoff-Tasmota/wiki/MQTT-Overview ) 1.ติดตั้ง Broker sudo apt-get install mosquitto 2.ติดตั้ง client sudo apt-get install mosquitto-clients 3.เริ่มใช้งาน 3.1 ให้ Client ตัวหนึ่ง สมัครรับข้อความทุกอย่างจาก Broker (สมัครรับหัวข้อ (topic) ไหน ก็จะได้รับเฉพาะ topic นั้น แต่ตัวอย่างนี้ใช้ # เพื่อขอดูทุก topic) mosquitto_sub -h 192.168.xx.xx -t "#" 3.2 ให้ client อีกตัว ประกาศข้อความ ในหัวข้อเรื่อง (topic) "obtrusive" mosquitto_pub -h 192.168.xx.xx -t "obtrusive" -m "Not yours" 3.3 Client ที่สมัครรับ topic นั้นไว้ก็จะได้รับข้อความ ตามตัวอย่าง 4.แนวทางการใช้งาน...