2024年《物联网 - 机智云开发笔记》第1章 机智云平台快速入门(2),2024年最新小码农也有大梦想

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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\*)&currentDataPoint, 0, sizeof(dataPoint_t));
	
    /\*\* Warning !!! DataPoint Variables Init , Must Within The Data Range \*\*/ 
currentDataPoint.valueLED_OnOff = ;
\*/
}

修改后:

void userInit(void)
{
    memset((uint8_t\*)&currentDataPoint, 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 \*)&currentDataPoint.valueTemperature,(uint8\_t\*)&currentDataPoint.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,复位模组,就可以正常运行程序。
在这里插入图片描述

1.4.3设备连接(WiFi版)

机智云Wi-Fi/移动通信产品调试APP

GoKit3提供两种配置入网方式:AirLink、SoftAP。笔者这里使用SoftAP 配置入网。

1) 打开 GoKit 的 SoftAP 配置模式
短按 Key2 键, 待扩展板上常亮红灯后, 说明 WiFi 模块进入 SoftAP 配置状态(如下图) 。

在这里插入图片描述

2) 打开机智云APP,为ESP32配网
在弹出的界面中选择‘热点配置’。

在这里插入图片描述

然后输入可用的 WiFi 并输入对应的密码。还需要设置ESP32的WiFi热点及密码,形如“XPG-GAgent-XXXX” 的 WiFi 热点密码:123456789。

在这里插入图片描述

注意: XXXX 是 WiFi 模组的 MAC 后四位。

等待连接完成即可。连接成功后,打开相应的设备即可进行控制。

在这里插入图片描述

当然啦,还可使用前面开发的移动应用管理设备,自行生成的APP是通过扫描设备二维码添加设备的,因此这里需要生成一个设备二维码。生成设备二维码需要在机智云APP中查看,如下图所示。

在这里插入图片描述

然后打开‘机智云串口调试助手.exe’。

填写相应的Product Key以及MAC即可。

机智云串口调试助手

在这里插入图片描述

然后使用自己生成的APP添加设备即可,接下来的操作和添加虚拟设备的操作都是一样的。

1.4.4设备连接(4G版)

这里还是用GoKit3硬件平台,但是需要取下WiFi模组,连接4G设备,笔者这里使用的官网的转接板。
在这里插入图片描述
如果没有转接板,则需要按照下图方式连接。
在这里插入图片描述

注意:4G模块启动的电流较大,需要外接电源,同时接上4G天线。

然后打开‘机智云串口调试助手.exe’。

填写相应的Product Key以及IMEI即可。

机智云串口调试助手

在这里插入图片描述

打开云端,即可看到设备已经在线。

在这里插入图片描述

然后打开移动应用,进行设备连接。

在这里插入图片描述

接下来就可以控制LED了。

在这里插入图片描述

接下来就可以尽情的玩耍了。



img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!



[外链图片转存中…(img-y2O6Hlqj-1715710278292)]
[外链图片转存中…(img-EFDPzEEj-1715710278292)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值