วันพฤหัสบดีที่ 2 มิถุนายน พ.ศ. 2559

[week11] RaspberryPi & MQTT

Contact : kantasak.singyabut@gmail.com
ทำ ทำไม

  • ทดลอง รับส่งข้อมูล ผ่าน protocol MQTT
อุปกรณ์
  • Raspberry Pi

ขั้นตอนการทำ
สมัคร
http://gadgetkeeper.com/

login
แล้วกด + ที่แถบสีเหลือง





กด save 
จะมี ชื่อที่เราเพิ่งสร้างเพิ่มขึ้นมา กดที่ชื่อเข้าไป
แล้วเลือก Properties ที่ด้านซ้าย
กด New แล้วจะมีหน้าแบบภาพข้างล่างขึ้นมา
แล้ว data type เป็น float 
แล้ว save
คลิกปุ่ม Edit value
กด Get จะเป็นการรับค่า จากที่เราส่งมาจาก Rpi

1.Temperature monitoring with Raspberry Pi and DS1820 Temperature sensor

git clone https://github.com/wuttinunt/gadgetkeeper.git

sudo chmod 777 -R foldername
cd gadgetkeeper
เข้าไปที่ไฟล์ set_value.sh
แล้วเปลี่ยน
API_KEY=
THING_ID=
PROPERTY_ID=
เป็นของตัวเอง

แล้ว sudo ./set_value.sh
ส่งข้อมูล Temp หากทำครั้งแรกให้ลองดู week
แล้วไปกด Get ค่าที่หน้าเว็ป

2.Temperature monitoring with Raspberry Pi and Event/Trigger

เพิ่มเติมจาก Things เดิม
เข้าไปที่ Event ที่ด้านซ้าย แล้วกด  New
ตั้งค่าตามภาพด้านล่าง











แล้วไปที่ Triggers ตั้งค่าตามภาพ










ต่อไป คลิกที่ Edit Script











แล้วคลิก Enable บน Edit Script

ต่อไปรัน โค้ด sudo ./event_trigger.sh


3.Real-time temperature monitoring with Raspberry Pi and MQTT protocol

เพิ่ม connection ของ things จากข้อแรก












เปลี่ยน Type เป็น remote










  • sudo mkdir MQTT
  • cd MQTT/
  • sudo apt-get install libssl-dev
  • sudo apt-get install libc-ares-dev
  • sudo apt-get install uuid-dev
  • sudo apt-get install daemon
  • sudo apt-get install cmake
  • wget http://mosquitto.org/files/source/mosquitto-1.4.8.tar.gz
  • tar zxvf mosquitto-1.4.8.tar.gz
  • cd mosquitto-1.4.8
  • make
  • sudo make install
  • sudo ldconfig
  • sudo make clean
  • sudo iptables -A INPUT -p tcp -m tcp --dport 1883 -j ACCEPT
  • cd
  • cd gadgetkeeper
  • code Run

5.Home automation and security with Raspberry Pi
  
  สร้าง Things ใหม่ชื่อ homeautomation หรืออย่างอื่นก็ได้
  ต่อไป ไปสร้าง Events
  
   ต่อไปสร้าง Triggers               
 ต่อไป Edit Script


และ
sudo nano api_calls.sh
 แล้ววางโค้ดที่อยู่ด้านล่าง แล้ว chmod 777 แล้วรัน python 
สองไฟล์นี้ต้องอยู่ path เดียวกัน
#!/bin/bash
if [ "$1" != "" ] && [ "$2" != "" ] && [ "$3" != "" ] && [ "$4" != "" ] && [ "$5" != "" ]; then
        API_KEY="$1"
        MSG="$2"
        URL="$3"
        THING_ID="$4"
        EVENT_ID="$5"
else
        echo "Missing Arguments"
        exit   
fi
CUR_DATE=$(date +%FT%T.%NZ)
TMP_FILE="/tmp/tmp.txt"
curl -i -X POST -H "X-ApiKey: $API_KEY" -H "Content-Type: text/json; charset=UTF-8" -d \
'[{"value":'$MSG',"at":"'$CUR_DATE'"}]' $URL"/v1/things/$THING_ID/events/$EVENT_ID/datapoints.json" > "$TMP_FILE" 2> /dev/null
if [ -f "$TMP_FILE" ]; then
        RESPONSE=`cat "$TMP_FILE" | head -1`
        IS_OK=`echo "$RESPONSE" | grep "HTTP/1.1 204"`
        #echo -n "Value updated "
        if [ "$IS_OK" != "" ]; then
                echo "OK"
        else
                echo "FAIL"
                echo "$RESPONSE"
        fi
else
        echo "Error"
fi

ไม่มีความคิดเห็น:

แสดงความคิดเห็น