網頁

Blynk雲端平台的Gauge工具-透過DS18B20顯示溫度


今天要來介紹的是這個長的很像壓力表的顯示工具Widget Gauge。

這個工具跟Value Display可以說是非常的像,只是將數值以圓形圖的方式展示,這個很適合用在類似壓力、速度等等的資訊。在設定頁面中可以發現跟Value Display幾乎一樣。


在INPUT的選擇中它有Analog與Virtual的選項,一樣在Virtual中才有PUSH的模式,這個要注意到,如果不太清楚PUSH模式的可以參考這篇文章


然而一直在介紹工具也有些含糊,因此我要使用DS18B20溫度感測器,去將量測到的溫度顯示在Gauge工具上。


在設定部分我將工具名稱改為Temp,INPUT選擇V0虛擬引腳,並且將溫度設定在25~35的範圍內,設定的太寬反而看不出移動的效果,最後是LABEL的格式使用/pin.#/加上,限制它顯示在小數點後第一位就好。


程式碼的部分則如下所示,修改至Blynk的官方範例PUSH DATA,這個程式碼在每秒都會讀取DS18B20的溫度值,然後發送(PUSH)到Blynk的V0上面。

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 0

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

char auth[] = "*****************";
char ssid[] = "*******";
char pass[] = "*******";

BlynkTimer timer;

void myTimerEvent()
{
  sensors.requestTemperatures();
  float temp = sensors.getTempCByIndex(0);
  Serial.println(temp);
  Blynk.virtualWrite(V0, temp);
}

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  sensors.begin();
  timer.setInterval(1000L, myTimerEvent);
}


void loop()
{
  Blynk.run();
  timer.run(); // Initiates BlynkTimer
}

顯示的結果如下圖所示,我的程式中撰寫每一秒PUSH一個資訊到資料庫中,同時這個工具若設定PUSH模式也會在資料庫新增資料的同時,顯示在這上面。


這個工具的可視性很強,所以可以用在需要直觀的數據顯示上。