오늘이라도
[Raspberry Pi] 6. 피에조 스피커, 기울기 센서, 터치 센서, 초음파 거리 센서, 온습도 센서 본문
취업성공패키지 SW 개발자 교육/사물 인터넷(IoT)
[Raspberry Pi] 6. 피에조 스피커, 기울기 센서, 터치 센서, 초음파 거리 센서, 온습도 센서
upcake_ 2020. 7. 13. 09:35반응형
https://github.com/upcake/Class_Examples
교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다.
gif 파일은 클릭해서 보는 것이 정확합니다.
- 피에조 스피커, 기울기 센서, 터치 센서, 초음파 거리 센서, 온습도 센서 -
import RPi.GPIO as GPIO
import time
piezo_pin = 11
GPIO.setmode(GPIO.BOARD)
GPIO.setup(piezo_pin, GPIO.OUT, initial=GPIO.LOW)
pi = GPIO.PWM(piezo_pin, 500)
pi.start(50)
try:
while True:
#100부터 1000까지 5씩 증가
for i in range(100, 1000, 5):
pi.ChangeFrequency(i)
time.sleep(0.1)
for i in range(1000, 100, -5):
pi.ChangeFrequency(i)
time.sleep(0.1)
except KeyboardInterrupt:
GPIO.cleanup()
▲Piezo.py
import RPi.GPIO as GPIO
import time
tilt_pin = 11 #터치 센서의 경우 센서만 바꾸면 됨
GPIO.setmode(GPIO.BOARD)
GPIO.setup(tilt_pin, GPIO.IN)
try:
while True:
a = GPIO.input(tilt_pin)
print(a)
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
▲Tilt, Touch.py
import RPi.GPIO as GPIO
import time
trig = 7
echo = 11
GPIO.setmode(GPIO.BOARD)
GPIO.setup(echo, GPIO.IN)
GPIO.setup(trig, GPIO.OUT)
GPIO.output(trig, GPIO.LOW)
def distance_check():
GPIO.output(trig, GPIO.HIGH)
time.sleep(0.00001)
GPIO.output(trig, GPIO.LOW)
stop = 0
start = 0
while GPIO.input(echo) == GPIO.LOW:
start = time.time()
while GPIO.input(echo) == GPIO.HIGH:
stop = time.time()
duration = stop -start
distance = (duration * 340 * 100)/2
return distance
try:
while True:
result_distance = distance_check()
print("distance = %2fcm"%(result_distance))
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
▲Ultrasonic distance sensor.py
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT (cd Ada 치고 Tab누르면 자동 완성)
sudo python3 setup.py install
▲온습도 센서를 쓰기 위한 라이브러리 설치
import RPi.GPIO as GPIO
import time
#파이썬 3 이상 부터 다운로드 받은 라이브러리 경로를 추가해야 함
import sys
sys.path.append('/home/pi/Adafruit_Python_DHT')
import Adafruit_DHT
sensor = Adafruit_DHT.DHT11 #DHT22면 22를 불러옴
pin = 17 #반드시 핀 넘버가 아닌 GPIO넘버로 해야함 (핀번호11, GPIO17)
try:
while True:
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
if humidity is not None and temperature is not None:
print('Temp={0:0.1f}, Humidity={1:0.1f}%'.format(temperature, humidity))
else:
print('Failed to get reading. Try again!')
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
▲temperature, humidity sensor.py
반응형
'취업성공패키지 SW 개발자 교육 > 사물 인터넷(IoT)' 카테고리의 다른 글
[Raspberry Pi] 8. 파이 카메라, 웹으로 카메라 전송 (0) | 2020.07.15 |
---|---|
[Raspberry Pi] 7. 아두이노 연동하기 : 아두이노 IDE 설치, 시리얼 모니터로 조작 (PWM), Firmata 프로토콜 이용해서 파이썬으로 조작 (0) | 2020.07.14 |
[Raspberry Pi] 5. 버튼 눌러서 LED 시간 증가 (0) | 2020.07.10 |
[Raspberry Pi] 4. LED 조작 : PWM, 버튼 이용 (0) | 2020.07.09 |
[Raspberry Pi] 3. 파이썬 기초 : 내장 함수, 형변환, len, 조건문, 반복문, range(), time.sleep(), 함수 작성 / Hello World, LED 켜기, 깜빡이기 (0) | 2020.07.08 |