基于TencentOS tiny开源项目的实践--从零开始快速打造IoT小应用

  • TencentOS tiny 开源项目介绍
  • TencentOS tiny IoT解决方案
  • TencentOS tiny 开发实践
展开查看详情

1.云+社区技术沙龙

2.基于TencentOS tiny开源项目的实践 从零快速打造IoT小应用 叶丰 腾讯TEG云架构平台部系统研发中心工程师

3. 目录 1 2 3 4 TencentOS tiny TencentOS tiny TencentOS tiny Q&A 开源项目介绍 IoT解决方案 开发实践

4.TencentOS tiny项目背景和简介 生活物联 智慧城市 公共事业 智能制造 智慧能源 物联网开发平台 IoT Explorer 低功耗广域物联服务 边缘计算服务 物联安全服务 TencentOS Tiny是腾讯开源的面向物 腾讯IoT LPWA TID 物联卡 物联网市场 联网领域的精简实时操作系统 服务 全栈产品 IoT Link IoT Market 矩阵 物联网通信 IoT Hub • 腾讯物联网产品矩阵底层的关键一 物联网操作系统 环,为云侧海量数据平台引流 TencentOS Tiny • 降低开发门槛,提升开发效率,助 力物联网终端设备及业务快速接入 腾讯云物联网平台 腾讯物联网全栈产品矩阵

5.TencentOS tiny产品架构 简化物联网终端开发,助力业务快速上云

6.TencentOS tiny开源生态和影响力 TencentOS tiny 于9月18日正式对外开源,发布1周上github全网开源项目热榜排行第2名, 目前获得star 3500+,fork 800+,微信群/QQ群技术群吸引开发者数量超过1000,取得了良好的行业影响力。目前支持硬件平台数量超50+,覆 盖IoT主流应用场景。 STM32全系列 NXP Kinetis/LPC系列 华大半导体 Nordic蓝牙系列 兆易GD32/GD32V 国民技术N32系列 TI MSP系列 瑞兴恒方LoRa模组 TencentOS tiny定制板 https://github.com/Tencent/TencentOS-tiny 更多硬件平台持续支持中…

7. 目录 1 2 3 4 TencentOS tiny TencentOS tiny TencentOS tiny Q&A 开源项目介绍 物联网解决方案 开发实践

8.TencentOS tiny解决方案--智能货柜 用户 开通免密支付 设备和用户身份识别 业务后台 智能货柜 开门 IoT私有云 扫码 1 刷卡、NFC 上报开门前照片 业务管理系统 开柜 智慧零售平台 生物识别 上报关门后照片 AI识别系统 取货,关门 微信支付接口 2 边缘计算 取货 云端识别购买商品 视觉识别 重力感应 3 RFID识别 自研物联网模块 结算 TencentOS tiny 支付账单 自研物联网主机 结算

9. TencentOS tiny解决方案--iGrow智慧种植方案 IoT云平台 决策算法 客户端调控 多方案网络适配,安全链路 TencentOS tiny多方案网络适配,支持 WiFi/NB-IoT/Lora链路全加密、保证数据安 全 温室调节指令 部署边缘计算、预测性维护,保障 IOT终端 IoT终端 端侧正常运行 调节控制侧 环境感知侧 温 酸 含 补 水 换 CO2 湿 碱 氧 光 光 肥 气 度 度 量 照 灯 机 扇 低功耗 低功耗广域网技术,TencentOS tiny 极致超低功耗管理 基础设施(网络、电、水等)

10. 目录 1 2 3 4 TencentOS tiny TencentOS tiny TencentOS tiny Q&A 开源项目介绍 IoT解决方案 开发实践

11. 实践内容:实现一个农业场景的端到端IoT小应用 小程序 ➢ 环境感知 温度 湿度 云函数 光照强度 云开发 云API SDK ➢ 设备控制 灯 电机(风扇) 腾讯云物联网平台 云API IoT Hub ➢ 端云对接 云 模组联网 数据上云 设备(开发板) IoT SDK ➢ 小程序&云开发 TencentOS tiny 采集 控制 环境状态查询 远程设备控制 温度,湿度,光照强度 灯,电机

12. 实践准备:TencentOS tiny 定制开发板 传感器扩展板 通信模组扩展板 TenentOS tiny定制开发板 ( E53_IA1) (ESP8266 WiFi) 灯 小电机 GPIO AT指令 I2C 温湿度传感器 光照强度传感器 DHT11 BH1750 MCU: STM32L4 80MHz, 256K Flash, 64K SRAM

13.开发实践:HelloWorld ➢ TencentOS tiny 启动流程 chip reset board_init() tos_knl_init() tos_task_create() tos_knl_start() ➢ TencentOS tiny 任务创建流程 编写任务函数,业务逻辑 配置任务优先级、任务栈大小 支持使用ARM接口标准(CMSIS)创建任务

14.开发实践:基于实时操作系统RTOS开发的优势 ➢ 传统嵌入式开发 ➢ 基于RTOS开发 • 采用大循环/状态机的方式:顺序执行,无法满足实时性 • 多任务:高优先级抢占式调度保证实时性 • 采用中断的方式:可以满足实时性,但业务逻辑复杂化 • 享受异步同步机制:互斥锁,信号量,事件,队列 • 享受更多的组件和框架:KV存储,低功耗框架,OTA ... • 业务逻辑松耦合,减少开发工作量

15.开发实践:模组通信框架介绍 ➢ 基于模组通信的方式 MCU AT指令 通信模组 (业务逻辑) (网络协议栈) A AT适配框架 P • 好处:应用层开发,不用关注的复杂的网络协议栈, APP 聚焦于业务逻辑 • 问题:新模组的适配的过程没有一个统一的标准,面 简洁统一的类Socket接口 向业务的通信接口也没有统一的约定 SAL interface connect, send, recv ➢ 开发板esp8266 WiFi模组通信示例 Driver based AT 基于AT框架编实现模组驱动适配 $ AT+RESTORE 模组复位 AT framework 实现MCU和模组异步收发的通用 OK 交互逻辑 $ AT+CWMODE=1 设置station模式 HAL(uart) OK $ AT+CWJAP=“iottest”,“iot12345“ 连接AP WIFI CONNECTED 适配多种通信模组:wifi,NB- $ AT+CIPSTART=0,"TCP","45.40.201.56",8080 通信模组 iot,LoRa … 0,CONNECT $ AT+CIPSEND=0,5 数据发送 OK > $ 12345 AT适配框架屏蔽了通信模组复杂的数据流处理逻辑,为应 SEND OK 用开发提供简洁统一的接口 +IPD,0,11,hello world 收到数据

16.开发实践:设备联网 使用SAL接口实现设备联网 接口抽象:替换成其他通信模组,业务 逻辑不用修改 接口简单:网络开发使用简单的类似 Socket接口(connect, send, recv),无需关 注底层串口通信细节

17.开发实践:端云对接 腾讯云 | 物联网通信平台 腾讯云 | 其他服务 端云对接流程 云API 控制台 云数据库 ➢ 云侧:腾讯云物联网通信平台配置流程 1.登录控制台 设备影子 规则引擎 云函数 2.创建产品 3.添加新设备 消息管理 消息队列 4.配置主题权限 权限管理 设备管理 5.获取设备信息和密钥 … 设备接入 IoT Hub 大数据处理 ➢ 端侧:TencentOS tiny IoT SDK配置 1.配置云侧信息:产品,设备,MQTT主题信息 MQTT, CoAP 2.业务逻辑开发:基于物联网通信组件IoT SDK编写 网络收发逻辑 MQTT/CoAP/LoRaWAN/… SAL组件 AT适配框架 TencentOS tiny IoT SDK集成了主流的物联网协议 WIFI/NB-IoT/LoRa/GPRS/… 栈(如MQTT/CoAP/LoRaWAN/NB-IoT),终端设 TencentOS tiny IoT SDK 备可以快速接入腾讯云物联网平台

18. 开发实践:小程序&云开发为IoT应用带来的价值 设备能力 轻便灵活 降低成本 云资源 • Serverless:无需搭建服务 • 提供基础能力:云数据库,云存 • 蓝牙/BLE: 蓝牙配网 • 易传播,无需安装 器即可使用云端能力 储,云函数 • WiFi • 触手可及,用完即走 • 免去域名注册及备案等流程 • 弹性伸缩,天然CDN 加速 • NFC • 快速上线和迭代 • 开发简单,学习成本低 • 原生集成微信SDK,微信开放 • iBeacon • 跨平台 • 按量收费 接口免鉴权 • 扫码 • …. • … • 腾讯云API开箱即用,免去接口 • …. 开发 • … 小程序&云开发依托微信提供的设备能力,以及腾讯云提供的云端资源,可 以助力物联网应用高效,低成本的上线和迭代

19.开发实践:开始实践 设备端开发 ➢ 获取源码 https://github.com/Tencent/TencentOS-tiny ➢ 编译环境 当前支持KEIL(MDK)、IAR、GCC ➢ 实践案例工程 .\board\TencentOS_tiny_EVB_MX\KEIL\ sensor_e53_ia1_e2e_demo 小程序&云开发 ➢ 开发环境 云开发环境集成在小程序开发者工具 ➢ 小程序案例工程 https://github.com/Tencent/TencentOS-tiny/tree/master/tools/Mini_Program ➢ 实现云函数 借助腾讯云API 3.0 Explorer的提供的自动生成API SDK代码生成能力,免去了接口开发和 调试工作

20.提问环节 Q&A

21.T HANKS 关注云加社区公众号