阿里云IOT物联网终端设备代码简介
时间:2023-03-04 14:00:00
零、介绍
合肥万物网科技有限公司支持阿里云IOTC代码库的通用终端设备。硬件方案是STM32 CAT1 WIFI BT,可通过CAT1或WIFI连接到阿里云IOT。gitee地址https://gitee.com/allthingonline/aliyuniot-device-platform-freertos
一、概述
ATOL_DC10是万物以网开发的阿里云IOT物联网通用的终端设备,建设了完整的硬件平台和软件平台。在后续开发中,可以在硬件和软件平台上进行相应的业务开发。欢迎您从中学习或使用,并承担各种物联网开发。如任何建议或问题可以联系个人微信【allthingonline】,CSDN【万物以网】代码中的具体业务和实现将逐步进行CSDN展开介绍。
测试数据:
- 20台ATOL_DC连续6个月在线,平均每台设备掉线4次,然后立即重连。
- 20台ATOL_DC连续6个月在线,每分钟定期上传数据,至今无数据丢失。
二、硬件结构
- MCU
STM基于32系列的当前代码STM32F1xx,继续更新STM32F4xx,STM32Gxx。 - CAT-1 通信模块
目前支持移远ECxx系列,例如EC200S、EC200U、EC600S等等,也兼容CAT-4模块,例如EC20。 - WIFI 通信模块
当前支持上海庆科MX3080年,乐信和安信可将得到后续扩张的支持。 - 蓝牙模块
目前支持汇承全系列。 - MP3播放模块
语音播放模块支持串口接口。 - RS485总线
目前电路板上没有隔离,在实际开发中会根据具体情况增加隔离。 - CAN总线
目前电路板上没有隔离,在实际开发中会根据具体情况增加隔离。 - 电力载波模块
参考ATOL_L10E支持三相电力载波通信的设备。 - DI DO AI
4路 DI,是4路光耦输入电路。
4路 DO,是4路继电器输出电路。
2路 AI,是2路ADC支持普通电压采集和4-20ma信号采集。 - 定位模块
使用通信模块内部GNSS或者增加GNSS支持北斗支持北斗&GPS。单频普通定位精度(10米级)和双频差分高精度(cm级)可以做到。 - 其它外设或芯片
例如SPI的RN8206计量芯片,I2C的OLED屏幕等。
三、软件架构
1)概述
使用了这个版本RTOS系统,FreeRTOS这几年涨势非常明显,除了免费。选择代码FreeRTOS,堆栈选择heap4。整个软件结构分为kernel、firmware、thread、service等四层,可以理解为从下到上的叠加关系service层中需要执行的业务是下层的组合关系。统一设备型号之间的底层硬件或数据操作,减少开发工作量。
2)宏控
在all_head.h在第一个文件中,增加设备宏控制,以选择所需的硬件外设。此外,还有通信方式的宏控制,可以通过选择不同模块制造商的宏控制直接调用相应的硬件外设和固件。
3)kernel层
- kernel_usart1-3,使用DMA,接收数据后存入串口MQ与数据消费者解耦。
- kernel_uart4,使用DMA,蜂窝通信专用串口也可以修改为其他串口,但不推荐。
- kernel_uart5,DEBUG串口,输出系统运行信息。
- kernel_watchdog,硬件看门狗。
4)firmware层,可以理解为固件层或者是某个外设的驱动层,是能实现硬件的基本操作和控制的,能提供给上层的数据控制接口。
- firmware_gpio,引脚的AI DI DO定义及相关控制。
- firmware_led,指示灯,提供数组控制灯闪烁。
- firmware_rs485,在这里增加485的控制,使能引脚在收发中。
- firmware_flash,STM32的FALSH是按照片区操作的,经过封装之后可以提供按照non flash类似函数。
- firmware_mp三、串口语音播放外设串口接口,包装相关协议。
- firmware_bluetooth,除串口通信外,蓝牙通信接口还包括在汇承蓝牙中KEY控制引脚。所以没有放在那里kernel层。
5)thread层,这是实现某一类型业务的线程,在另一个状态机版本(没有rtos)在软件中,该层的实现不是建立线程。
- thread_4g_comm_init,4G连接阿里云的通信模块初始化和线程只在初始化时执行,执行完成后未挂起。
- thread_bluetooth,协议分析和蓝牙数据业务。
- thread_state_machine,状态机线程读取状态机MQ执行相应的业务。
- thread_decoder,数据解码业务,读取串口4的接收MQ,和阿里云分析IOT不同模块制造商对通信的相关数据有不同的指令。可在宏控中设置。
- thread_encoder,根据需要发送的数据合成数据编码业务AT不同模块制造商的指令不同。可设置在宏控中。
- thread_timer,时间线程可以在特定时间计时并触发相关状态。这个版本没用RTC。
- thread_wifi_init,wifi模块的初始化线程。
6)service层,这是不同类型的具体业务层,包括各自的具体逻辑业务、数据解码编码、外设控制等。这里就不解释了。
四、应用场景
硬件和代码充分考虑了主流的物联网接入模式和主流的制造商平台,可以根据客户的需求快速开发相关业务。以下产品功能已实现:
1)工业现场类
- 工业现场的DTU设备
以现场总线为例RS485、RS422、RS232.电力载波,CAN与私有云连接等数据,支持TCP\UDP、MQTT云的方式DTU内部可以集成modbus协议或私有协议。 - 工业现场控制设备和数据采集设备
包含DTU同时,功能可以打开DI DO AI等外设接口,也可以在设备中增加逻辑控制业务。 - 数字工厂通过嵌入将工厂的控制器、执行器、收集器、传感器等数据上传到云中,建立完整的工厂监控和数据挖掘云平台。
2)日常生活
- 汽车,自行车控制器
- 数字农业,将农业中的传感器、执行器等数据嵌入到云中,建立农业养殖和种植的全生命周期管理。
- 通过边缘计算和云平台大数据挖掘,电气安全监测和预警可以分析电气设备和线路的历史可追溯性和小颗粒数据,并将预警提前1-6个月。
- 接入阿里智能,阿里云生活平台,提供阿里智能APP,主要面向智能家居。
- 接入天猫精灵,主要面向智能家居。
最后,联系我们
合肥万物网科技有限公司-物联网全栈开发专家
微信【allthingonline】