티스토리 뷰
Intro
OS : MacOS, Monterey, v12.6
HW : Arduino UNO R3 board, DHT11 Sensor, LM35 Sensor
SW : Visual Studio Code, so-called vscode
python : 3.10.7
- Arduino 연결 부터 확인하려면 다음 포스트 참고
Arduino UNO DHT11 sensor 연결 및 모니터링
- Arduino Sensor DAQ 확인하려면 다음 포스트 참고
2종 multi sensor DAQ
DHT11 : Digital Output Sensor
LM35 : Analog Output Sensor
Requirements
vscode
vscode extension : Arduino
Arduino UNO R3 : DHT11/LM35 Sensor 연결도
1. Arduino: Initialize
2. Arduino: Library Manager
# 참고 : (macOS)[python] pyserial을 이용한 Arduino UNO R3 제어 with vscode - 2/2
3. Arduino Coding & Upload
ard_dht11_lm35.ino
// DHT11 Sensor
#include <DHT_U.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
// LM35 Sensor
int value;
int Vin = 5;
// arduino board
int baudrate = 9600;
void setup() {
Serial.begin(baudrate);
dht.begin();
}
void loop(){
// DHT
float dht_h = dht.readHumidity();
float dht_t = dht.readTemperature();
if (isnan(dht_h) || isnan(dht_t)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(dht_h);
// Serial.println(dht_t);
Serial.print(dht_t);
// LM35
value = analogRead(0);
float lm_t = ( value/1024.0)*Vin*100;
Serial.println(lm_t);
delay(2000);
}
Arduino: Verify
Arduino: Upload
4. python Coding & DAQ
py_dht11_lm35.py
import os
import serial
from time import localtime, strftime
serial_port = '/dev/tty.usbmodem141101'
serial_baudrate = 9600
ard = serial.Serial(serial_port,serial_baudrate)
fname = 'data_save.csv'
if os.path.exists(fname):
os.remove(fname)
cnt = 1
while True:
td = strftime('%Y-%m-%d', localtime())
tt = strftime('%H:%M:%S', localtime())
# print(tm)
datas_raw = ard.readline()
print(datas_raw)
## ard.decode() : readline을 decoding
datas = datas_raw.decode()[:len(datas_raw)-2]
print('--- Arduino Output ---\n{}\n'.format(datas_raw))
print('--- python Terminal Output ---\n{}\n'.format(datas))
print('Count : {}'.format(cnt))
print('DHT_Humidity[%] : {}\nDHT_Temperature[oC] : {}\n'.format(datas[:5],datas[5:10]))
print('LM_Temperature[oC] : {}\n'.format(datas[10:15]))
with open(fname,'a') as cf:
cf.write("{},{},{},{},{}\n".format(td,tt,datas[0:5],datas[5:10],datas[10:15]))
cf.close()
cnt = cnt + 1
data 저장 결과
data_save.csv
2022-11-11 | 17:33:25 | 34 | 26.5 | 26.86 |
2022-11-11 | 17:33:26 | 34 | 26.5 | 24.41 |
2022-11-11 | 17:33:28 | 34 | 26.5 | 24.41 |
# 참고 : python Terminal 실행창
반응형
'Arduino' 카테고리의 다른 글
(macOS)[python] Arduino DAQ 실행파일 만들기 with 가상환경(venv), pyinstaller (0) | 2022.11.17 |
---|---|
(macOS)[python] Arduino DHT11/LM35 DAQ Monitoring with tkinter (0) | 2022.11.14 |
(macOS)[python] Arduino UNO DHT11 sensor DAQ (0) | 2022.11.10 |
(macOS)[python] Arduino LM35 sensor monitoring (0) | 2022.10.28 |
(macOS)[python] Arduino UNO DHT11 sensor monitoring (0) | 2022.10.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- sublime text
- COVID-19
- SSH
- Django
- Templates
- DAQ
- Model
- ERP
- server
- DS18B20
- 자가격리
- CSV
- arduino
- Pandas
- Regression
- Python
- git
- raspberrypi
- 확진
- vscode
- 코로나19
- Raspberry Pi
- 코로나
- r
- analysis
- pyserial
- 라즈베리파이
- MacOS
- template
- github
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함