最终效果:
传输过程偶尔出现urllib.error.URLerror:urlopen error errno -3 temporary failure in name resolution 的问题 设置静态IP和DNS解决 参考http://www.mamicode.com/info-detail-2549054.html
# 出现 http.client remotedisconnected:remote end closed connection without respone原因:太频繁和onenet通信,被onenet认为是爬虫,被关闭远端连接,重新运行即可
dht11自己在树莓派操作RPi.GPIO读取的时候时不时有错误数据,就用了一个现成库
hum_temp, tem_temp = Adafruit_DHT.read_retry(11, 23) # 参数里面 11是指DHT11 23 指gpio23 在树莓派上是pin16
有需要全部工程文件的三连(滑稽)后可以私聊我,目前不方便放出来(失业找工作期间接的毕业设计,担心客户查重过不了)
工程文件程序用python编写,python解释器是3.7,硬件在树莓派运行,PC端编译运行环境PyCharm Community Edition 2020.3.3 x64
主要功能:
检测声音,声音传感器输出有人无人对应的高低电平,在上传onenet的一个周期内只要有一次声音就判定整个周期有人,否则在上传瞬间检测声音,电平太快几乎检测不到,受限于树莓派没有找到类似单片机的引脚触发中断功能,单开了一个线程实时检测电平;
检测温湿度DHT11,检测光强度BH1750,将数据以http方式上传到onenet;
同时把数据带上当前时间戳保存到本地某路径下的txt里面
开了两个定时器,一个保存本地,一个上传数据;两个线程,一个检测声音,一个处理数据
onenet平台同时发布一个应用,一般审核要3个工作日,审核过,把apikey输入到创思onenet助手在手机端查看数据