[ESP-WROOM-02]ESP-WROOM-02+토양습도센서와 IFTTT로 센서값 정기 tweet
소개
이 항목은 다음 항목의 연속입니다.
기르고 있는 분재의 물의 타이밍을 보이게 하고 싶었기 때문에, ESP-WROOM-02, 토양 습도 센서를 사용해, 흙 속의 수분을 측정합니다
이번에는 IFTTT을 사용하여 토양 습도 값을 tweet합니다.
전자부품
ESP-WROOM-02 개발 보드(핀 소켓 실장 완료) 스위치 과학에서 구입
토양 습도 센서 aitendo에서 구입
참고
IFTTT 준비
IFTTT 에 액세스하여 My Recipes에서 레시피를 만들어갑니다.
「this」에는 「Maker」를 설정, 「that」에는 「twitter」를 설정한다
이 때 「Maker」로 설정한 이벤트명을, 스케치(ESP-WROOM-02에 기입하는 프로그램)로 사용
설정 후 h tps : //이 f t. 코m/마케 r에 액세스하면 비밀 키가 나열됩니다.
이쪽도, 스케치(ESP-WROOM-02에 기입하는 프로그램)로 사용한다
센서의 값에 따라 tweet 내용을 바꾸고 싶었기 때문에 레시피는 3개 준비했다
스케치 만들기
ArduinoIDE 메뉴 파일 > 스케치 예제 > ESP8266WiFi > WiFiClient를 선택하고 샘플 스케치 사용
ESP-WROOM-02에서 얻은 센서의 값을 IFTTT에 전달 를 참고로 스케치 만들기
센서의 값에 따라 tweet을 바꾸고 싶었으므로 이벤트 이름을 if 문으로 분기했습니다.
또한 ESP-WROOM-02의 기능인 deep sleep을 사용하는 것을 생각하고 루프에는 아무것도 쓰지 않고 setup 내에서만 GET하도록 했다
setup의 마지막에 「ESP.deepSleep(3600 * 1000 * 1000);」를 더해 개발 보드의 IO16핀과 RESET핀을 연결한다
이렇게하면 ESP-WROOM-02의 절전 모드 인 deep sleep 기능을 사용할 수 있습니다.
arduino#include <ESP8266WiFi.h>
const char* ssid = "自分のwifi環境のSSID";
const char* password = "自分のwifi環境のパスワード";
const char* host = "maker.ifttt.com";
const char* secretkey = "自分のMakerのkey";
extern "C" {
#include "user_interface.h"
}
void setup() {
Serial.begin(115200);
delay(10);
// We start by connecting to a WiFi network
int moisture = readMoisture();
String moisture_str = String(moisture);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
char* event = "";
if (moisture >= 200) {
event = "hungry_bonsai_full";
} else if (moisture >= 100 and moisture < 200) {
event = "hungry_bonsai_soso";
} else {
event = "hungry_bonsai_hungry";
}
// We now create a URI for the request
String url = "/trigger/";
url += event;
url += "/with/key/";
url += secretkey;
url += "?value1=";
url += moisture_str;
Serial.print("Requesting URL: ");
Serial.println(url);
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
// Read all the lines of the reply from server and print them to Serial
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}
// every 60 min
ESP.deepSleep(3600 * 1000 * 1000);
}
void loop() {
}
int readMoisture() {
int moisture = 1024 - system_adc_read();
return moisture;
}
결과
@hungry_bonsai
요약
IFTTT를 사용하면 ESP-WROOM-02와 트위터의 연계를 쉽게 할 수 있습니다.
하나의 함수를 호출하는 것만으로 deep sleep을 사용할 수있어 편리
그리고는 deep sleep을 사용할 수 있으면 분재의 수분량을 보이게 할 수 있다고 생각한다.
Reference
이 문제에 관하여([ESP-WROOM-02]ESP-WROOM-02+토양습도센서와 IFTTT로 센서값 정기 tweet), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jun1_0803/items/774bfbf2f2aa0802bfaf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ArduinoIDE 메뉴 파일 > 스케치 예제 > ESP8266WiFi > WiFiClient를 선택하고 샘플 스케치 사용
ESP-WROOM-02에서 얻은 센서의 값을 IFTTT에 전달 를 참고로 스케치 만들기
센서의 값에 따라 tweet을 바꾸고 싶었으므로 이벤트 이름을 if 문으로 분기했습니다.
또한 ESP-WROOM-02의 기능인 deep sleep을 사용하는 것을 생각하고 루프에는 아무것도 쓰지 않고 setup 내에서만 GET하도록 했다
setup의 마지막에 「ESP.deepSleep(3600 * 1000 * 1000);」를 더해 개발 보드의 IO16핀과 RESET핀을 연결한다
이렇게하면 ESP-WROOM-02의 절전 모드 인 deep sleep 기능을 사용할 수 있습니다.
arduino
#include <ESP8266WiFi.h>
const char* ssid = "自分のwifi環境のSSID";
const char* password = "自分のwifi環境のパスワード";
const char* host = "maker.ifttt.com";
const char* secretkey = "自分のMakerのkey";
extern "C" {
#include "user_interface.h"
}
void setup() {
Serial.begin(115200);
delay(10);
// We start by connecting to a WiFi network
int moisture = readMoisture();
String moisture_str = String(moisture);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
char* event = "";
if (moisture >= 200) {
event = "hungry_bonsai_full";
} else if (moisture >= 100 and moisture < 200) {
event = "hungry_bonsai_soso";
} else {
event = "hungry_bonsai_hungry";
}
// We now create a URI for the request
String url = "/trigger/";
url += event;
url += "/with/key/";
url += secretkey;
url += "?value1=";
url += moisture_str;
Serial.print("Requesting URL: ");
Serial.println(url);
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
// Read all the lines of the reply from server and print them to Serial
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}
// every 60 min
ESP.deepSleep(3600 * 1000 * 1000);
}
void loop() {
}
int readMoisture() {
int moisture = 1024 - system_adc_read();
return moisture;
}
결과
@hungry_bonsai
요약
IFTTT를 사용하면 ESP-WROOM-02와 트위터의 연계를 쉽게 할 수 있습니다.
하나의 함수를 호출하는 것만으로 deep sleep을 사용할 수있어 편리
그리고는 deep sleep을 사용할 수 있으면 분재의 수분량을 보이게 할 수 있다고 생각한다.
Reference
이 문제에 관하여([ESP-WROOM-02]ESP-WROOM-02+토양습도센서와 IFTTT로 센서값 정기 tweet), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jun1_0803/items/774bfbf2f2aa0802bfaf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
IFTTT를 사용하면 ESP-WROOM-02와 트위터의 연계를 쉽게 할 수 있습니다.
하나의 함수를 호출하는 것만으로 deep sleep을 사용할 수있어 편리
그리고는 deep sleep을 사용할 수 있으면 분재의 수분량을 보이게 할 수 있다고 생각한다.
Reference
이 문제에 관하여([ESP-WROOM-02]ESP-WROOM-02+토양습도센서와 IFTTT로 센서값 정기 tweet), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jun1_0803/items/774bfbf2f2aa0802bfaf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)