식물재배기용 온도모니터링 프로젝트
작성자 :
블루베어
프로젝트 구성
온도를 측정하기 위해서 측정된 값을 디스플레이 하기 위해서 WIFI 모듈이 포함된 모듈을 사용해서
무선으로 현재 값과 제어를 하기 위한 솔루션을 구성하게 된다.
사용된 보드 : Witty Cloud Development 보드 (WIFI 기능이 적용된 저가형 일체형 보드)
소프트웨어 환경: 아두이노
사용센서: DHT11(저가형 온습도 측정모듈)
추가설명- 기본적으로 보드에서 제공하는 광량과 , 버튼 그리고 RGB LED등의 기능을 그대로 두고
DHT11 온습도 센서를 추가해서 온도를 주로 사용하는 프로젝트에 사용하게 된다.
확장- 온도와 습도를 측정함으로 인해서 IOT 장비를 제어하는데 필요한 정보를 얻는데 기본으로 주요
타겟을 식물성장 제어기로 정해서 최종 진행한다.
회로도
펌웨어
헤더파일을 선언한다.
#include #include #include #include #include #include #include #include #include #include ? ? #include "DHT.h"
핀설정 선언
#define DHTPIN 4 #define DHTTYPE DHT11 ? DHT dht(DHTPIN, DHTTYPE); ESP8266WiFiMulti WiFiMulti; ? // Witty Cloud Board specifc pins const int LDR = A0; const int BUTTON = 4; const int RED = 15; const int GREEN = 12; const int BLUE = 13; ? const char* ssid = "xxxxxxx"; const char* password = "xxxxxxxx"; const char* host = "Witty";
웹서버 선언
ESP8266WebServer server(80); WebSocketsServer webSocket = WebSocketsServer(81);
웹소켓 이벤트 처리(온도에 대한 이벤트 처리 루틴)
void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght) { ? ? ... ? case 't': case 'T': tTemp = dht.readTemperature(); tTemperature = String(tTemp); //hHumidity = dht.readHumidity(); ? // Check if any reads failed and exit early (to try again). if (isnan(tTemp)) { Serial.println("Failed to read from DHT sensor!"); return; } //Serial.print("Temperature: "); //Serial.print(tTemperature); //Serial.print(" *C\t"); ? delay(5); webSocket.sendTXT(0,tTemperature); break;
셋업루틴
void setup() { Serial.begin(115200); Serial.print("\n"); Serial.setDebugOutput(true); ? for(uint8_t t = 4; t > 0; t--) { Serial.printf("[SETUP] BOOT WAIT %d...\n", t); Serial.flush(); delay(1000); } ? dht.begin(); // Initialize LDR, Button and RGB LED pinMode(LDR, INPUT); pinMode(BUTTON, INPUT); pinMode(RED, OUTPUT); pinMode(GREEN, OUTPUT); pinMode(BLUE, OUTPUT);
반복 루틴 처리
void loop() { webSocket.loop(); server.handleClient(); }
테스트 사진들
식물 재배기용 설치 하우스(앞 베란다)
첨부파일 : 식물재배기온도측정기프로젝트.pdf