RPi Check 01.
วัตถุประสงค์
1. ทำให้ RPI สามารถ Remote ได้ ด้วย SSH,XRDP
2. สั่ง LED เปิดปิด สามดวง วิ่งจาก ซ้ายไปขวา ด้วย RPI
3. ควบคุบการวิ่งของ LED ด้วย Button Switch สองตัว (ซ้ายไปขวา – ขวาไปซ้าย)
4. ทำการวัดอุณหภูมิ ด้วย DS18B20 โดยใช้ RPI
อุปกรณ์
1. Raspberry Pi Model B+
2. LED
3. Button Switch
4. DS18B20 Sensor
5. Resistor 10 ohm
6. Wire Jumper
7. wired Lan (Cross)
ข้อ 1. ทำการติดตั้ง XRDP เพื่อทำการ Remote
ขั้นตอนการทำ
1. ทำการเสียบสาย lan เข้า RPI และ Computer จากนั้นใช้โปรแกรม Putty ทำการ ssh เข้าไปใน RPI ด้วย ip ของ RPI
2. ทำการติดตั้ง XRDP
3. หลังจากติดตั้งเสร็จเรียบร้อบให้ทำการ ลอง Remote ด้วย โปรแกรม Remote Desktop
ข้อ 2. สั่งให้ LED วิ่งจากซ้ายไปขวา
ขั้นตอนการทำ
1. สร้างไฟล์ SRC เพื่อใช้ในการ Run และเขียน Code ลงไป
Source Code.
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): GPIO.output(11,False) GPIO.output(13,True) GPIO.output(15,True) time.sleep(0.5) GPIO.output(11,True) GPIO.output(13,False) GPIO.output(15,True) time.sleep(0.5) GPIO.output(11,True) GPIO.output(13,True) GPIO.output(15,False) time.sleep(0.5)
|
2. ต่อวงจรให้เรียบร้อยตามขา GPIO ที่กำหนดไว้
3. เปิด Terminal ขึ้นมา เพื่อทำการ Run โดยใช้คำสั่ง
$ cd RaspberryPi/
$ sudo python ledblink.py
4. ผลการทดสอบ
ข้อ 3. สั่ง LED วิ่งซ้ายไปขวา – ขวาไปซ้าย ด้วย Switch
ขั้นตอนการทำ
1. ทำการเขียนโค๊ดขึ้นเพื่อใช้สวิชท์ควบคุมการวิ่งของ LED
Soure Code.
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) GPIO.setup(16,GPIO.IN) GPIO.setup(18,GPIO.IN) x=0 while(True): if(GPIO.input(16)==False): print “16” while(True): GPIO.output(11,True) GPIO.output(13,True) GPIO.output(15,False) time.sleep(0.2) if(GPIO.input(18)==False): break GPIO.output(11,True) GPIO.output(13,False) GPIO.output(15,True) time.sleep(0.2) if(GPIO.input(18)==False): break GPIO.output(11,False) GPIO.output(13,True) GPIO.output(15,True) time.sleep(0.2) if(GPIO.input(18)==False): break elif(GPIO.input(18)==False): print “18” while(True): GPIO.output(11,False) GPIO.output(13,True) GPIO.output(15,True) time.sleep(0.2) if(GPIO.input(16)==False): break GPIO.output(11,True) GPIO.output(13,False) GPIO.output(15,True) time.sleep(0.2) if(GPIO.input(16)==False): break GPIO.output(11,True) GPIO.output(13,True) GPIO.output(15,False) time.sleep(0.2) if(GPIO.input(16)==False): break |
2. ทำการต่อสวิชท์เข้ากับขาตาม GPIO ที่กำหนดไว้
3. เปิด Terminal ขึ้นมา เพื่อทำการ Run โดยใช้คำสั่ง
$ cd RaspberryPi/
$ sudo python ledblink2.py
กด Switch 0 : Led จะวิ่งจากซ้ายไปขวา
กด Switch 1 : Led จะวิ่งจากขวาไปซ้าย
4. ผลการทดสอบ
4. วัดอุณหภูมิ ด้วย DS18B20
ขั้นตอนการทำ
1. ทำการตั้งค่าการรับค่าของเซ็นเซอร์ดังนี้ เข้าไปแก้ไข ใน ไฟล์ /boot/config.txt แล้วทำการ Un tag ที่
dtparam=i2c0=on
dtparam=spi=on
dtparam=is2=on
dtoverlay=w1-gpio
2. จากนั้นทำการ save และใช้คำสั่ง
sudo modprobe w1-gpio
sudo modprobe w1-therm
3. และเมื่อตรวจสอบแล้วว่า ได้มีการสร้างไฟล์ผลลัพท์ออกมาแล้ว ก็ให้ทำการเขียน Code เพื่อแสดงข้อมูล
Source Code
import os
import glob import time 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 while True: print”temperature = ” + str(read_temp()) time.sleep(0.3) |
4. จากนั้นทำการต่อ DS18B20 เข้ากับ ตัวต้านทาน 10k โอห์ม และ RPi เข้าด้วยกัน
5. สั่งรันด้วยคำสั่ง sudo python temptemp.py
สังเกตผลลัพธ์ที่ได้
6. วิดีโอแสดงผลการทำงาน