웹기반 임베디드 시스템 7‐8주차 내용 정리 - Jecroia/Class_Embedded_System GitHub Wiki
웹기반 임베디드 시스템 7-8주차 내용 정리
목차
DHT11 온습도 센서와 실습
DHT11 센서란?
- 정격 전압 : +5 V (3.5V~5.5VDC)
- 측정 온도 범위 : 0-50 °C ± 2 °C
- 측정 습도 범위 : 20-90% RH ± 5%
DHT11 센서 실습 진행
-
사전 환경 구성
-
운영체제 업데이트 환경 구성 전 라즈베리 파이의 운영체제를 최신 상태로 업그레이드 해줍니다.
sudo apt-get update sudo apt-get upgrade
-
Python 버전 확인
python -V
-
DHT11 실습 파이썬 코드 라이브러리 설치
-
Adafruit Python DHT 라이브러리 설치
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
-
라이브러리 폴더 이동, 설치 스크립스 실행
cd Adafruit_Python_DHT sudo python setup.py install
-
libgpiod 설치
cd ~ sudo apt-get install –y libgpiod-dev
-
라이브러리 설치
sudo pip3 isntall adafruit-circuitpython-dht
error: externally-managed-environment 오류가 생긴다. 이를 해결하기 위해서 가상환경을 활용하여 라이브러리를 다운로드하였다.
python3 -m venv ~/venv source ~/venv/bin/activate pip3 isntall adafruit-circuitpython-dht
sudo rm /usr/lib/python3.11/EXTERNALLY-MANAGED
- 코드를 사용해서 문제를 해결하는 방법도 존재한다.
무사히 install가 진행된다.
-
-
-
하드웨어 연결
- 실습 진행
Node-RED + DHT11 센서 실습
DHT11 센서 실습 진행
- Dashboard 노드 다운로드
- DHT11 Node 구성
- msg.humidity function 노드
msg.payload = msg.humidity;
return msg;
- 실행 결과
Node-RED + DHT11 센서 + DB 실습
DHT11 센서 실습 진행
-
데이터베이스 환경 구축
- MariaDB서버 설치
sudo apt-get install mariadb-server
2.서버 서비스 활성화 및 확인
sudo service mysql start sudo service mysql status
- MariaDB서버 설치
-
DB 구축 및 유저 생성
- root계정으로 로그인
sudo mysql -u root -p
- DB 생성
create database raspi_dht11 character set utf8 collate uft8_general_ci;
- DB 접속
use raspi_dht11
- 테이블 생성
create table collect_data temp_c float, temp_f float, humidity float, collect_time datetime not null default current_timestamp);
- 테이블 상세 정보가 잘 만들어지기 위해 확인하는 코드
desc (테이블이름)
- 테이블생성 확인
show tables;
- 유저 생성 및 권한 부여
CREATE USER 'user'@'%' IDENTIFIED BY 'id'; GRANT ALL PRIVILEGES ON raspi_dht11.* TO 'user'@'%'; FLUSH PRIVILEGES;
-
Node-RED + Mysql + MariaDB
- mysql 노드 다운로드
- mysql 노드 추가 및 DB연결
- 노드 구성
- 데이터 처리 함수
msg.topic = "INSERT INTO collect_data (temp_c, temp_f, humidity) VALUES (?, ?, ?)"; msg.payload = [msg.payload.temp, msg.payload.humi, msg.payload.ftemp]; return msg;
- mysql 노드 설정
-
구현 결과
dht11센서, 플로우 정상 작동 및 mariaDB 연결 상태 양호
그러나 데이터 삽입이 되지 않는 에러 발생. 추후 해결 필요.