[아두이노] 정밀온습도센서 정보를 핸드폰(Blynk)으로 보내기
목표
ESP32로 BME 280 제어 후 값을 핸드폰으로 보내기
제어 테스트 소스
/*************************************************************
Download latest Blynk library here:
https://github.com/blynkkk/blynk-library/releases/latest
Blynk is a platform with iOS and Android apps to control
Arduino, Raspberry Pi and the likes over the Internet.
You can easily build graphic interfaces for all your
projects by simply dragging and dropping widgets.
Downloads, docs, tutorials: http://www.blynk.cc
Sketch generator: http://examples.blynk.cc
Blynk community: http://community.blynk.cc
Follow us: http://www.fb.com/blynkapp
http://twitter.com/blynk_app
Blynk library is licensed under MIT license
This example code is in public domain.
*************************************************************
This example runs directly on ESP32 chip.
Note: This requires ESP32 support package:
https://github.com/espressif/arduino-esp32
Please be sure to select the right ESP32 module
in the Tools -> Board menu!
Change WiFi ssid, pass, and Blynk auth token to run :)
Feel free to apply it to any other example. It's simple!
*************************************************************/
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <wifi.h>
#include <wificlient.h>
#include <blynksimpleesp32.h>
#include <wire.h>
#include <adafruit_sensor.h>
#include <adafruit_bme280.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "";
char pass[] = "";
BlynkTimer timer;
int timerID01;
// BME280 Setting
/*
Mapping Pin D21 - SDA, D22 - SCL
*/
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
unsigned long delayTime;
void setup()
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
Serial.println(F("BME280 test"));
bool status;
// default settings
// (you can also pass in a Wire library object like &Wire2)
status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
Serial.println("-- Default Test --");
delayTime = 1000;
Serial.println();
timerID01=timer.setInterval(10000L, myTimerSensor01);
}
void loop()
{
Blynk.run();
timer.run();
}
void myTimerSensor01()
{
printValues();
}
void printValues()
{
int Temper = bme.readTemperature();
int Press = bme.readPressure() / 100.0F;
int Altit = bme.readAltitude(SEALEVELPRESSURE_HPA);
int Humid = bme.readHumidity();
Serial.print("Temperature = ");
Serial.print(Temper);
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(Press);
Serial.println(" hPa");
Serial.print("Approx. Altitude = ");
Serial.print(Altit);
Serial.println(" m");
Serial.print("Humidity = ");
Serial.print(Humid);
Serial.println(" %");
Serial.println();
Blynk.virtualWrite(V4, Temper);
Blynk.virtualWrite(V5, Press);
Blynk.virtualWrite(V6, Altit);
Blynk.virtualWrite(V7, Humid);
}
준비
- BME280 관련 라이브러리 Sensor 라이브러리를 다운받아야 함
- Adafruit_BME280 library
- Adafruit_Sensor library 요 두개임
- Blynk와 연결함
- 핸드폰으로 정보를 확인
참고한 자료
</adafruit_bme280.h></adafruit_sensor.h></wire.h></blynksimpleesp32.h></wificlient.h></wifi.h