이벤트
Quest 1
식물재배기용 온도모니터링 프로젝트 작성자 : 블루베어

프로젝트 구성

온도를 측정하기 위해서 측정된 값을 디스플레이 하기 위해서 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