RPi ThinkSpeak .

 

จุดมุ่งหมาย

1. สมัครและตั้งค่า Thingspeak

2. ส่งค่าเข้า Thingspeak

3. ใช้ Thingspeak ควบคุม LED 3 ดวง

 

อุปกรณ์

1. Raspberry Pi  Model B+

2. LED

3. Button Switch

4. DS18B20 Sensor

5. Resistor 10 ohm

6. Wire Jumper

7. Wire LAN (Cross)

 

     1. สมัครและตั้งค่า Thingspeak

ขั้นตอนการทำ

1.1 ทำการ เปิด URL :  https://thingspeak.com/  ด้วย Web Browser เมื่ออยู่ในหน้าดังรูปให้       ทำการ Sign in เข้าเพื่อเป็นสมาชิก

 

          1.2 จากนั้นทำการ สร้างช่อง New Channel เพื่อใช้สำหรับเก็บข้อมูล โดยการทำตามดังรูป

 

1.3 เมื่อเข้ามาถึงหน้าดังรูปให้ทำการกรอก Name ของ Channel และตั้งชื่อให้กับ Field 1

 
 
          1.4 กดเข้า Menu bar API KEYS  

 

1.5 จะปรากฏหน้านี้ขึ้น


 

      2. ส่งค่าเข้า Thingspeak

 

ขั้นตอนการทำ

2.1 ทำการต่อวงจรเข้ากับ เซนเซอร์วัดอุณหภูมิ DS18B20 เข้ากับบอร์ด RPI

2.2 ทำการเขียนโค๊ด ลงบอร์ด RPI โดยทำการ ใช้ APIKEY จากข้อ 1. ใน Channel ของคุณ

ซึ่งการติดต่อกับ Thingspeak จะใช้ API Key เป็นตัวกลางในการสื่อสาร

Source Code.

 

 

import requests

import os import glob import time
api_key=’YourAPI’ os.system(‘modprobe w1-gpio’) os.system(‘modprobe w1-therm’)
base_dir = ‘/sys/bus/w1/devices/’ device_folder = glob.glob(base_dir + ’28*’)[0] device_file = device_folder + ‘/w1_slave’
def read_temp_raw():           f = open(device_file, ‘r’)           lines = f.readlines()           f.close()           return lines
def read_temp():           lines = read_temp_raw()           while lines[0].strip()[-3:] != ‘YES’:                time.sleep(0.2)                lines = read_temp_raw()           equals_pos = lines[1].find(‘t=’)           if equals_pos != -1:                temp_string = lines[1] [equals_pos+2:]                temp_c = float(temp_string) / 1000.0                temp_f = temp_c * 9.0 / 5.0 + 32.0                #return temp_c, temp_f                return temp_c
while True:           temp = str(read_temp())           print “temperature = ” + temp           payload = {‘api_key’: api_key, ‘field1’: temp}           r = requests.post(‘https://api.thingspeak.com/update’,params=payload)           time.sleep(0.2)

 

2.3 เข้าดูผลลัพท์ ข้อมมูลที่ส่งเข้าไปที่ Field1 ที่ตั้งค่าไว้

 


 

     3. ใช้ Thingspeak ควบคุม LED 3 ดวง

 

ขั้นตอนการทำ 3.1 ทำการต่อ LED เข้ากับ บอร์ด RPi

 

3.2 ทำการเขียนโค๊ดเพื่อ ให้ RPi สามารถอ่านค่าสุดท้ายของการส่งข้อมูลไป ที่ Field นั้นๆ และการควบคุมนี้จะขึ้นอยู่กับเงื่อนไขที่เราสร้างเพื่อตรวจสอบข้อมูล

 

Source Code.

 

import requests import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(11,GPIO.OUT) GPIO.setup(13,GPIO.OUT) GPIO.setup(15,GPIO.OUT) while(True):      r = requests.get(‘https://api.thingspeak.com/channels/’IDYourchanel’/fields/2/last’)      print r.text      if(r.text == ‘000’):           GPIO.output(11,True)           GPIO.output(13,True)           GPIO.output(15,True)           print “LED all Turnoff”      if(r.text == ‘100’):           GPIO.output(11,False)           GPIO.output(13,True)           GPIO.output(15,True)           print “LED1 Turnon”      if(r.text == ‘010’):           GPIO.output(11,True)           GPIO.output(13,False)           GPIO.output(15,True)           print “LED2 Turnon”      if(r.text == ‘001’):           GPIO.output(11,True)           GPIO.output(13,True)           GPIO.output(15,False)           print “LED3 Turnon”      if(r.text == ‘110’):           GPIO.output(11,False)           GPIO.output(13,False)           GPIO.output(15,True)           print “LED110 Turnon”      if(r.text == ‘101’):           GPIO.output(11,False)           GPIO.output(13,True)           GPIO.output(15,False)           print “LED101 Turnon”      if(r.text == ‘011’):           GPIO.output(11,True)           GPIO.output(13,False)           GPIO.output(15,False)           print “LED011 Turnon”      if(r.text == ‘111’):           GPIO.output(11,False)           GPIO.output(13,False)           GPIO.output(15,False)      print “LED111 Turnon”

3.3 ทำการทดสอบลองส่งค่า เข้า API เพื่อให้ Feild มีการ Update ด้วย field2=0 หรือ 1 ดู ภาพข้างล่างนี้เป็นเพียงตัวอย่างของการอัพเดท

3.4 ทำการตรวจสอบค่าที่ส่งเข้าไปใน Field2

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s