연결된 온도 및 습도 센서를 쉽게 구축
To monitor the temperature of the main room or the baby bedroom, you can create and develop your own connected temperature sensor easily.
다음 단계에 따라 연결된 온도 센서를 생성합니다. 이를 달성하기 위해 esp8266과 2개의 실드를 사용합니다.
ESP8266은 Arduino와 같은 마이크로컨트롤러이지만 Wi-Fi 모듈이 통합되어 있습니다.
실드는 메인보드에 추가해 기능을 확장할 수 있는 보드다. 실드는 설치 및 사용이 매우 쉽다는 장점이 있습니다.
현재 esp8266 D1 Mini에는 20개의 실드를 사용할 수 있습니다.
그래서 우리는 실드를 서로의 위에 클립하고 작성할 코드가 거의 없이 쉽게 많은 IoT 프로젝트를 만들 수 있습니다.
이 프로젝트에 사용된 것들
요구 사항
Arduino/Preferences/Additional Boards Manager URLs
에 이 URLhttps://arduino.esp8266.com/stable/package_esp8266com_index.json을 추가합니다.보드 관리자에 ESP8266 설치
Tools/Board/Board Manager
Tools/Manage Libraries
와 함께 추가합니다.Adafruit_SHT31
Adafruit_SSD1306
BlynkSimpleEsp8266
구성 변경
Tools
:LOLIN(WEMOS) D1 mini lite
/dev/cu.wchusbserial…
Mac용921600
Serial Monitor
를 클릭하세요.1단계 - 온도 값 읽기
당분간은 ESP8266 위에 SHT30 쉴드를 연결할 예정입니다. 다음 코드를 사용하여 실내 온도와 습도를 4초마다 다시 콘솔로 가져올 것입니다.
#include "Adafruit_SHT31.h"
Adafruit_SHT31 sht30 = Adafruit_SHT31();
void setup() {
Serial.begin(9600);
while (!Serial)
delay(10);
// will pause until serial console opens
Serial.println("SHT30 test");
if (! sht30.begin(0x45)) {
Serial.println("Couldn't find SHT30");
while (1) delay(1);
}
}
void loop() {
float t = sht30.readTemperature();
float h = sht30.readHumidity();
if (! isnan(t)) { // check if 'is not a number'
Serial.print("Temp *C = "); Serial.println(t);
} else {
Serial.println("Failed to read temperature");
}
if (! isnan(h)) { // check if 'is not a number'
Serial.print("Hum. % = "); Serial.println(h);
} else {
Serial.println("Failed to read humidity");
}
Serial.println();
delay(4000);
// wait 4 seconds before coming back into the loop
}
다음 코드를 사용하여 실내 온도와 습도를 4초마다 다시 콘솔로 가져올 것입니다.
2단계 - 화면에 메시지 표시
ESP8266 위에 OLED 디스플레이 쉴드를 연결하고 간단한 글을 올려보자.
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(-1);
void setup() {
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
// initialize with the I2C addr 0x3C (for the 64x48)
// set the text size and color
display.setTextSize(2);
display.setTextColor(WHITE);
}
void loop() {
display.setCursor(0,0);
display.println("Hello");
display.display();
delay(1000);
display.clearDisplay();
display.setCursor(0,24);
display.println("World");
display.display();
delay(1000);
display.clearDisplay();
}
이제 텍스트를 표시하는 방법과 화면을 지우는 방법을 알았습니다.
3단계 - 화면에 온도 표시
이제 온도 값을 읽을 수 있고 화면에 텍스트가 표시되었으므로 다음 단계에서는 온도 및 습도 값을 표시합니다.
#include "Adafruit_SHT31.h"
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(-1);
Adafruit_SHT31 sht30 = Adafruit_SHT31();
void setup() {
Serial.begin(9600);
if (! sht30.begin(0x45)) {
Serial.println("Couldn't find SHT30");
while (1) delay(1);
}
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
// initialize with the I2C addr 0x3C (for the 64x48)
// set the text size and color
display.setTextSize(2);
display.setTextColor(WHITE);
display.clearDisplay();
}
void loop() {
float t = sht30.readTemperature();
float h = sht30.readHumidity();
display.setCursor(0,0);
display.sprintf("%.1fC", t);
display.setCursor(0,25);
display.printf("%.0f%%\n", h);
display.display();
delay(5000);
display.clearDisplay();
}
4단계 - Blynk 앱에 연결
온도와 습도 값을 가지고 있는 것은 좋지만 그것들을 참조하는 것은 그다지 실용적이지 않습니다. 따라서 온도 센서를 인터넷에 연결하여 데이터를 클라우드에 게시하고 Blynk로 구축할 애플리케이션에 다시 가져올 것입니다.
Blynk는 우리와 같은 작은 응용 프로그램을 위한 무료 응용 프로그램입니다. 장치를 클라우드에 연결하고 애플리케이션을 쉽게 설계할 수 있는 가장 인기 있는 IoT 플랫폼입니다.
응용 프로그램에서 새 프로젝트를 만드는 방법에 대한 자세한 설명은 이 링크를 따라갈 수 있습니다.
➡️ http://docs.blynk.cc/#getting-started-getting-started-with-the-blynk-app
#define BLYNK_PRINT Serial
#include "Adafruit_SHT31.h"
#include <Adafruit_SSD1306.h>
#include <BlynkSimpleEsp8266.h>
Adafruit_SSD1306 display(-1);
Adafruit_SHT31 sht30 = Adafruit_SHT31();
char auth[] = "BLYNK_API_KEY";
char ssid[] = "WIFI_NAME";
char pass[] = "WIFI_PASSWORD";
void setup() {
Serial.begin(9600);
Serial.println("Starting");
// connect to the WiFi
Blynk.begin(auth, ssid, pass);
if (! sht30.begin(0x45)) {
Serial.println("Couldn't find SHT30");
while (1) delay(1);
}
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.setTextSize(2);
display.setTextColor(WHITE);
display.clearDisplay();
}
void loop() {
// start blynk
Blynk.run();
float t = sht30.readTemperature();
float h = sht30.readHumidity();
display.setCursor(0,0);
display.printf("%.1fC", t);
// send the temp value on the virtual pin 1 (V1)
Blynk.virtualWrite(1, t);
display.setCursor(0,25);
display.printf("%.0f%%\n", h);
// send the humidity value on the virtual pin 2 (V2)
Blynk.virtualWrite(2, h);
display.display();
delay(5000);
display.clearDisplay();
}
이제 다음 그림과 같이 2개의 레이블 값을 설정하여 Blynk에서 애플리케이션을 구성할 수 있습니다.
응용 프로그램에서 제공하는 모듈로 약간의 재미를 느낄 수 있습니다. 광산에서는 온도와 습도 값을 나타내는 그래프를 만들었습니다.
축하합니다. 연결된 온도 센서를 만들었습니다. 👏
https://henaff.io에 원래 게시되었습니다.
Reference
이 문제에 관하여(연결된 온도 및 습도 센서를 쉽게 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/monsieur_riz/easily-build-a-connected-temperature-and-humidity-sensor-22g5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)