BASIC4MCU | 질문게시판 | 로드셀, 온습도센서 코드 합치기
페이지 정보
작성자 생물공학도 작성일2023-08-11 12:17 조회5,150회 댓글2건본문
안녕하세요.
여러 분들의 도움으로 열심히 해나가고있지만 너무 다급하여 이렇게 다시 글을 쓰게 되었습니다.
지금 상황은 온습도센서4개와 로드셀 무게 센서 4개를 하나의 아두이노에 연결하여 온습도1, 무게1, 온습도2, 무게2, 온습도3, 무게3, 온습도4, 무게4 이런식으로 데이터를 받아드리려고합니다.
오늘 오후 6시까지 회로와 정리를 마쳐야하는데 도무지 답이 보이지 않아 이렇게 글을 다시쓰게 되었습니다.
회로도 또한 지금 제가 하고있는것이 맞는지 모르겠습니다..ㅠㅠ
어린애의 투정같이 보이시겠지만.. 정말 절실합니다. 도와주시면 감사하겠습니다.
온습도 센서 코드와 로드셀 센서 코드를 밑에 올려두겠습니다.
온습도 센서 코드
#include <DHT.h>#define dhtpin A1#define dhttype DHT11DHT dht(dhtpin, dhttype);void setup() {Serial.begin(9600);dht.begin();}void loop() {int h = dht.readHumidity();int t = dht.readTemperature();Serial.print("humidity:");Serial.print(h);Serial.print(",");Serial.print("temperature:");Serial.println(t);Serial.print("\n");delay(1000);}로드셀 센서 코드
#include "HX711.h" //HX711로드셀 엠프 관련함수 호출#define calibration_factor -7050.0 // 로드셀 스케일 값 선언#define DOUT 3 //엠프 데이터 아웃 핀 넘버 선언#define CLK 2 //엠프 클락 핀 넘버HX711 scale(DOUT, CLK); //엠프 핀 선언void setup() {Serial.begin(9600); // 시리얼 통신 개방Serial.println("HX711 scale TEST");scale.set_scale(calibration_factor); //스케일 지정scale.tare(); //스케일 설정Serial.println("Readings:");}void loop() {Serial.print("Reading: ");Serial.print(scale.get_units(), 1); //무제 출력Serial.print(" lbs"); //단위Serial.println();}
댓글 2
조회수 5,150master님의 댓글
master 작성일
로드셀4개는 제가 코드를 적어드렸는데요
온습도 센서 4개 예제를 찾아보라고 적었었죠
웹검색으로 찾아보셨나요?
초보자는 웹검색에 없으면 포기하셔야 합니다.
이런 기초자료 조사는 프로젝트 초기에 하지 않나요?
전에 찾아 놓은 자료가 있으면 링크를 적어보세요
알토이드님의 댓글
알토이드 작성일
warning 나는 부분 수정했습니다.
없는 센서들이라 컴파일만 확인 했습니다.
3,5,7,9 : dht
2 : hx711 공통 clock핀
4,6,8,10 : hx711
#include <dht.h>
#include <HX711.h>
#define calibration_factor -7050.0 // 로드셀 스케일 값 선언
//엠프 클락 핀 넘버
#define CLK 2
struct _SensorPair
{
dht DHT;
byte dhtPin;
HX711 scale;
}sensorPair[] = {
{ dht(), 3, HX711( 4, CLK ) },
{ dht(), 5, HX711( 6, CLK ) },
{ dht(), 7, HX711( 8, CLK ) },
{ dht(), 9, HX711( 10, CLK ) },
};
void setup()
{
Serial.begin(9600);
for( auto pair : sensorPair ) {
pair.scale.set_scale(calibration_factor); //스케일 지정
pair.scale.tare(); //스케일 설정
}
}
float hum; //Stores humidity value
float temp; //Stores temperature value
void loop()
{
byte i = 1;
for( auto pair : sensorPair )
{
dht * DHT = &pair.DHT;
byte dhtPin = pair.dhtPin;
HX711 * scale = &pair.scale;
DHT->read11(dhtPin);
Serial.print("Sensor pair ");
Serial.println( i++ );
Serial.print("T=");
Serial.print(DHT->temperature);
Serial.println(" °C/F");
Serial.print("H=");
Serial.print(DHT->humidity);
Serial.println(" %");
delay(2000); //Delay 2 sec.
Serial.print("W=");
Serial.print(scale->get_units(), 1); //무제 출력
Serial.println(" lbs"); //단위
delay(2000); //Delay 2 sec.
}
//Delay 56 sec + 59 min.
delay( 56000 ); //Delay 56 sec.
for( byte minutes = 0; minutes < 59; minutes++ ) delay(60000); //Delay 1 min.
}