智能家居(二)
本文旨在讨论DHT11温湿度模块以及CSI监控摄像投的使用。
CSI摄像头
实物图
安装程序包,修改配置
修改/boot/config.txtcamera-auto-detect=1修改为camera_auto_detect=0追加dtoverlay=imx219sudoraspi-config(打开摄像头配置)sudoaptupdateaptinstallcmakelibjpeg8-devlibv4l-dev-ywgethttps://github.com/Five-great/mjpg-streamer/archive/master.zipunzipmaster.zipcdmjpg-streamer-master/mjpg-streamer-experimental/make&&makeinstallvoide*驱动使用如下修改start.sh./mjpg_streamer-i"./input_uvc.so"-o"./output_http.so-w./www"vhciq驱动使用如下修改start.sh./mjpg_streamer-i"./input_raspicam.so"-o"./output_http.so-w./www"chmod+xstart.sh./start.sh测试192.168.102.99:8080截图wgethttp://192.168.102.99:8080/?action=snapshot-O./image_06051629.jpgDHT11
实物图
参数
参数名称参数工作电压3.3V-5.5V湿度测量范围20%-95%(0℃-50℃范围)湿度测量误差±5%温度测量范围0℃-50℃温度测量误差±2℃时序图
完整通信时序图
初始化时序图
0信号时序图
1信号时序图
demo:
编写程序测量室内温湿度,并打印结果。
代码示例:
#include#include#include#defineDHT0unsignedlongdata;intcount=0;voidinit_dht11(){pinMode(DHT,OUTPUT);digitalWrite(DHT,HIGH);digitalWrite(DHT,LOW);delay(25);digitalWrite(DHT,HIGH);pinMode(DHT,INPUT);pullUpDnControl(DHT,PUD_UP);delayMicroseconds(30);}intread_data(){inti,j;init_dht11();if(digitalRead(DHT)==0){while(!digitalRead(DHT));for(i=0;i>8)&0xff)>24)&0xff,(data>>16)&0xff);printf("TMP:%ld.%ld ",(data>>8)&0xff,data&0xff);count=0;}else{count++;if(count>5){printf("data: ");printf("RH:%ld.%ld ",(data>>24)&0xff,(data>>16)&0xff);printf("TMP:%ld.%ld ",(data>>8)&0xff,data&0xff);}}}else{continue;}delay(2000);data=0;}}intmain(){result();return0;}结果示例: