
前情
惬意下午,阳光暖暖,清理杂物的时候找到台吃灰已久的树莓派,想要拿来做点小东西。于是想到利用它来做环境监测,把家里的温湿度收集起来,然后传到同样在吃灰的阿里服务器,最后用前端页面展示出来
Perfect~!
所以想到了以下需求:
- 树莓派每小时收集一次温湿度,然后上传到服务器
- 服务器接收环境信息,存储到数据库里面
- 后端提供三个Get请求接口,以提供一天内、一周内以及最新的环境信息,提供一个Post请求接口,以接收树莓派传过来的数据
- 前端展示最新收集的环境信息,使用图表展示一天内、一周内的环境信息变化波动图
需求不多,但怎么算也是个软硬件结合,前后端结合的小工程,想想还有点小兴奋呢,嘿嘿嘿😜!
前期准备
硬件准备:
- 树莓派3B
- DHT11温湿度传感器(后升级为更精准的DHT22)
- 杜邦线
软件准备:
- VSCode(code)
- FileZilla(传文件到pi)
- iTerm(ssh)
树莓派读取传感器数据
这篇教程讲得灰常详细,推荐查看
传送环境数据到服务器
在Adafruit这个工程底下有个example,修改一下simpletest.py, 加入我们的Post请求,即可。
使用pip导入requests库:
1 | pip install requests |
然后发起Post请求即可:
完成从树莓派到服务器的请求
存储到数据库里
后端选择了Go语言,同时选择gin作web框架,gorm做数据库框架,即可完成上述需求。
前端页面进行展示
前端选择React、BizCharts框架进行搭建,具体过程就不过多赘述。
最终效果可点击以下链接:
总结
未来要做的需求:
- 1.利用爬虫抓取天气预报,很多时候,我们急切想知道的是未来,而不是过去
- 2.过去可以给我们预知未来的勇气,所以想要通过深度学习,结合过去的天气,预知未来的天气。当然了,这肯定没有通过云图观察来的那么准确,就当作入门深度学习
其实整合起来以上所有的流程,就是一条完整的IoT物联网产业链,对,产业链,每个环节都可以做成一个商业化的产品。例如传感器这块,就已经有了米家的温湿度传感器。后台这块,就已经有了阿里云物联网平台,以接收不同平台不同设备上传上来的数据,做成SaaS平台(服务云平台),硬件厂家无需开发后台,使用第三方现成的SaaS平台,即可对接自家的硬件,实现万物互联。在前端(客户端)展示这块,小米的米家还有苹果的HomeKit,都是体验还有互联非常棒的产品。
Q&A
Q: 既然都有成熟的产品,那为什么自己还要做一套呢?
A: 市场上确实有完整的产品,花个几十块钱就能买个传感器,提供完整的功能。而动手去做,可以体验实现每个流程带来的成就感,从硬件读取数据,从硬件传输数据到服务器,再到前端从服务器获取数据,每个细节都有优化的空间,新的想法也在这过程中闪现,是个非常不错的体验过程。
Q: 接下来想做点什么好玩的东西?
A: 利用这个吃灰的树莓派,做一个AirPlay音箱、做一个复古游戏机(安装模拟机)、做一个智能音箱、做一个HiFi音箱、bala bala …
原创不易,转载请声明~~!