一、前言
此开源小项目纯属个人需求突发奇想,适用于以下场合:
1.需要获取室内温湿度、空气质量;
2.需要远程获取;
3.室内没有电源,没有wifi热点;
基于以上3个需求,指定了以下方案:
1.温湿度采集使用DHT11传感器,空气质量使用SGP30传感器;
2.远程获取,需要搭建云服务器,刚好双十一花50买了个linux百度云服务器,正好可以在这上边写server端;同时,为了方便远程获取数据,基于QtforAndroid编写手机APP,只要能上网,即可通过TCP/IP连接至云服务器拉取数据;
3.没有电源的解决方案是采用18650锂电池+太阳能板供电的方式,硬件设计和软件处理均要考虑低功耗;没有wifi热点,还想连接TCP/IP,只能选择2G、4G、NB-IOT之类的模组,其中NB-IOT非常适合这个场合,但考虑到太贵了=_=,最后选择了有方N10的2G模组。
====2021年7月更新=
由于搬家了,于是乎设备有了wifi热点可以用,于是乎又做了ESP8266的支持,通过修改宏定义即可完成GPRS和ESP8266的切换。
二、通过此开源项目能学到什么
利用业余时间,基本按照项目级的编程思路对云服务器、设备、手机程序进行编写,层次分明模块化较好。
一开始在裸机下采用<分时段执行>方法进行程序编写;后来又添加了操作系统版本,移植了FreeRTOS操作系统。
其中设备端利用手头上的STM32F103C8T6核心板作为MCU,对于各传感器、各外设的编写均符合项目级的可移植性。
总结一下,通过本开源项目,大家可以学习到以下几点:
1.基于linux的云服务器TCP/IP网络编程;
2.基于linux的数据库操作;
3.自定义的工业通讯协议;
4.项目级的监测模块程序设计;
5.裸机、操作系统下的程序实现方法;
6.Qtf

本项目为一款物联网环境监测系统,采用DHT11和SGP30传感器收集温湿度及空气质量数据,并通过2G模组或ESP8266发送至自建云服务器。手机APP可通过TCP/IP协议从服务器获取数据。
最低0.47元/天 解锁文章
3137

被折叠的 条评论
为什么被折叠?



