[IOT]Raspberry Pi 2 /Windows IOT Core 讀取 DS18B20 的溫度資訊

環境:Windows 10, Windows 10 Iot Core, Raspberry Pi, Visual Studio 2015 

在「使用Raspberry + Arduino,來讀取 DHT22 的溫濕度資訊」中要讀取資料要透過 Arduino ,

本文介紹 使用 Raspberry Pi 2 /Windows IOT Core 讀取 DS18B20 的溫度資訊

之前讀取 DHT11/22 需要使用 micro-second timer ,所以透過 Arduino 來讀取。

如果要讀取 DS18B20 的溫度資訊,則可以透過 UART0 Rx/Tx 去轉讀到 1-Wire 的資訊。

Search 了一下 DS18B20 一支 70 元,測試時,可以放在冰水、熱水來測試,蠻方便的...。

依「1-Wire DS18B20 Sensor on Windows 10 Iot Core/Raspberry Pi 2」的方式,組合起來如下, 

在「selomkofori/ds18b20_win10iot」的方案中,DS18B201WireLib 專案的 OneWire Class 負責幫我們透過 OneWire UART0 Rx/Tx 來讀取資料。

而 DS18B20_1WireBus 則是將讀到的 溫度 資訊顯示出來,如下,

我們可以在 Timer_Tick 加入判斷,如果溫度大於某個值,就讓 LED 燈亮起來(我是接在 GPIO 26),如下,

private async void Timer_Tick(object sender, object e)
{
	if (!inprog)
	{
		inprog = true;
		tempData.Temperature = await onewire.getTemperature(uartId);
		if(tempData.Temperature > 26.0)
		{
			//大於 26 度,就 亮燈
			GpioPinValue alert = tempData.Temperature > 20.0  ? GpioPinValue.Low : GpioPinValue.High;
			ledPin.Write(alert);
		}
		inprog = false;
	}
}

註: 特別感謝同事 Wright 的幫忙 ^_^

參考資料

1-Wire DS18B20 Sensor on Windows 10 Iot Core/Raspberry Pi 2

selomkofori/ds18b20_win10iot

使用Raspberry + Arduino,來讀取 DHT22 的溫濕度資訊

 

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^