상세 컨텐츠

본문 제목

태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 3부 - WEMOS(DHT11) + Blynk App

embedded/ESP Module

by ZelKun 2019. 7. 25. 00:04

본문

반응형

[embedded] - 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 1부 - WEMOS 등 부품 조립 및 WiFi 테스트

 

태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 1부 - WEMOS 등 부품 조립 및 WiFi 테스트

분량조절에 실패하여.. 스크롤 압박 주의... 아는분께서 선물로 인터넷으로 보셨다고... Solar Powerd WiFi Weather Station 부품을 주셨습니다 해보라고... 근데 제일 중요한 부품인 센서(BME 280 sensor) 구입을..

zelkun.tistory.com

[embedded] - 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 2부 - Blynk 라이브러리 설치

 

태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 2부 - Blynk 라이브러리

[embedded] - 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 1부 - WEMOS 등 부품 조립 및 WiFi 테스트 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature..

zelkun.tistory.com

[embedded] - 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 3부 - WEMOS(DHT11) + Blynk App

 

태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 3부 - WEMOS(DHT11) + Blynk App

[embedded] - 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 1부 - WEMOS 등 부품 조립 및 WiFi 테스트 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature..

zelkun.tistory.com

[embedded] - 태양광 충전 테스트(WEMOS)

 

태양광 충전 테스트(WEMOS)

[embedded] - 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 1부 - WEMOS 등 부품 조립 및 WiFi 테스트 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature..

zelkun.tistory.com

[embedded] - 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 4부 - WEMOS(BMP/E280) + Blyink + Thingspeak

 

태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 4부 - WEMOS(BMP/E280) + Blyink + Thingspeak

[embedded] - 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 1부 - WEMOS 등 부품 조립 및 WiFi 테스트 태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature..

zelkun.tistory.com


Blynk 라이브러리도 설치했고, App 도 받아서 인증했으니 연결해봐야죠

 

우선 Blynk App에서 프로젝트를 하나 만들어줍니다

Blynk App 화면

New Project를 선택해서 디바이스와 연결타입을 선택하고

AUTH TOKEN 을 복사하거나 e-mail로 보내서 복사해 둡니다

기존 소스

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include < ESP8266WiFi.h>
#include  <BlynkSimpleEsp8266.h >
#include "Seeed_BME280.h"
#include < Wire.h>
BME280 bme280;
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "3df5f636c7dc464a457a32e382c4796xx";// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "SSID";
char pass[] = "PASS WORD";
void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  Serial.begin(9600);
  if(!bme280.init()){
  Serial.println("Device error!");
  }
}

void loop()
{
  Blynk.run();
  
  //get and print temperatures
  float temp = bme280.getTemperature();
  Serial.print("Temp: ");
  Serial.print(temp);
  Serial.println("C");//The unit for  Celsius because original arduino don't support speical symbols
  Blynk.virtualWrite(0, temp); // virtual pin 0
  Blynk.virtualWrite(4, temp); // virtual pin 4
  //get and print atmospheric pressure data
  float pressure = bme280.getPressure(); // pressure in Pa
  float p = pressure/100.0 ; // pressure in hPa
  Serial.print("Pressure: ");
  Serial.print(p);
  Serial.println("hPa");
  Blynk.virtualWrite(1, p); // virtual pin 1
  //get and print altitude data
  float altitude = bme280.calcAltitude(pressure);
  Serial.print("Altitude: ");
  Serial.print(altitude);
  Serial.println("m");
  Blynk.virtualWrite(2, altitude); // virtual pin 2  //get and print humidity data
  float humidity = bme280.getHumidity();
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println("%");
  Blynk.virtualWrite(3, humidity); // virtual pin 3
  ESP.deepSleep(5 * 60 * 1000000); // deepSleep time is defined in microseconds.
}

아쉽지만 BMC280 센서가 없으니 DHT11 온습도 센서용으로 변경할거에요

 

변경된 소스

#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp8266.h > 
#include <ESP8266WiFi.h>
const char auth[] = "Blynk_auth_key";
const char ssid[] = "ssid";
const char pass[] = "password";
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 5 //digtal ~5 pin
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass); 
  dht.begin();
} 

void loop() { 
  Blynk.run(); //get and print temperatures 
  
  float h = dht.readHumidity(); //습도
  float t = dht.readTemperature(); //온도
  if (isnan(h) || isnan(t) /* || isnan(f) */) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  Serial.print("Temp: "); 
  Serial.print(t); 
  Serial.println("C");
  Blynk.virtualWrite(V0, t); // virtual pin V0
  Serial.print("Humidity: "); 
  Serial.print(h); 
  Serial.println("%"); 
  Blynk.virtualWrite(V1, h); // virtual pin V1 
  
  ESP.deepSleep(5 * 60 * 1000000); // deepSleep time is defined in microseconds. 
  //delay(1000);
}

== 추가 ==

--

D0와 RST 를 연결하기 깨어나서 데이터를 보낸다

아마도 보드가 고장나서 안된것 같다

--

테스트를 끝내고 하루동안 방치했는데 아뿔사

Deep Sleep 에서 깨어나질 않는다

ESP.deepSleep 을 좀더 찾아봐야 겠다

D0 와 RST 를 연결하면 된다는 듯 한데 잠깐연결해보니

미친듯이 LED가 on/off 된다 정품이 아니라 그런지는 모르겠...

그리고 보드가 나갔는지 Serial 통신이 안되기 시작했...

근데 소스 업로드는 된다...

일단 배터리 연결해서 밖에다 내놓기로....

참고: https://diyprojects.io/esp8266-deep-sleep-mode-test-wake-pir-motion-detector/#.XTnCtJMzZ24

 

ESP8266, Deep Sleep mode test, wake up with a PIR motion detector • DIY Projects

How to use the Deep-Sleep mode of the ESP8266EX WiFi module. Wake up with a PIR motion detector, publish status to MQTT Broker

diyprojects.io

== //추가 ==

 

BMC280 관련내용을 삭제하고 DHT11에 맞춰서 수정했습니다

const char auth[] = "Blynk_auth_key";

App에서 복사해둔 auch token을 넣어줍니다

그리고 공유기 ssid / passwd 를 넣으면 WiFi와 Bylnk APP 설정은 끗

 

하지만 센서값을 받아와야 하니 

Blynk.virtualWrite(V0, t);

Blynk.virtualWrite(V1, h);

부분을 꼭 넣어줘야 합니다

 

DHT11 온습도 센서 소스는 Blynk 소스에 살살 녹여주면 됩니다

DHT11 참고: [embedded/arduino] - 023. Arduino 아두이노 - DH11 Sensor Module 온습도 센서 모듈

 

023. Arduino 아두이노 - DH11 Sensor Module 온습도 센서 모듈

온도, 습도를 합쳐 놓은 센서 모듈인데요 전용 라이브러리를 필요로 합니다 라이브러리 파일을 추가 하고 예제를 돌려서 시리얼 모니터로 확인하면 끗 간단하네요 그리고 시리얼 모니터로 확인하면 끗 간단하네요..

zelkun.tistory.com

Serial 모니터 확인

Serial 모니터로 보니 WiFi연결도 되고 온습도 센서 값도 읽어오네요

위젯 설정

Bylnk App 화면

앱에 위젯을 만들어줍니다

Displays 쪽에 Value를 보여주는 항목이 몇개있네요

전 Labeled Value 를 사용했습니다

Bylnk App 화면

INPUT 항목을 보면 Digital / Analog / Virtual 입력을 받을 수 있네요

사실 뭘해도 상관없지만 V0로 했으니

소스에 맞춰서 설정해줍니다

Bylnk App 화면

온/습도 위젯을 만들고 우측상단의 화살표를 누르면 프로젝트가 시작(?) 됩니다

뭔가 서버느낌 나네요

오프라인(offline)이다가 Wemos mini와 연결되면 Connected 메시지가 뜹니다

Bylnk App 화면

오... 더운데 살고 있네요

온도 30도 / 습도 31도 라니...

실리콘 처리

과연 배터리 충전은 잘될 것인가? 란 의문을 가지며

밖에다 내놓기 전에

글루건으로 보드에 나름 방수처리를 해줬습니다

앞쪽은 안했지만... 위쪽은 다닥다닥 붙어있기도하고

혹시라도 쇼트가 날만한 간격이니 주의 해야죠

 

완성
완성품

이제 야외에다 놓고 몇일 테스트를 해봐야 겠네요

 

원래대로라면 3부로 끝났겠지만....

BEM280 센서

느닷없지만... 다끝나고 나니...

BEM280센서가... 생겼네요...

센서를 안주셨네요~ 했더니 주심...

시간날때.. 납땜좀 하고 소스 수정해 봐야겠네요

반응형

관련글 더보기

댓글 영역