태양광을 이용한 온습도 측정기 (Solar Powered WiFi Temperature and Humidity Station) 3부 - WEMOS(DHT11) + Blynk App
[embedded] - 태양광 충전 테스트(WEMOS)
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
== //추가 ==
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 온습도 센서 모듈
Serial 모니터로 보니 WiFi연결도 되고 온습도 센서 값도 읽어오네요
앱에 위젯을 만들어줍니다
Displays 쪽에 Value를 보여주는 항목이 몇개있네요
전 Labeled Value 를 사용했습니다
INPUT 항목을 보면 Digital / Analog / Virtual 입력을 받을 수 있네요
사실 뭘해도 상관없지만 V0로 했으니
소스에 맞춰서 설정해줍니다
온/습도 위젯을 만들고 우측상단의 화살표를 누르면 프로젝트가 시작(?) 됩니다
뭔가 서버느낌 나네요
오프라인(offline)이다가 Wemos mini와 연결되면 Connected 메시지가 뜹니다
오... 더운데 살고 있네요
온도 30도 / 습도 31도 라니...
과연 배터리 충전은 잘될 것인가? 란 의문을 가지며
밖에다 내놓기 전에
글루건으로 보드에 나름 방수처리를 해줬습니다
앞쪽은 안했지만... 위쪽은 다닥다닥 붙어있기도하고
혹시라도 쇼트가 날만한 간격이니 주의 해야죠
이제 야외에다 놓고 몇일 테스트를 해봐야 겠네요
원래대로라면 3부로 끝났겠지만....
느닷없지만... 다끝나고 나니...
BEM280센서가... 생겼네요...
센서를 안주셨네요~ 했더니 주심...
시간날때.. 납땜좀 하고 소스 수정해 봐야겠네요
댓글 영역