RPi 1 of 5 Boot and GPIO

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. วิดีโอแสดงผลการทำงาน

Leave a comment