基于nb-iot和arduino的气象站(四)

基于nb-iot和arduino的气象站(四)综合

前几篇分开记录了气象站上的温湿度、紫外线、PM2.5、GPS传感器和NB-IoT模组的使用。

这一篇记录如何把所有硬件集成到一起。

一、硬件集成

设计了一块专用PCB电路板,连接所有硬件,避免了复杂的导线连接,电路板上所有元件紧凑排布,尽可能减小了设备体积;同时,我们设计了防水外壳。

基于nb-iot和arduino的气象站(四)_第1张图片

二、代码集成

前面几篇已经记录了单个传感器的示例代码。因此,在合并所有代码过程中,对于每个传感器的代码,基本上全部复制过来就行了。在loop函数中调用各个传感器的函数,然后将所有数据合并到一起,修改为NB模组要求的格式,通过NB模组发送数据,就结束了气象站硬件部分的工作。

点击我下载代码

在代码合并中遇到的一些问题

  1. 因为传感器比较多,arduino pro mini 的串口不够用,因此使用了软串口的方法。在代码中,PM2.5和GPS传感器数据的读取使用软串口。而arduino同时只能开启一个软串口,因此在loop中读取PM2.5和GPS之前,都要调用对应软串口的listen()函数。
  2. 因为GPS传感器大概以每秒一次的频率发送数据,如果以之前文章中记录的代码来读取GPS数据,很有可能会遇到数据读取不成功的情况。因此,修改了gpsRead函数,在调用时,先清空串口中内容,然后等待串口数据,最后再读取,这样就能保证读取成功。
  3. 有些时候遇到了问题却找不到原因,就加了delay语句,就神奇的好了。
  4. 在最开始遇到了arduino频繁重启的问题,是因为动态内存不足。

你可能感兴趣的:(nb-iot,物联网,arduino,传感器,硬件)