0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何移植爱星云的源码

安信可科技 来源:安信可科技 2024-01-07 11:10 次阅读

上次已经给大家讲了如何搭建中间件SDK(Ai-WB2-12F使用安信可中间件接入爱星云,远程点个灯——第一篇)。经过上次的帖子,小伙伴们想必已经完成一个新项目的添加,并使用WB2编译成功,今天讲如何移植爱星云的源码

在正式开始之前,先介绍一下设备上云的流程。

eff404f4-abb3-11ee-8b88-92fbcf53809c.png

VScode 启动

一、连接Wi-Fi
第一步是设备进入配网,在配网之前需要能够正式连接到网络。 先把项目中的“h1”和“h2”两个文件夹删除。

新建文件夹为“wifista”(文件夹名字根据自己喜好定义就行)

在wifista 新建连接Wi-Fi的.c 和.h 文件,名字自定义


连接Wi-Fi 主要写三个函数:

Wi-Fi 初始化函数

Wi-Fi 连接函数

Wi-Fi 断开函数


Wi-Fi 初始化函数:staWiFiInit()

eff8591e-abb3-11ee-8b88-92fbcf53809c.png

Wi-Fi 连接函数函数:staWiFiConnect(char* ssid,char* password)

f001af32-abb3-11ee-8b88-92fbcf53809c.png

Wi-Fi 断开函数:staWiFiDisconnect()

f00b89bc-abb3-11ee-8b88-92fbcf53809c.png

之后在Main.c 中调用之后就能实现连接Wi-Fi。

二、LED控制

RGB灯是开发板上唯一能过作为指示的器件,所以使用RGB作为网络指示灯是非常好的选择。设置以下状态:

网络未连接或者断开:绿灯快闪

网络成功连接或已连接:隔2s 闪烁一次

正在连接WiFi:1s 间隔慢闪

2.1创建源码文件
直接创建名为"LED" 的文件夹,然后在里面创建.c和.h 文件名字自定,这里用的是 led_dev.c 和led_dev.h。并且写几行基础的代码。 led_dev.c

f01ed710-abb3-11ee-8b88-92fbcf53809c.png

led_dev.h

f0282e1e-abb3-11ee-8b88-92fbcf53809c.png

2.2编写功能函数
后面也会使用这个库写受控灯的函数,暂且写网络灯的函数吧,一共有四个:

网络灯初始化函数,Ai-WB2-12F 的蓝色灯在IO3,并且创建闪烁任务

快闪状态 间隔100ms

隔2s 闪烁两次状态

500ms 间隔慢闪状态


网络灯初始化函数devLedNetWorkdInit(void)

f032939a-abb3-11ee-8b88-92fbcf53809c.png

这里其实只有每种状态指示延时时间上的区别而已,所以只需要在任务当中改变延时时间就行了。
网络灯状态处理任务,led_dev_run_task(void* arg):

f03d2f4e-abb3-11ee-8b88-92fbcf53809c.png

状态更新函数devLedNetWorkdChangeState():

f054a926-abb3-11ee-8b88-92fbcf53809c.png

2.3 调用状态更新函数
状态更新函数只需要在Wi-Fi 回调中的各个事件中调用即可,效果如下:

f060415a-abb3-11ee-8b88-92fbcf53809c.gif

三、按键读取
Ai-WB2-12F 开发板要进入配网,需要有个控制方式,开发板上的IO8按键正好可以使用,读取IO8按键,高电平长按2s 后进入配网。


按键初始化函数configButtomInit():

f07fa61c-abb3-11ee-8b88-92fbcf53809c.png

长按识别任务:

f08dcd1e-abb3-11ee-8b88-92fbcf53809c.png

其他进入配网的方式也可以自己去实现,只需要能够进入配网状态就行。

四、爱星云配网移植


按照惯例,先新建一个文件夹用来存放爱星云的移植文档,本贴使用“aiio_cloud”作为文件名,可以根据自己喜好创建,之后关于爱星云的源码都会放在该文件夹中。

在该文件夹中新建一个.h 用来声明爱星云的配置,比如产品信息,三元组等,这里命名为“cloud_config.h"。


爱星云的配网有两种:BLE 和AP配网,本贴主要介绍BLE 配网,BLE 配网主要有两个函数:

BLE 配网启动函数

BLE 配网停止函数

BLE 配网启动函数bleConfigStart()

f099838e-abb3-11ee-8b88-92fbcf53809c.png

BLE 配网回调函数:

f0a31d5e-abb3-11ee-8b88-92fbcf53809c.png

在回调函数当中,获取到了SSID、PASSWORD和MQTT 服务器地址以及其他的连接参数,打印出来之后,直接调用Wi-Fi连接,就能实现配网。

在Wi-Fi连接成功之后,停止调用配网函数就行。

说明:

此时因为没有连接爱星云,所以使用App 配网时会出现添加失败的提示,但是实际上Wi-Fi是连接成功的,只是没有连接爱星云而已。

五、其他内容

剩下的就是爱星云真正接入的部分,因为需要教大家比较多的东西,长话短说,直接做了一份基本连接的源码,大家根据基本连接的源码快速实现爱星云的连接。剩下的内容直接在源码README 中介绍,大家可点击查阅。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 移植
    +关注

    关注

    1

    文章

    377

    浏览量

    28108
  • wi-fi
    +关注

    关注

    14

    文章

    2107

    浏览量

    124315
  • 源码
    +关注

    关注

    8

    文章

    633

    浏览量

    29137
  • 安信可
    +关注

    关注

    0

    文章

    147

    浏览量

    3957

原文标题:Ai-WB2-12F使用安信可中间件接入爱星云,远程点个灯(2)

文章出处:【微信号:安信可科技,微信公众号:安信可科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RT-thread源码移植到STM32F10x和STM32F4xx

    RT-thread源码移植到STM32F10x和STM32F4xx: 一、源码下载 点击入门->下载   在历史版本里边随便选取一个   会进入百度云盘的下载地址,里边有全部版本的源码
    的头像 发表于 11-15 09:38 2412次阅读
    RT-thread<b class='flag-5'>源码</b><b class='flag-5'>移植</b>到STM32F10x和STM32F4xx

    如何移植FreeRTOS的源码

    参照正点原子FreeRTOS视频教程,首次接触操作系统,做笔记方便回顾目录如何移植1.复制粘贴2.工程添加3.路径添加4.将非源码文件添加和解决其他编译问题如何移植FreeRTOS的源码
    发表于 08-03 06:12

    ARM DSP源码和库移植方法

    第7章 ARM DSP源码和库移植方法(IAR8)本期教程主要讲解ARM官方DSP源码和库的移植以及一些相关知识的介绍。目录第7章 ARM DSP
    发表于 08-17 06:00

    DSP源码和库的移植

    第6章 ARM DSP源码和库移植方法(MDK5的AC5和AC6)本期教程主要讲解ARM官方DSP源码和库的移植以及一些相关知识的介绍。目录第6章 ARM DSP
    发表于 08-17 08:21

    如何移植FreeRTOS最简源码

    如何移植FreeRTOS最简源码
    发表于 11-29 08:00

    尚果农系统APP源码

    尚果农系统APP源码陈净▉l8l.48.9696.9.8电▉微同步, 尚果农软件定制开发, 好玩的尚果农app定制源码,
    发表于 10-18 16:17 552次阅读

    CANOpen系列教程14_协议源码移植 (二)

    CANOpen系列教程14_协议源码移植(二)
    的头像 发表于 03-06 15:06 5632次阅读

    CANOpen系列教程13_协议源码移植 (一)

    CANOpen系列教程13_协议源码移植(一)
    的头像 发表于 03-06 15:11 1w次阅读

    基于STM32移植UCGUI图形界面框架(3.9.0源码版本)

    基于STM32移植UCGUI图形界面框架(3.9.0源码版本)
    发表于 11-30 16:06 0次下载
    基于STM32<b class='flag-5'>移植</b>UCGUI图形界面框架(3.9.0<b class='flag-5'>源码</b>版本)

    HC32F460移植RT-Thread Nano+FinSh工程源码下载

    HC32F460移植RT-Thread Nano+FinSh工程源码下载
    发表于 01-05 10:30 6次下载

    W806单片机移植LVGL库例程源码下载

    W806单片机移植LVGL库例程源码下载。
    发表于 05-11 15:11 15次下载

    基于ucosii移植的点灯实验源码(带完整注释)

    基于ucosii移植的点灯实验源码(带完整注释),在STM32F407上实现ucosii移植并实现任务调度和点灯操作
    发表于 08-25 16:19 8次下载

    Ai-WB2-12F使用安信可中间件接入星云,远程点灯

    想必大家都看了很多关于星云的帖子,做嵌入式的同学肯定有这么个问题:星云很好,很厉害,可是我该怎么通过WB2或者M61/M62模组接入
    的头像 发表于 01-02 10:57 362次阅读
    Ai-WB2-12F使用安信可中间件接入<b class='flag-5'>爱</b><b class='flag-5'>星云</b>,远程点灯

    Ai-WB2-12F使用安信可中间件接入星云,远程点个灯(2)

    如何移植星云源码 。 在正式开始之前,先介绍一下设备上云的流程。 VScode 启动 一、连接Wi-Fi 第一步是设备进入配网,在配网之前需要能够正式连接到网络。 先把项目中的“
    的头像 发表于 01-08 17:18 607次阅读
    Ai-WB2-12F使用安信可中间件接入<b class='flag-5'>爱</b><b class='flag-5'>星云</b>,远程点个灯(2)

    使用星云配网失败了,我该怎么办?

    星云上线已经很久了,相信有使用过星物联APP的小伙伴在配网时一定遇到过各种问题,今天来看看怎么解决。 01、使用了5G网络进行配网,配网失败 解决方法:
    的头像 发表于 06-07 09:47 314次阅读
    使用<b class='flag-5'>爱</b><b class='flag-5'>星云</b>配网失败了,我该怎么办?