1. 초음파 센서 사용하기

 

blog.naver.com/roboholic84/220319850312

 

[라즈베리파이 강좌] 라즈베리파이로 초음파센서 사용하기 - python편

이번시간에는 디지털 신호를 사용하는 센서중 하나인 초음파 센서(HC-SR04)를 사용해 보도록 하겠습니...

blog.naver.com

1) 초음파 센서를 이용하여 거리 출력하기 

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
TRIG = 23
ECHO = 24
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

def getDistance():
    GPIO.output(TRIG, False)
    time.sleep(1) #1초마다 값을 냄 
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)
    
    while GPIO.input(ECHO) == 0:
        pulse_start = time.time()
    while GPIO.input(ECHO) == 1:
        pulse_end = time.time()
    
    pulse_duration = pulse_end - pulse_start
    distance= round(pulse_duration*17150,2)
    
    return distance

if __name__ == '__main__':
    try:
        while True:
            distance_value = getDistance()
            if distance_value > 2 and distance_value < 300:
                print("Distance is %.2f cm"%distance_value)
            else:
                print("Out of Range")
    except KeyboardInterrupt:
        GPIO.cleanup()

 

2) 초음파 센서를 이용하여 거리 출력하기 ( out of range: RED LED ON, range: GREEN LED ON) 

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
TRIG = 23
ECHO = 24
LED_R = 13 
LED_G = 19

GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.setup(LED_R, GPIO.OUT)
GPIO.setup(LED_G, GPIO.OUT)

def getDistance():
    GPIO.output(TRIG, False)
    time.sleep(1) #1초마다 값을 냄 
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)
    
    while GPIO.input(ECHO) == 0:
        pulse_start = time.time()
    while GPIO.input(ECHO) == 1:
        pulse_end = time.time()
    
    pulse_duration = pulse_end - pulse_start
    distance= round(pulse_duration*17150,2)
    
    return distance

if __name__ == '__main__':
    try:
        while True:
            distance_value = getDistance()
            if distance_value > 2 and distance_value < 300:
                print("Distance is %.2f cm"%distance_value)
                GPIO.output(LED_G, GPIO.HIGH)
                GPIO.output(LED_R, GPIO.LOW)
            else:
                print("Out of Range")
                GPIO.output(LED_R, GPIO.HIGH)
                GPIO.output(LED_G, GPIO.LOW)
                
    except KeyboardInterrupt:
       GPIO.output(LED_R, GPIO.LOW)
       GPIO.output(LED_G, GPIO.LOW)
       GPIO.cleanup()

 


2. 온습도 센서 사용하기 

온습도 센서 DHT - 11 (온습도센서에 따라 순서가 다름)

devicemart.blogspot.com/2019/06/dht-11.html

 

[흥프로] 라즈베리파이 실습 예제 온습도 센서 DHT - 11 사용하기

전기/전자부품, 로봇/기계부품, 코딩교육 국내 1위 쇼핑몰 디바이스마트 공식 블로그입니다.

devicemart.blogspot.com

- Adafruit_DHT 라이브러리 설치 

git clone https://github.com/adafruit/Adafruit_Python_DHT.git 

cd Adafruit_Python_DHT

sudo python setup.py install

-코드 입력 (gpio_tem.py 파일)

import time
import Adafruit_DHT
sensor = Adafruit_DHT.DHT11
pin = 4
try:
    while True :
        h, t = Adafruit_DHT.read_retry(sensor, pin) # h,t-> 습도, 온도/ 순서 바뀌면 값도 바뀜
        if h is not None and t is not None :
            print("Temperature = {0:0.1f}*C Humidity = {1:0.1f}%".format(t, h))
        else :
            print('Read error')
        time.sleep(1)
except KeyboardInterrupt:
    print("Terminated by Keyboard")
 
finally:
    print("End of Program")

-실행 결과 

 

여기까지 하면 python 창에서 실행이 안 됨. 

그래서 

 

www.sharedit.co.kr/posts/8407

 

라즈베리파이4로 온습도 모니터링 해보자

전산실 온습도 모니터링을 라즈베리파이4로 구축한 사용기 올려봅니다.1.목적 : 전산실의 온습도를 웹사이트(내부 경영정보시스템)에서 확인이 필요함. 정밀도는 그닥 필요없음.2....

www.sharedit.co.kr

- 추가로 설치하였음. 

sudo pip3 install Adafruit_DHT

 

 

- sudo pip3 install Adafruit_DHT 설치해줘서 밑에 Adafruit_Python_DHT 폴더 삭제해도 됨 

 


 

+ Recent posts