วันเสาร์ที่ 4 มิถุนายน พ.ศ. 2559

[week100] MiniProject Make Raspberry Pi to MQTT Broker Monitering TempDS18B20 by MQTTLens or MQTTSpy

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

  • รับส่งข้อมูลภายใน ปลอดภัย ไม่ออกข้างนอก
อุปกรณ์

  • Raspberry Pi
  • breadboard
  • sensor DS18B20
ขั้นตอนการทำ
  • 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 mkdir /etc/mosquitto
  • sudo cp mosquitto.conf  /etc/mosquitto
  • sudo adduser mosquitto
  • sudo reboot
  • ifconfig    ดู IP เครื่อง
  • mosquitto   เป็นคำสั่ง รัน broker
  • ใช้ MQTT Lens ทดสอบ เป็นapp ของ chrome
  • code ทดสอบ
                                             



Hostname คือ IP ของ Pi  
Connection name อะไรก็ได้
กดcreate connection

Topic 
Sub กับ Pub ต้องเหมือนกัน
กด Sub
พิมพ์ ข้อความใส่กล่อง Message
กด Pub
จะมีข้อความขึ้น

หรือจะใช้ โปรแกรม MQTT SPY เป็นตัวรับข้อมูล ให้ Pi เป็น Broker และ ตัวส่งข้อมูล มีกราฟให้ดูด้วย

ขั้นตอนการตั้งค่าMQTT SPY

ใส่ IP Raspberr Pi กด X ปิดหน้าต่าง


กด Open PorNB


กด New ใส่ Topic กด Subsc


ถ้าต่อได้จะมีรายการ client จากคอมพิวเตอร์ที่จะดูข้อมูล ขึ้นมาที่ Pi


วงซ้ายเป็นข้อความแสดงถึง client จาก Pi เชื่อต่อเข้ามา
วงขวาเป็นข้อความที่ส่งไปเป็นอุณหภูมิ

รับข้อมูลได้แล้ว 
วิธีดูกราฟ ตามด้านบนเลย
คลิกขวาที่แถวด้านล่างที่ต้องการดูกราฟ
แล้วเลือกตามภาพ

จะได้หน้าตาแบบนี้ออกมา



อ้างอิง

[week99] MiniProject RaspberryPi SensorTemp DS18B20 Real-TimeMonitering MQTT

Contact : kantasak.singyabut@gmail.com
ทำ ทำไม
  •      ตรวจสอบอุณหภูมิที่เราติดตั้งเซ็นเซอร์ไว้ได้ตลอดเวลา ทุกสถานที่ ที่เราอยู่ ได้ทุกเวลา
อุปกรณ์
  • Raspberry Pi
  • breadboard
  • wire
  • sensor DS18B20
ขั้นตอนการทำ
     เตรียม Raspberry pi
     sudo modprobe w1-gpio
     sudo modprobe w1_therm
     sudo apt-get install python-pip
     sudo pip install paho-mqtt==1.1
     
     sudo nano /boot/config.txt
     พิมพ์เพิ่ม
     dtoverlay=w1-gpio

     ต่อsensor แล้วพิมพ์ เพื่อเช็คว่า sensor เข้ามารึยัง
     ls  /sys/bus/w1/devices
     ls ดูว่ามี ไฟล์ 28-XXXXXX เข้ามารึยัง
     
     สมัคร relayr broker  ตัวกลาง รับ-ส่งข้อมูล
   
ไปที่ Devices > Add Devices

เลือก GrovePi Model หรืออันไหนก็ได้ที่มี UI อ่านอุณหภูมิ เช่น Whitebox


เปลี่ยนเป็นภาษา Python แล้ว ใช้ โค้ดทั้งหมด ที่วงไว้จะเป็นรหัสในการเข้าถึง devices ที่เราสร้าง

   กด Test ดูว่ามี หัวข้อ Temperature หรือไม่
   
   

     กลับไปดูโค้ดกัน วงบนคือจัดเตรียมค่าอุณหภูมิ

     วงล่างคือเลือกการส่ง  meaning หมายถึง ชื่อของ reading จากภพด้านบน ที่ relayr จะรับค่าไป        แสดง
   

    เสร็จแล้ว Run Code
                  


กด Test จะมีหน้าแบบภาพด้านบนขึ้นมา
ถ้าสำเร็จใน Log จะมีตัวหนังสือต่างๆ ขึ้นมา
กด Finish เสร็จ



จะมีเลขอุณหภูมิขึ้น หรือจะดูเป็นกราฟก็ได้นะ กดตรงวงสีน้ำเงินเลย
ดูได้เฉพาะกราฟ Live 

     

วันพฤหัสบดีที่ 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