想知道是否有任何Raspberry Pi 3 + Windows 10物联网核心+ DHT22的样本接线和代码?谢谢!使用Raspberry Pi 3 + Windows 10物联网核心+ DHT22
0
A
回答
0
static class DHT22
{
private const int intGpioData = 18;
private static GpioPin gpioData;
public static void Start()
{
//Init GPIO And Capture Data Every 2000ms
GpioController gpioController = GpioController.GetDefault();
gpioData = gpioController.OpenPin(intGpioData);
gpioData.SetDriveMode(GpioPinDriveMode.InputPullUp);
new Timer(new TimerCallback((obj) => { GetData(); }), null, 2000, 2000);
}
private static void GetData()
{
byte[] data = new byte[40];
gpioData.SetDriveMode(GpioPinDriveMode.Output);
gpioData.Write(GpioPinValue.Low);
Task.Delay(1).Wait();
gpioData.SetDriveMode(GpioPinDriveMode.InputPullUp);
//Record Data
while (gpioData.Read() == GpioPinValue.High) ;
while (gpioData.Read() == GpioPinValue.Low) ;
while (gpioData.Read() == GpioPinValue.High) ;
byte low;
for (int i = 0; i < 40; i++)
{
low = 0;
data[i] = 0;
while (gpioData.Read() == GpioPinValue.Low && low <= byte.MaxValue)
low++;
while (gpioData.Read() == GpioPinValue.High && data[i] <= byte.MaxValue)
data[i]++;
}
//Analyze Data
byte humiH = 0;
byte humiL = 0;
byte tempH = 0;
byte tempL = 0;
byte sum = 0;
for (short i = 7; i >= 0; i--)
{
byte bit = data[7 - i] >= 11 ? (byte)1 : (byte)0;
humiH += (byte)(bit << i);
}
for (short i = 7; i >= 0; i--)
{
byte bit = data[15 - i] >= 11 ? (byte)1 : (byte)0;
humiL += (byte)(bit << i);
}
for (short i = 7; i >= 0; i--)
{
byte bit = data[23 - i] >= 11 ? (byte)1 : (byte)0;
tempH += (byte)(bit << i);
}
for (short i = 7; i >= 0; i--)
{
byte bit = data[31 - i] >= 11 ? (byte)1 : (byte)0;
tempL += (byte)(bit << i);
}
for (short i = 7; i >= 0; i--)
{
byte bit = data[39 - i] >= 11 ? (byte)1 : (byte)0;
sum += (byte)(bit << i);
}
//Verify Data
if ((byte)(humiH + humiL + tempH + tempL) == sum)
{
double humidity = (double)(humiH * 256 + humiL)/10;
double temperature = (double)(tempH * 256 + tempL)/10;
Debug.WriteLine(humidity + "% " + temperature + "°C");
}
}
}
0
0
如果您使用的是C++,这里就是一个例子。 https://github.com/Microsoft/Windows-iotcore-samples/tree/develop/Samples/GpioOneWire
此外,如果你想坚持到C#,这是行不通的。今天我用了2个dht11传感器。
这是GitHub的链接: https://github.com/porrey/Dht
NuGet包: https://www.nuget.org/packages/Dht/
如果您熟悉C++,然后使用。如果没有,我推荐Nuget包,只是因为我证实它今天有效。 dht11传感器似乎有很大的差异。我在两个传感器上有3度不同。
相关问题
- 1. Windows物联网 - Raspberry pi
- 2. Windows 10物联网核心主机Web API ASP.Net核心。可能?
- 3. 设备在Windows 10物联网核心
- 4. Windows 10物联网Raspberry Pi rs485的可能性?
- 5. 构建Raspberry PI 2的DefaultApp - Windows 10物联网
- 6. Windows 10 iot部署到Raspberry Pi 3
- 7. Windows 10物联网树莓派2:DHT22/AM2302
- 8. Windows 10物联网核心GPU利用率
- 9. 物联网Raspberry Pi传感器标签
- 10. 赢10物联网:WindowsIoTCoreWatcher.exe不显示我的Raspberry PI设备
- 11. 使用RFID RC522 Library for Windows物联网核心
- 12. 使用Windows 10 IoT核心Raspberry Pi 2板载UART用于串行io?
- 13. 内置Raspberry Pi 3上的蓝牙Windows Windows物联网 - 找不到适配器
- 14. 的Windows 10物联网核心蓝牙支持覆盆子PI3
- 15. 物联网,覆盆子pi,Windows物联网
- 16. UWP在Windows 10物联网
- 17. Windows 10物联网核心虚拟键盘?
- 18. 单元测试c#Windows 10物联网核心应用程序(错误:DEP0700)
- 19. Windows 10物联网核心,共享SPI数据
- 20. Windows 10物联网核心 - UWP - 发送电子邮件背景
- 21. 的Windows 10物联网覆盆子3
- 22. 设置代理Windows物联网核心
- 23. Windows 10物联网核心闪存SD卡损坏
- 24. Windows 10物联网互联网连接共享
- 25. Windows IoT Raspberry Pi 3 C#GetDiskFreeSpace
- 26. Windows 8可以构建Windows 10物联网核心应用程序吗?
- 27. Raspberry Pi 3 OpenWrt
- 28. 的Windows 10物联网的ActiveX使用
- 29. 在Raspberry Pi上的Windows 10物联网UWP应用程序中使用ARM编译的DLL 2
- 30. 无法应用程序部署到树莓派3时,Windows 10物联网核心
虽然此代码可能会回答问题,但提供有关如何解决问题和/或为何解决问题的其他上下文将提高答案的长期价值。 – kayess