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

[week10] USB WebCam to Raspberry Pi , Image storage on dropbox by button

Contact : kantasak.singyabut@gmail.com
อุปกรณ์

  • Raspberry Pi
  • Usb Webcam

ขั้นตอนการทำ
1. USB WebCam to Raspberry Pi
 เตรียม Pi ลง
 sudo apt-get install
 python-opencv

code webcam

2.Image storage on dropbox by button

ตั้งค่า dropbox
code run

ทั้งสอง ต้องอยู่ folder เดียวกัน

เมื่อสั่งรัน จะมีหน้า ให้ใส่ API key , Secretkey

สร้าง key dropbox < คลิก


เลือกตามภาพด้านบน

แล้วกด create app
จะได้ key มา แล้วเอาไปกรอก 
-เมื่อโปรแกรมถามหา เมื่อกรอก key เสร็จแล้ว

-ให้ กด a หมายถึง เข้าถึงแบบ app folder ถ้า กด f จะไม่สามารถอัพโหลดรูปได้

-และ กด y

จะได้ link มาเพื่อยืนยัน ให้เข้า link นั้นไป เพื่ออนุญาติให้อัพโหลดได้
เสร็จ



สร้างเสร็จจะมีโฟลเดอร์ แอพ ขึ้นมา ในนั้นจะมีโฟลเดอร์ชื่อแอพที่สร้าง เข้าไปข้างในให้สร้างโฟลเดอร์ image เพื่อเอาไว้สำหรับเก็บรูปภาพที่อัพโหลด

[week10] Send TempDS18B20 to Google Docs Spreadsheet

Contact : kantasak.singyabut@gmail.com
ขั้นตอนการทำ
  เตรียม Pi ลง

  sudo apt-get update
  sudo apt-get install python-pip
  sudo apt-get install git
  sudo pip install gspread oauth2client PyOpenSSL

  เข้าไปสร้าง OAuth2
  https://console.developers.google.com

    ขั้นตอน
     เลือก credentials
     เลือก  new credentials
     เลือก Service account
     เลือก new service account
     เลือก Json
     กด create จะได้ไฟล์ Json มา ต้องนำไปไว้ในโฟลเดอร์ เดียวกัน กับ code ที่ต้อง Run

     code ที่ต้องรัน




Temp ที่วงกลมไว้ เป็นชื่อ ชีต ที่ตั้ง






Temp-b21... เป็นชื่อไฟล์ json

   ชีตที่สร้าง ชื่อ Temp และ ผลการทำงาน
   แชร์ ชีตที่สร้างด้วย 
   คนที่จะแชร์ ไปให้ จะต้องสามารถ แก้ไขได้ 
   เปิดไฟล์ json แล้วเอา email จาก client email ไปใส่ที่ช่อง บุคคลที่ต้องการแชร์ไปให้

[week9] Raspi & Thingspeak

Contact : kantasak.singyabut@gmail.com
1.Send Data to ThingSpeak

สมัคร
https://thingspeak.com

เตรียม Pi ลง
sudo pip install ds18b20
sudo modprobe w1-gpio
sudo modprobe w1-therm

เข้าไปที่ sudo nano /boot/config.txt
พิมพ์ เพิ่ม dtoverlay=w1-gpio

แล้วเข้าไปที่ thingspeak เพื่อสร้าง channel
ต่อไปไปที่ Private View จะมี Field ขึ้นมา 1 ช่อง เพื่อแสดงข้อมูล ที่ได้รับ ในรูปแบบกราฟ ในโค้ด กำหนด เป็น field 1


ก่อน run เช็คดูว่า sensor เข้าไปรึยังโดย
cd  /sys/bus/w1/devices/   จะต้องเห็น ไฟล์ 28-xxxxxx

ถ้ามีแล้วก็ run ได้เลย

2.Control from ThingSpeak
 coming soon


วันพุธที่ 1 มิถุนายน พ.ศ. 2559

[week8] Raspi ฺBasic

Contact : kantasak.singyabut@gmail.com
1. blink
code
sudo python ชื่อไฟล์

Output pin 11 13 15
ไฟกะพริบ

2.control by button
code
sudo python ชื่อไฟล์

Output pin 11 13 15
Input   pin 16 18
ไฟวิ่ง ซ้ายไปขวา   ขวาไปซ้าย

3.Temp sensor ds18b20
code

sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices
ใน devices ต้องมี 28-XXX
ถ้าต่อถูก

ภาพจาก https://learn.adafruit.com/adafruits-raspberry-pi-lesson-11-ds18b20-temperature-sensing/hardware

sudo nano /boot/config.txt

พิมพ์เพิ่ม
dtoverlay=w1-gpio

Runcode
sudo python temp.py


[week8] Raspi 1 B+ start

Contact : kantasak.singyabut@gmail.com
https://www.raspberrypi.org/downloads/
โหลด RASPBIAN
เลือกตัวเต็ม

ลง เพื่อ remote-desktop
sudo apt-get install xrdp

สำหรับคนที่ไม่มีจอ ที่รับ HDMI
เข้าไปที่ไฟล์ config

ลบ # แถวที่มี คำว่า uncomment

ขาต่างๆ ของ  Raspi B+
ภาพจาก https://learn.adafruit.com/assets/22318

แชร์เน็ตให้ Pi

ใช้โปรแกรม IP Scan หา IP Raspi เพื่อ Remote

ลบ IP 10.0 ออกเนื่องจาก เป็น IP จริงไม่ใช่ ของ Pi แน่นอน
IP ที่ได้จากการแชร์จะเป็น 192.168.X.X
คลิกขวา แล้วเลือก RDP (remote desktop con.)