![]() video_1感谢电子发烧友,感谢润和软件,提供星闪派物联网开发套件试用。 本次试用计划:用星闪派物联网开发套件,先实现本地交通灯项目,接入WiFi连上云端,本地红绿灯状态上传云端,云端显示,云端远程控制红绿灯。 开发套件已收到:星闪派物联网开发套件x1,星闪派物联网开发板x1 开箱:套件中有:星闪开发板,5个模块,1个底板,1条数据线 单独的星闪派开发板: 全家福: 硬件组装:星闪派物联网开发套件,模块化、集成化,各功能模块已集成到小电路板上,通过底板互联,不同组合实现不同功能。 比如:
OLED显示模块百搭,显示传感器信息,红绿灯状态等 本项目使用星闪开发板+底板+红绿灯模块+OLED模块组合 软件开发环境搭建:参考海思社区gitee网页的方法: 链接:https://gitee.com/HiSpark/ 软件开发环境:windows 系统 创建工程,也参考上面海思社区gitee网页的方法 本地交通灯视频已调通红绿灯模块,OLED显示模块,实现本地红绿灯控制,OLED显示红绿灯状态,如文章开头视频 |
智能****交通灯本地控制逻辑的实现: 因为ws63 星闪派开发板运行的 RTOS 系统,本项目创建以下 6 个进程/任务实现红绿灯控制逻辑。系统运行时许如下 2,beep进程:收到按键按下信号,发出pwm调制的方波信号,驱动无源蜂鸣器响。 3,红绿灯进程:收到按键按下信号,切换红绿灯闪烁模式,一共有四种模式:红绿灯交替闪烁模式,黄灯闪烁模式,红绿黄灯全亮,全灭。四种模式循环切换 4,红绿灯交替闪烁子进程:依次点亮绿-黄-红,交替亮起,循环下去 5,黄灯闪烁子进程:黄灯闪烁 6,oled显示进程:把oled显示缓存写入oled模块,周期性循环刷新。 红绿灯主进程,和两个子进程,控制红绿灯模式,红绿灯开关,同时也会把模式,红绿灯状态信息写入oled显示缓存。Oled显示进程刷新后,oled实时显示模式和状态 |
智能交通灯,云端部分要实现的功能: 本项目,星闪派开发板不直接连接云端。 网络拓扑如下图: 通信数据流:
阿里云服务器到阿里官网开物联网服务器,开通等一会就能用: 打开实例,创建产品: 在产品下面创建设备: 编辑产品物模型: 这个主灯亮度模块,可以满足需求,选这个 稍后阿里云网关上传数据,上传到这里,下发指令,也用这个属性 |
阿里云网关阿里云网关,基于LinkSDK二次开发实现,怎么开发? LinkSDK 代码分析: 先初始化SDK 底层依赖,参数就是要自己实现的部分,是一些posix标准系统接口,如下 有内存相关接口,malloc,free, 有时间戳接口time 有休眠接口sleep 有网络接口init ,recv,send,deinit, 有随机数接口rand 有互斥锁接口init,deinit,lock,unlock 有mqtt接口setopt,establish 这些接口移植到自己平台实现,就可以把mqtt客户端跑起来,接入阿里云物联网平台了。 直接移植到星闪派也可以 本项目是把mqtt客户端部署到linux主机,当作阿里云网关。阿里云网关连接阿里云服务器,星闪派开发板再连接阿里云网关。 这里注册recv handle,接受回调函数,网关收到阿里云服务器下发的指令,会调用这个函数处理。 这里还注册了event handle,事件回调函数,主要是mqtt客户端保持心跳,断联,重连,会调用这个函数 函数 aiot_mqtt_connect,与阿里云服务器建立连接 创建两个进程,一个是g_mqtt_process_thread 进程如下,会遍历pub_list,发送消息 还有一个进程是g_mqtt_recv_thread,会遍历 sub_list 处理,调用recv_handle 处理数据 遍历了两个列表,处理数据。可是两个列表都是空的,肯定不会正常收发消息。 接着看以下两个函数 Aiot_mqtt_sub 函数最终把 node 插入到 sub_list 中,如下 186行 aiot_mqtt_pub 函数最终调用以下函数插入pub_list 列表 Mqtt 客户端框架基本理清。
LinkSDK本质是个mqtt客户端,和阿里云服务器mqtt服务器通信。 稍后基于linkSDK二次开发,实现阿里云网关和阿里云服务器双向通信 |
阿里云网关,开发和调试阿里云网关连阿里云物联网服务器,需要以下信息: 1,阿里云服务器网址,端口号:接入地址如下 2,阿里云设备证书: 3,修改LinkSDK 设备证书,mqtt 地址,端口号 4,如上文所说:调用aiot_mqtt_pub 发布消息,到阿里云服务器。实现云端查看状态 5,调用aiot_mqtt_sub 订阅消息,阿里云服务器下发指令,就能接收到了。并实现消息处理,收到数据做对应的动作,实现云端远程控制 6,LinkSDK 开发完成,编译不过,会报错,不是啥要紧的错误,改改 CFLAGS ,如下第四行,直接跳过去报错,继续编译完成,运行调试 运行调试: 查看网关log: 查看阿里云服务器: 云端远程查看状态实现。 云端下发指令: 阿里云网关收到以下消息: 阿里云网关收到消息,把交通灯设置好状态,把最新的状态再次发布到阿里云服务器。 查看历史数据一切正常: 云端远程控制实现。 阿里云网关和阿里云服务器之间,双向通信调通。 |
星闪派接入阿里云网关-1 星闪派要接入阿里云网关:
星闪派 WiFi作为 station 接入WiFi 路由器(AP),创建一个 WiFi 进程 WiFi 进程中初始化 WiFi,使能 WiFi,扫描 WiFi /ap 信号,找到要连接的 ap,连 WiFi,开启 dhcp客户端,获取 ip 地址。到此 WiFi 已经接入网络 以下是 wifi_task 进程连接 WiFi 路由器的log: 星闪派开发板获取到 ip是192.168.51.154,WiFi路由器网关配置信息,WiFi 连接成功。
同时在 oled 小屏幕上显示 WiFi 信息,ip 信息,server信息(阿里云网关信息,预留位置,稍后开发),WiFi/IP/server信息在同一个位置,流水显示,如下图片: WiFi 状态:有 init,connecting...,connected WiFi连接成功,稍后创建 socket 套接字,和阿里云网关通信 |
星闪派接入阿里云网关2基于上一篇,已经建立的WiFi 连接,创建 socket 套接字和阿里云网关通信。 星闪派和阿里云网关之间使用socket UDP 通信,代码如下: 星闪派发送数据代码: |
星闪派接入阿里云,调试星闪派>>> 阿里云网关 >>> 阿里云服务器:数据流 log 追踪: 星闪派发送数据log: 阿里云服务器>>> 阿里云网关 >>> 星闪派:数据流 log 追踪: 阿里云服务器下发指令log: 以上追踪双向数据流log,全部正常 星闪派智能交通灯,到云端,双向通信正常。本项目开发调试全部完成。 云端查看,云端远程控制视频如帖子底部 |
智能交通灯--云端查看,远程控制视频,如下链接:/jishu_2459800_1_1.html |
只有小组成员才能发言,加入小组>>
2243个成员聚集在这个小组
加入小组521 浏览 0 评论
HiSpark IPC AI摄像头(Hi3518E)串口能输入输出吗?
1112 浏览 1 评论
【星闪派物联网开发套件体验连载】使用Dockerfile搭建润和WS63E的开发环境
1851 浏览 1 评论
【星闪派物联网开发套件体验连载】用HiHope星闪server端BearPi星闪client端互相发代码控制对方板载灯
1749 浏览 0 评论
【星闪派物联网开发套件体验连载】用HiHope星闪server端发代码控制BearPi
1303 浏览 0 评论
12659浏览 10评论
2032浏览 3评论
1702浏览 2评论
1515浏览 2评论
1557浏览 2评论
电子发烧友网
电子发烧友开云(中国)官方