亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

树莓派的 DHT Tiny Breakout

硬件组件: Atmel ATTiny85×1DHT22 温度传感器×1DHT11 温湿度传感器×1SparkFun Tiny AVR 编程器×1Adafruit 4.7K Ω 电阻器×3Adafruit 10K Ω 电阻器×1Adafruit 100 Ω 电阻器×1Adafruit 漫射蓝色开关dafruit T×0A 按钮1Adafruit Breaway 1×0A ″ 36 针条形公头 1 件@长度 6,1 件@长度 2(共 8 针)×1Generic Jumper (0.1″)×1Arduino UNO &Genuino UNOOptional – 用于调试和测试。×1软件应用和在线服务: Microsoft Visual Studio 2015Microsoft Windows 10 IoT CoreArduino IDE

故事

简介

DHT11 和 DHT22 是流行的温度和湿度传感器,因为它们的精度和成本非常低。但是,它们的一个问题是它们通过需要精确计时的专有单线协议工作。事实证明,这些传感器很难在装有非实时操作系统的板上读取。

不久前,我发表了一篇题为“DHT11 /DHT22 温度传感器的文章 ”演示如何使用来自 C# 的 Microsoft C++ 示例代码来读取这些传感器。该库能够获得读数,但我必须添加重试逻辑以使其更可靠。事实证明,这对大多数人来说是成功的,但有些人在让它持续工作时遇到了问题。

鉴于在运行 Windows 10 IoT Core 的同时在 Raspberry Pi 上使用这些传感器的兴趣程度,我决定创建第二个选项,提供一种非常可靠的方法来读取这些传感器,同时仍然保持低成本。

概览

这里介绍的方法是将 DHT 传感器连接到便宜的 ATtiny85 并将其设置为 I2C 从设备。这是通过使用 TinyWireS 库并创建一组可以读取和写入以与设备交互的寄存器来实现的。

设备支持以下功能:

源代码

本项目共有三组代码。电路板的主要固件,一个 Arduino 主草图,用于在连接到 Arduino Uno 时测试和演示电路板,以及演示如何使用来自 Raspberry Pi 的设备的 Window 10 IoT 代码应用程序。所有代码都可以在链接的 GitHub 存储库中找到。

设备/电路

该电路很小,只使用了几个便宜的元件。 ATtiny85 可以从多个供应商处购买。我建议选择其中的一些,因为它们有很多有用的用途。

该电路有一个六针接头,可以将其连接到另一个电路或直接连接到 Raspberry Pi。引脚定义如下:

还有一个两针接头,可以添加跳线以启用或移除以禁用板载 LED。

在更大的项目中使用它时,DHT Tiny 的电路可以合并或嵌入到项目现有电路中。在这种情况下,接头引脚和 LED 是可选的。

该电路也可以构建在单独的板上,并通过几根电线或连接电缆连接到您的 Raspberry Pi。

编写 ATtiny85

加载名为 DHT_Tiny_Breakout.ino 的草图 使用 AVR 编程器连接到 ATtiny85。如果您没有程序员,您可以使用 Arduino Uno(或类似板)。查看下面列出的一篇或多篇文章以获得帮助。

我使用 SparkFun Tiny AVR Programmer 加载我的 ATtiny85。

我正在以 16 MHz 的频率运行我的芯片。请参阅我的文章“ATtiny @ 16MHz ”以获取有关如何执行此操作的说明。

<块引用>

使用 ATtiny85 时,从草图需要 TinyWireS 要安装在您的库文件夹中的库。这个库可以从 https://github.com/rambo/TinyWire 下载。

面包板电路

第一步是在面包板上启动并运行 DHT Tiny。按照项目中包含的原理图和面包板图,使用半尺寸面包板构建电路​​。

以下是一些有助于简化操作的提示:

下面是我的 DHT Tiny 面包板版本的一些图片。

连接Arduino Uno

如果您对快速测试、演示感兴趣,或者无法将其与 Raspberry Pi 配合使用,您可以将 DHT Tiny 连接到 Arduino Uno(或类似设备)。

加载并运行名为 DHT_Tiny_Master.ino 的草图 .此草图将在 串行监视器 中显示输出 .

在两块板之间连接 I2C 时,重要的是在 SDA 和 SCL 线上有上拉电阻。在这个电路中,有两个 4.7K Ω 连接在管脚和 5V 之间。

以下是连接到 Arduino Uno 的 DHT Tiny 面包板的一些图片。

连接到树莓派

如果您对快速测试、演示感兴趣,或者无法将其与 Raspberry Pi 配合使用,您可以将 DHT Tiny 连接到 Arduino Uno(或类似设备)。

在两块板之间连接 I2C 时,重要的是在 SDA 和 SCL 线上有上拉电阻。在这个电路中,有两个4.7K Ω连接在管脚和3V3之间。

<块引用>

非常重要! DHT Tiny 板将由 Raspberry Pi 上的 5V 引脚供电,但上拉电阻必须连接到 Raspberry Pi 上的 3V3 引脚(3V3 位于引脚 1 和 17)。

下面是连接到 Raspberry Pi 3 的 DHT Tiny 面包板的一些图片。

运行 Windows 10 应用程序

从项目底部的 GitHub 存储库链接中获取代码并将其解压缩到您的计算机。在 Visual Studio 2015 中打开通用应用程序源代码,然后将其部署到 Raspberry Pi 并从管理控制台启动,或者在 Visual Studio 中以调试模式运行。

如果这是您第一次为 Windows 10 IoT Core 应用程序从 Visual Studio 运行代码,请查看 Microsoft 的这些文章:

观看下面的视频演示,了解在连接到 DHT Tiny 的情况下在 Raspberry Pi 3 上运行的应用程序。

应用亮点

Windows 10 UWP 应用程序是一个演示应用程序,展示了 DHT Tiny 的所有功能。该代码将显示设备的当前温度、湿度和其他寄存器值。 UI 还提供了一种更改设备配置(包括设备地址)的方法。

DHT 微型图书馆

示例代码使用为与 DHT Tiny 交互而编写的库。该库随时可用,可以直接包含在您的所有应用程序中。

从 NuGet 获取库

如果您不想将项目直接包含在您的应用程序中,只需使用下面显示的命令从 NuGet 下载 DHT Tiny 库。在 Visual Studio 中打开包管理器控制台并键入命令。

PM> Install-Package IoT.DhtTiny 

为设备扫描 i2c 总线

DHT Tiny 库包含一个方法,该方法将在 i2c 总线上搜索任何 DHT Tiny 设备并返回地址列表。此列表可用于初始化一个或多个找到的设备。这在您更改了设备地址但不记得您设置的地址时特别有用。注意回调方法是可选的。

// ***// *** 枚举 i2c 总线上的 DHT Tiny 设备。// ***IEnumerable address =await DhtTiny.FindAllDhtTinyAsync(this. FindAllDhtTinyCallback);// ***// *** 回调方法// ***private void FindAllDhtTinyCallback(I2cScanEventArgs e) { int percentComplete =(int)((double)e.CurrentIndex / (double)e.Total * 100.0d); this.Status =string.Format("定位设备 [0x{0:X2}] [{1}%] [Found ={2:##0}]...", e.CurrentAddress, percentComplete, e.Items .Count());}  

树莓派 DHT Tiny Breakout 示意图

软件演示

该视频演示了在连接到面包板上 DHT Tiny 的 Raspberry Pi 3 上运行的通用应用程序。

[视频即将推出]

创建最终设备

创建电路板的最简单、最具成本效益的方法是使用 PCB 原型板,例如来自 Adafruit 的 Perma-Proto Quarter-sized Breadboard PCB。下图显示了使用该原型板的突破。注意我用dremel取下电路板的电源导轨部分。

查看更多:树莓派的 DHT 小突破


制造工艺

  1. Raspberry Pi 上的温度监控
  2. Raspberry Pi 2 气象站
  3. Raspberry Pi 上没有模拟输入的模拟传感器
  4. 树莓派上的 HC-SR04 超声波距离传感器
  5. Raspberry Pi 的最佳配件
  6. 使用 MCP3008 的 Raspberry Pi 上的模拟传感器
  7. SIGHT:For the Blind
  8. Qwiic HAT for Raspberry Pi 连接指南
  9. Windows 10 IoT Core for Raspberry Pi 3 Model B+
  10. 构建 MonkMakes Raspberry Pi 机器人套件
  11. PiCy – 微型树莓派动力机器人!
  12. 医疗器械 OEM 面临的 4 大挑战