이번에 새로 파이어베이스 라이브러리가 바뀌면서 전에 되던 코드가 되지 않았다.
혹시 몰라서 파이어베이스랑 연결하지 않고, 온습도 측정하는 코드만 따로 해봤는데 이 코드는 잘 됐다.
파이어베이스랑 연결되는 것에서 문제가 있는 듯 했다.
전에 사용했던 코드 ↓
https://practicecprogram.tistory.com/94
아두이노 파이어베이스랑 온도습도 연결-앱인벤터
#include #include #include "DHT.h" #define DHTPIN 5 // what digital pin we're connected to #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); // Set these to ..
practicecprogram.tistory.com
아두이노 보드 : WEMOS D1 R1 보드를 사용
※ WEMOS D1 R1 보드 설정
아두이노 파일-환경설정- 추가적인 보드 매니저에
arduino.esp8266.com/stable/package_esp8266com_index.json
dl.espressif.com/dl/package_esp32_index.json
↑위의 URL 추가하기
추가할 때 스크린같은 아이콘 누르고 각 줄에 한 개씩 추가해주세요 (사진 참고)
툴-보드-보드매니저에서 esp8266 검색 후 설치
스케치-라이브러리 포함하기 - 라이브러리 관리에서 json 검색 후 설치
*다른거 말고 ArduinoJson by Benoit Blanchon 설치해야 함
다음 과정을 한 후, 툴 - 보드에 가면 WEMOS D1 R1보드가 추가되어있는 것 확인 가능
참고한 깃허브 github.com/mobizt/Firebase-ESP8266
사용한 ZIP 라이브러리 파일
#include "DHT.h"
#include "FirebaseESP8266.h" //파이어베이스 라이브러리
#include <ESP8266WiFi.h>
#define DHTPIN 5 // what digital pin we're connected to
#define FIREBASE_HOST "연결할 파이어베이스 이름.firebaseio.com" //앞에 http 빼야함
#define FIREBASE_AUTH "" // 데이터베이스 비밀번호
#define WIFI_SSID "" // 연결 가능한 wifi의 ssid
#define WIFI_PASSWORD "" // wifi 비밀번호
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
FirebaseData firebaseData;
FirebaseJson json;
void setup() {
Serial.begin(115200);
Serial.println("DHTxx test!");
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.println();
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
//Set the size of WiFi rx/tx buffers in the case where we want to work with large data.
firebaseData.setBSSLBufferSize(1024, 1024);
//Set the size of HTTP response buffers in the case where we want to work with large data.
firebaseData.setResponseSize(1024);
//Set database read timeout to 1 minute (max 15 minutes)
Firebase.setReadTimeout(firebaseData, 1000 * 60);
//tiny, small, medium, large and unlimited.
//Size and its write timeout e.g. tiny (1s), small (10s), medium (30s) and large (60s).
Firebase.setwriteSizeLimit(firebaseData, "tiny");
dht.begin();
}
int n = 0; //n은 측정한 횟수라 생략해도 됨
void loop() {
n++; // 횟수 파이어베이스에 안 올릴거면 생략
// Wait a few seconds between measurements.
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
Serial.println("Failed to rea if (isnan(h) || isnan(t)) {
d from DHT sensor!");
return;
}
Firebase.setFloat(firebaseData, "humidity", h);
Firebase.setFloat(firebaseData, "temperature", t);
// set value
Firebase.setFloat(firebaseData, "number", n); // 횟수 파이어베이스에 안 올릴거면 생략
// handle error
delay(1000);
}
앱인벤터는 그대로 하면 됨
파이어베이스 데이터베이스에 값이 바뀌는 것을 확인할 수 있다.
'아두이노' 카테고리의 다른 글
아두이노 파이어베이스랑 온도습도 연결-앱인벤터 (0) | 2019.09.08 |
---|---|
아두이노 온도 습도 측정 (0) | 2019.09.08 |
아두이노 버튼+부저 (0) | 2019.09.08 |
아두이노 부저에서 소리나게 하기 (0) | 2019.09.08 |
아두이노 버튼 누르면 불 들어오기 (0) | 2019.09.06 |
댓글