在ARDUINO上使用DHT库采集DHT22温湿度传感器的数据

DHT22使用的是单总线的设计,利用高电平时间长短表示1和0,这样的设计简化了外部接口,Arduino官网的项目多是采用DHT.h这个库来采集数据,这个库是Adafruit开发的众多库中的一员。

如果只安装DHT库,编译会报错,因为这个库依赖Adafruit Unified Sensor 库。

安装好了库之后从DHT库下载一个简单的DHTtester示例就可以从串口看到温湿度的数据了。

 

如果你使用的是DHT11,只需要取消#define DHTTYPE DHT11的注释,添加#define DHTTYPE DHT22 的注释就可以了。

在ARDUINO上使用u8g2驱动SSD1306LED显示器

我原来用u8glib进行开发,本着有新的用新的的原则,换用u8g2试一下,u8g2支持的主控很全,函数和很强大,只是耗费内存很多,多添加几个字体库可能内存就不够用了,但是奈何字体都那么漂亮。小应用还是可以用一下的。

U8g2在github的地址是https://github.com/olikraus/u8g2,手册还是比较全的。

我用的是国产的arduino的板子,显示器直接不知道牌子,只知道是SSD1306的主控和12864的分辨率。

对于不同的显示器,u8g2使用不同的构造器来区别,只需要到github的参考页面找到合适的构造器构造一个控制对象,就可以轻松控制自己的LED显示器了。

参考https://github.com/olikraus/u8g2/wiki/u8g2setupcpp#introduction的介绍,将构造器改成合适的U8G2_SSD1306_128X64_NONAME_1_4W_SW_SPI,按照参数指定的阵脚连接杜邦线。编译下载就可以看到Hello World! 的字样了。

我的这款显示器比较奇葩,时钟线标注的是D0,数据线标注的是D1,刚拿到显示器的时候还不是很明白SPI总线,让这个标注搞得一脸懵逼。