第1步:了解傳感器
BMP180:
說明:
BMP180包括一個壓阻傳感器,一個模數轉換器以及一個帶有E2PROM和串行I2C接口的控制單元。 BMP180提供了壓力和溫度的未補償值。 E2PROM已存儲176位的單個校準數據。用于補償傳感器的偏移,溫度依賴性和其他參數。
UP =壓力數據(16到19位)
UT =溫度數據(16位) )
技術規格:
Vin:3至5VDC
邏輯:3至5V兼容
壓力感應范圍:300-1100 hPa(海拔9000m至-500m)
高達0.03hPa/0.25m分辨率-40至+ 85°C的工作范圍,+ -2°C的溫度精度
此板/芯片使用I2C 7位地址0x77。
DHT11:
說明:
DHT11是一款基本的超低成本數字溫度和濕度傳感器。
它使用電容式濕度傳感器和熱敏電阻來測量周圍的空氣,并在數據引腳上發出數字信號(無需模擬輸入引腳)。它使用起來相當簡單,但是需要謹慎的時間來獲取數據。
此傳感器的唯一真正缺點是,每2秒只能從其中獲取一次新數據,因此,在使用我們的庫時,傳感器讀數可能長達2秒。
技術規格:
3至5V電源和I/O
適用于0-50°C溫度讀數,±2°C精度
適用于20-80%的濕度讀數,精度為5%
轉換期間最大電流消耗為2.5 mA(在請求數據時)
步驟2:通過Nodemcu連接
DHT11:
引腳1-3.3V
針腳2-D4
針腳3-NC
針腳4-Gnd
帶有Nodemcu的BMP180:
Vin-3.3V
Gnd-Gnd
SCL-D6
SDA-D7
第3步:設置Blynk
Blynk是什么?
Blynk是一個具有iOS和Android應用程序的平臺,用于控制Arduino,Raspberry Pi和
這是一個數字儀表板,您可以通過si為您的項目構建圖形界面mply拖放小部件。設置一切非常簡單,您將在不到5分鐘的時間內開始進行修補。 Blynk并未綁在某些特定的板子或護板上。相反,它是您選擇的支持硬件。無論您的Arduino或Raspberry Pi是通過Wi-Fi,以太網還是此新型ESP8266芯片鏈接到Internet,Blynk都能使您上線并為物聯網做好準備。
有關設置的更多信息Blynk:詳細的Blynk設置
第4步:代碼
//Comments for each line is given in the .ino file below
#include
#define BLYNK_PRINT Serial
#include
#include
#include
#include
#include
Adafruit_BMP085 bmp;
#define I2C_SCL 12
#define I2C_SDA 13
float dst,bt,bp,ba;
char dstmp[20],btmp[20],bprs[20],balt[20];
bool bmp085_present=true;
char auth[]=“Put your Authication key from the Blynk app here”;
char ssid[] = “Your WiFi SSID”;
char pass[] = “Your Password”;
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE); //Defining the pin and the dhttype
BlynkTimer timer;
void sendSensor()
{
if (!bmp.begin())
{
Serial.println(“Could not find a valid BMP085 sensor, check wiring!”);
while (1) {}
}
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))
{
Serial.println(“Failed to read from DHT sensor!”);
return;
}
double gamma = log(h/100) + ((17.62*t) / (243.5+t));
double dp = 243.5*gamma / (17.62-gamma);
float bp = bmp.readPressure()/100;
float ba = bmp.readAltitude();
float bt = bmp.readTemperature();
float dst = bmp.readSealevelPressure()/100;
Blynk.virtualWrite(V5 , h);
Blynk.virtualWrite(V6 , t);
Blynk.virtualWrite(V10, bp);
Blynk.virtualWrite(V11, ba);
Blynk.virtualWrite(V12, bt);
Blynk.virtualWrite(V13, dst);
Blynk.virtualWrite(V14, dp);
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
dht.begin();
Wire.begin(I2C_SDA, I2C_SCL);
delay(10);
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run();
timer.run();
}
責任編輯:wv
-
服務器
+關注
關注
12文章
9206瀏覽量
85563 -
Arduino
+關注
關注
188文章
6471瀏覽量
187244 -
氣象站
+關注
關注
1文章
753瀏覽量
15692
發布評論請先 登錄
相關推薦
評論