赞
踩
打开机智云开发者网页,点击‘马上注册’。
根据自己实际情况填写以下信息:
然后点击‘立即注册’即可。
然后登录注册邮箱,激活账户即可。
激活成功后,即可登录。
1.创建智能产品
登录进入开发者平台后即可创建产品。笔者这里使用的是新版,当然使用旧版也是一样的。
然后选择相应的产品。
笔者使用的‘移动网络’方案。
产品开发的第一步是定义产品的功能,一个数据点可以定义为产品的某个功能,如开关等。笔者选择‘去编辑’。
笔者下面定义了LED的数据点类型。
2.创建移动应用
进入首页,右上角创建,创建一个移动应用。应用包名需要唯一。
接着等待片刻即可。
根据自己喜好配置。
接着关联产品。
为产品添加控制页面。
然后构建应用即可。
等待构建完成即可下载。
构建完成之后扫描二维码即可下载安装到手机。
在没有实体之前,可以使用虚拟设备验证云平台。
登录APP后,扫描虚拟设备的二维码,即可添加设备。
然后就可以控制LED了。
选择‘MCU开发’中的独立MCU开发方案。
笔者这里选择是的硬件是stm32f103c8x,同时添加项目的Product Secret,然后就可以生成代码并下载了。
自动生成的代码已经根据用户定义的产品数据点信息,并针对 STM32、 ESP8266 等平台, 生成了对应的机智云串口协议层代码, 用户只需要调用相应的 API 接口或添加相应的逻辑处理即可。 代码框架如下图所示:
需要开发的部分为:
A. 下行处理: 例如 LED 灯开关、 电机转速控制等。
B. 上行处理: 例如温湿度数据采集, 红外传感器状态获取等。
C. 配置处理: 配置入网及恢复出厂设置。
接下来就进行设备开发。在开发之前需要安装开发环境,主要是安装Keil和STM32CubeMX。
Keil的安装笔者就不赘述了,网上资料很多。
关于STM32CubeMX的安装和使用请参看笔者博文。
1. STM32CubeMX配置
接下来打开STM32F103C8x.ioc,配置好相应LED。首先查看相应的电路图。
RGB灯分别接到MCU的PA9、PB8、PB9,因此需要配置这三个GPIO,配置生输出模式即可。
然后生成代码。
2.驱动文件编写
将官方demo中hal文件夹下的delay.h、delay.c、hal_rgb_led.h、hal_rgb_led.c文件拷贝到工程目录下hal文件夹。
然后打开Keil工程,将delay.c和hal_rgb_led.c添加到工程中。
当然啦,如果是自己的设备,这里就需要自行编写驱动文件。
3.修改代码
首先是初始化外设,在 Gizwits 目录下的 gizwits_product.c 文件中userInit()函数中。
修改前:
v
oid userInit(void)
{
memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));
/** Warning !!! DataPoint Variables Init , Must Within The Data Range **/
currentDataPoint.valueLED_OnOff = ;
*/
}
修改后:
void userInit(void)
{
memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));
delay_init(72); // 延时 初始化
rgbLedInit(); // RGB LED 初始化
/** Warning !!! DataPoint Variables Init , Must Within The Data Range **/
currentDataPoint.valueLED_OnOff = 0;
}
在 Gizwits 目录下的 gizwits_product.c 文件中的gizwitsEventProcess()函数中处理相应事件即可(如下例中的 ledRgbControl(),功能是控制 RGB 灯的颜色) 。
下面以控制 RGB LED 为例, 代码示例如下:
修改前:
if(0x01 == currentDataPoint.valueLED_ONOFF)
{
//user handle
}
else
{
//user handle
}
break;
修改后:
if(0x01 == currentDataPoint.valueLED_ONOFF)
{
//user handle
ledRgbControl(0,254,0);
}
else
{
//user handle
ledRgbControl(0,0,0);
}
break;
如果有其他的传感器设备,首先要完成的是传感器驱动开发,然后在 user 目录下gizwits_product.c文件中的 userHandle()函数中实现传感器数据采集,用户只需并将采集到的数值赋值给对应用户区的设备状态结构体数据位即可。
修改前:
void userHandle(void)
{
/*
*/
}
修改后:
void userHandle(void)
{
uint8_t ret = 0;
static uint32_t thLastTimer = 0;
///< 新添加代码: 温湿度传感器数据获取
if((gizGetTimerCount()- thLastTimer) > 2000) //上报间隔2S
{
//ret = dht11Read((uint8_t *)¤tDataPoint.valueTemperature,(uint8_t*)¤tDataPoint.valueHumidity);
//if(ret != 0)
//{
// GIZWITS_LOG(“Failedto read DHT11 [%d] \n”, ret);
//}
thLastTimer = gizGetTimerCount();
}
}
值得注意的是,关于驱动的头文件需要包含到gizwits_product.c中,请根据实际情况添加。
最后在main.h中添加相应的GPIO定义。
#define RGB_LED_EN_Pin GPIO_PIN_0
#define RGB_LED_EN_GPIO_Port GPIOA
#define RGBLED_CLK_Pin GPIO_PIN_8
#define RGBLED_CLK_GPIO_Port GPIOB
#define RGBLED_DIN_Pin GPIO_PIN_9
#define RGBLED_DIN_GPIO_Port GPIOB
当然啦,为了方便联网,需要在main.c 文件的 key2ShortPress( ) 函数与 key2LongPress( ) 函数中添加点亮LED代码。
void key2ShortPress(void)
{
GIZWITS_LOG(“KEY2 PRESS ,Soft AP mode\n”);
#if !MODULE_TYPE
gizwitsSetMode(WIFI_SOFTAP_MODE);
#endif
ledRgbControl(250,0, 0);
}
void key2LongPress(void)
{
//AirLink mode
GIZWITS_LOG(“KEY2 PRESS LONG ,AirLink mode\n”);
#if !MODULE_TYPE
gizwitsSetMode(WIFI_AIRLINK_MODE);
#endif
ledRgbControl(0, 250, 0);
}
最后编译下载固件即可,笔者使用的是ST-link下载。
当然也可使用串口下载,在下载前,需要准备好固件。
在Keil中,需要勾选输出HEX文件,然后编译即可。
接下来就是使用串口下载固件,方法如下。
将底板的开关拔到system。
打开串口烧录软件mcuisp.exe。点击‘开始编程’。
等待下载完成即可。
值得注意的是,不同的开发板,串口下载操作不同,请根据实际情况操作,笔者这里使用的是GoKit3。
烧录完成之后将开关拔回flash,复位模组,就可以正常运行程序。
GoKit3提供两种配置入网方式:AirLink、SoftAP。笔者这里使用SoftAP 配置入网。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-kHMQSDzZ-1712922116433)]
[外链图片转存中…(img-nlUPh3bj-1712922116433)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-ALBFozzF-1712922116434)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。