아두이노 우노를 비롯한 어떠한 호환 보드를 사용하드라도 Adafruit 사의 DHT11 온습도 센서를 사용한 측정 및 측정 결과의 그래픽 처리 및 저장은 사물인터넷 코딩의 출발점이다.
DHT11의 전원은 3.3V를 사용하도록하며 3V3과 GND 에 연결 배선한다.
데이터 선은 보드에 표시된 대로 D4 연결하고
코딩 시에 디지털 데이터 핀 번호를 D4 로 설정한다.
아울러 weMos 와 NodeMCU 코딩에 차이점을 찾아보기 위하여 온갖 노력을 다하고 있으나 아직까지 아무런 차이점을 찾지 못했으며 차이점을 찾게 되면 블로그에 올릴 계획이다.
아래의 코드를 클론하여 아두이노 편집기에서 컴파일하여 업로딩한다. 아울러 ThingSpeak 싸이트에 로그인하여 온도 그래프와 습도 그래프를 준비해 둔다. 그 과정은 이미 아래에 예시한 본 블로그의 자세한 내용을 참조 바란다.
4-4 아두이노 Cactus ESP8266WiFi 보드 Thingspeak 웹서버 예제: I 아날로그 입력 데이터 생성 및 Thingspeak 전송 및 그래프 작성 99
http://blog.daum.net/ejleep1/305
4-5 아두이노 Cactus Micro ESP8266WiFi 클라이언트 Thingspeak 웹서버 코딩: II 106
http://blog.daum.net/ejleep1/306
4-7 ESP8266WiFi NodeMCU 12E WiFi 모듈사용 ThingSpeak 전압데이터 전송:II
http://blog.daum.net/ejleep1/307
아래의 2017년 7월 2일 오후 5시 경의 측정 데이터 온도 26도 습도 51%를 참조하기 바란다.
해외 참조 사이트
how2electronics.com/dht11-humidity-temperature-nodemcu-thingspeak/
DHT11 Humidity Temperature Monitor with NodeMCU on ThingSpeak
Humidity & Temperature Monitor using DHT11 & NodeMCU ESP8266 on ThingSpeak. Upload DHT11 Sensor Data on Cloud Server of Thinspeak. Source Code & Circuit
how2electronics.com
weMos_thingspeak_DHT11_01
#include <ESP8266WiFi.h>
#include <DHT11.h>
#define myPeriodic 15 //in sec | Thingspeak pub is 15sec
const char* server = "api.thingspeak.com";
String apiKey = "0PKP69L3W0DXYESP";//반드시 자신의 ThingSpeak APi 키 값 입력
const char* MY_SSID = "android1234";//반드시 자신의 무선 공유기 ID 입력
const char* MY_PWD = "dddddddddd"; //반드시 자신의 무선공유기 비밀번호 입력
int sent = 0;
int pin = D5; //Signal 이 연결된 아두이노weMos의 핀번호
DHT11 dht11(pin);
void setup() {
Serial.begin(115200);
connectWifi();
}
void loop() {
WiFiClient client;
int err;
float temp, humi;
if((err=dht11.read(humi, temp))==0)
{
Serial.print("temperature:");
Serial.print(temp);
Serial.print(" humidity:");
Serial.print(humi);
Serial.println();
}
else
{
Serial.println();
Serial.print("Error No :");
Serial.print(err);
Serial.println();
}
// Send temperature data.
if (client.connect(server, 80)) { // use ip 184.106.153.149 or api.thingspeak.com
Serial.println("WiFi Client connected ");
Serial.print(String(sent)+" Temperature: ");
Serial.println(temp);
Serial.print(String(sent)+" Humidity: ");
Serial.println(humi);
String postStr = apiKey;
postStr += "&field1=";
postStr += String(temp);
postStr += "\r\n\r\n";
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
delay(1000);
}//end if temperature
client.stop();
delay(15000);
//Send humidity data.
if (client.connect(server, 80)) { // use ip 184.106.153.149 or api.thingspeak.com
String humidStr = apiKey;
humidStr += "&field2=";
humidStr += String(humi);
humidStr += "\r\n\r\n";
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(humidStr.length());
client.print("\n\n");
client.print(humidStr);
delay(1000);
}//end if
sent++;
client.stop();
delay(15000);
}
void connectWifi()
{
Serial.print("Connecting to "+*MY_SSID);
WiFi.begin(MY_SSID, MY_PWD);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("Connected");
Serial.println("");
}//end connect 끝
'아두이노프로세싱 프로그래밍' 카테고리의 다른 글
wiringPi 라이브러리 지원을 받는 C언어에 의한 DHT11 온습도 측정 temp.c (0) | 2017.07.04 |
---|---|
weMos 무선 코딩 업데이트를 위한 Arduino OTA(Over The Air) 설치 및 BLINKING 예제 (0) | 2017.07.03 |
초보자를 위한 “아두이노 weMos D1 와이파이 코딩으로 가변저항 전압 ThingSpeak 그래픽 처리” (0) | 2017.07.02 |
초보자를 위한 “아두이노 weMos D1(Retired) 와이파이 코딩으로 가변저항 전압 그래픽 처리” (0) | 2017.07.02 |
초보자를 위한 “아두이노 weMos D1(Retired) 보드로 가변저항 전압 시리얼 플로팅” (0) | 2017.07.02 |