상세 컨텐츠

본문 제목

태양광 충전 테스트(WEMOS)

embedded/ESP Module

by ZelKun 2019. 8. 14. 13:50

본문

반응형

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

 

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

[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) 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

일전에 태양광을 이용한 온습도 측정기를 만들었었는데

결국 보드가 나가버렸는지 동작을 하질않아

배터리를 교체하고 충전테스트를 진행해보기로했다

기존 소켓형 배터리를 제거하고

드론에 사용하는 3.7v 배터리로 교체하는 작업을 진행했는데 사진을 찍질 않았다

덤으로 wemos r1 mini 보드도 제거해버렸다

소스 업로드는 되는데 정작 시리얼로 로그를 확인해봐도 동작을 안해서 이다

덤으로 D0 <-> RST 연결을 해도 보드 리셋을 하질 않으니 ...

WEMOS  보드가 있던자리가 비어있고

배터리가 바뀐 모습

덤으로 눈으로 확인하기 위해 녹색 LED를 배터리에 연결했다

한밤중에도 잘 켜있다

일단 방전을 위해 하루동안 밖에 방치했는데 LED 전원소모가 적어서 그런지...

꺼지는 모습을 보질 못해서 강제로 방전 시키고 야외에 두니

다음날에도 켜있었다

한마디로 충전이 잘된다는 소리

덤으로 WEMOS 센서를 제공해주셨던 분께 다시 보드를 받아서 온습도(DHT22) 를 연결하고

선물로 통채로 드렸다

만난자리에서 납땜하고 코딩한건 안자랑

온도 / 습도

베란다에 놓으셨다는데 8시까지는 배터리로 동작하고(충전된 전력)

11시 부터는 태양광로 동작하는듯 하다(충전과 보드동작)

소스코드

#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <BlynkSimpleEsp8266.h > 
#include <ESP8266WiFi.h>
#include <WiFiClient.h>

#include <Arduino.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
ESP8266WiFiMulti WiFiMulti;

const char auth[] = "Blynk_Key";
const char ssid[] = "WIFI_SSID";
const char pass[] = "WIFI_PASSWORD";
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 5 //digtal ~5 pin
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();

  Blynk.begin(auth, ssid, pass);
  
  while (Blynk.connect() == false) {
      // Wait until connected
  }
  Blynk.notify("Hardware is just connected!");
} 

void loop() { 
  float h = dht.readHumidity(); //습도
  float t = dht.readTemperature(); //온도
  float f = dht.readTemperature(true);

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }


  // Compute heat index in Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);
  
  Blynk.run(); //get and print temperatures 

  Serial.print("Temp: "); 
  Serial.print(t); 
  Serial.println("C");
  Blynk.virtualWrite(V0, t); // virtual pin 0

  Serial.print("Humidity: "); 
  Serial.print(h); 
  Serial.println("%"); 
  Blynk.virtualWrite(V1, h); // virtual pin 3 

  Serial.println(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F("°C "));
  Serial.print(f);
  Serial.print(F("°F  Heat index: "));
  Serial.print(hic);
  Serial.print(F("°C "));
  Serial.print(hif);
  Serial.println(F("°F"));

  String url = "http://api.thingspeak.com/update?api_key=Thingspeak_API_KEY";
  String param = "&field1=" + String(t) + "&field2=" + String(h);

  WiFiClient client;
  HTTPClient http;
  Serial.print("[HTTP] begin...\n");
  if (http.begin(client, url + param)) {  // HTTP
    Serial.print("[HTTP] GET...\n");
    // start connection and send HTTP header
    int httpCode = http.GET();

    // httpCode will be negative on error
    if (httpCode > 0) {
      // HTTP header has been send and Server response header has been handled
      Serial.printf("[HTTP] GET... code: %d\n", httpCode);

      // file found at server
      if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {
        String payload = http.getString();
        Serial.println(payload);
      }
    } else {
      Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
    }

    http.end();
  } else {
    Serial.printf("[HTTP} Unable to connect\n");
  }
  //5 min(d0 <-> rst)
  ESP.deepSleep(5 * 60 * 1000000); // deepSleep time is defined in microseconds.
}

HTTPClient 예제와 Blynk 예제를 섞어서 대충만들었는데

잘동작하는것 같다

시간될때 소스를 좀 다듬어 볼까한다

그리고... 다시 선물로 받은 NODEMCU 보드와 태양광 패널..

NODEMCU+BME280 기압센서로...

다시 날씨스테이션을 만들어 드리기로 했다...

반응형

관련글 더보기

댓글 영역