背景
了解一下物联网的现状和开发过程。
甲醛浓度传感器制作
硬件准备
为了简单便宜,考虑使用成熟而廉价的arduino, uno版本30块左右。
但是考虑到后续接入网络的方便,选择商家的套装,包含了各种传感器和传输辅助部件。
甲醛浓度传感器为了简单,选择可直接从串口上报数据的商品。
硬件连接也比较简单,传感器商家会给接线图,照着接就可以了,如下图。
注意传感器的Tx接到arduno的Rx,Rx接到Tx就可以了。
另外,如果物联网板子只有一个串口并且串口已经被用来做与pc机器之间的连接(例如我的这个uno),不要将传感器的串口直接对接到板子的串口上(可以使用其他通用针脚,然后用软串口机制来读取数据)。
否则会因为相互干扰出现很多莫名其妙的问题。例如程序烧写失败,传感器读不出数据等等。
软件
arduino软件开发环境很成熟,可以直接选择最方便的Web方式进行开发。
到https://create.arduino.cc/ 申请一个免费的账户,再到https://create.arduino.cc/getting-started/plugin/install 去下载连接uno的浏览器插件并安装,
然后启动插件(其实就是一个go语言编写的转发代理,安装后在桌面上有一个Arduino Create Agent 的图标可供快速启动)。
随后就可以进入https://create.arduino.cc/editor/ 的WebIde界面。
在这个主界面下,可以完成整套软件开发的过程,包括代码编写、编译、烧写,也可以查看串口的输出(和进行串口输入),如下图所示。
整个Ide界面比较直观,Example和Library中已经有大量代码,许多应用场景都有可以借鉴的示例。唯一个稍微有点隐晦的是,串口输入输出是在侧边菜单的Monitor中。
按照传感器厂商给出的说明,传感器的输出是8个byte的数据+1个byte的校验,可以使用如下的示例程序将传感器周期性上报的数据打印出来。
1 |
|
剩下的事情就是将收集到的数据上报到云端了,可参考https://create.arduino.cc/projecthub/133030/iot-cloud-getting-started-c93255 中的说明。这个步骤各个云供应商不完全一样,但是总体流程都差不多。大致都是需要将单板联网,然后将数据通过指定格式上报到云端,云端通过定义好的数据格式解析并展示。
总体感受
硬件
IOT的硬件成本已经比较低了。50块左右就能买到直接通过2g/4g网络连接到云端的物联网模块。通常IOT应用的数据量不大,数据流量现在也很便宜,所以持续维护的成本也不高。
软件
整个软件栈已经比较完整成熟了。大部分复杂的功能逻辑已经被很好地封装到厂商提供的API内了,并且从单板到云端都有大量示例可控借鉴。
甚至连商业模式都比较成熟了,如下图所示。arduino的收费模式设计得非常平衡,确保个人实验时可以访问绝大部分功能,感受到方便好用而愿意付费。而商业使用时又不太可能免费占便宜。
个人历程感受
纯软件开发做IOT应用,最困难和耗时的还是和硬件相关的琐碎部分。
本次体验中,分析和解决硬件串口冲突导致的各种问题(烧写失败,传感器无法输出)耗费了最主要的时间。其余的所有步骤总共加起来也没有耗费多少时间。