最新的STM32和机智云连接详解
本帖最后由 小妖 于 2020-2-5 23:33 编辑现在的机智云使用的代码生成和以前不一样了,也就导致之前很多的例程和机智云官方的文档都没办法作为参考了。
作为一个小白,没有一个详细例程,真的很难入门:L:L:L,翻遍了几乎所有的帖子,大多数都是很早之前的,没有参考价值。在这里把我调试成功的例程分享一下,做到了最简单的控制,手机控制STM32板上的LED亮和灭。话不多说,准备开干!
[*]准备一块STM32的开发板,什么型号的都可以,板子上最好有多个按键(这里使用了两个),还有LED灯(可以观察现象),现在的板子都有了串口,没有的就要准备一个USB转TTL的模块(淘宝上自己找,最好准备一个,方便和机智云的调试助手连接)。使用的WIFI模块是机智云的小黑板http://club.gizwits.com/data/attachment/forum/201703/08/093753y0t8dnw8racneaat.png也就是这个模块,本来是想直接做SoC方案的,实在是没学会:Q,才转用单片机+模块的。
[*]从这里下载模块要烧录的固件https://download.gizwits.com/zh-cn/p/92/94,用的是8266的模块,当然选GAgent for ESP8266,具体的烧写方法可以看网上的例程,有很多,需要根据你的模块的实际型号选择烧录选项,这里不多介绍,烧录完成后就要测试烧录的固件是否正常工作,https://download.gizwits.com/zh-cn/p/98/119,这里是机智云的串口调试助手,先下载准备好,后面会用到。
[*]创建我们自己的产品。在我们个人账号下创建一个新的产品,不要太复杂,只要能控制一颗LED就可以,这里不会的可以看看其他的帖子,创建简单的产品还是很容易的,这里只要一个数据点就可以了。别忘了点上面应用按钮,不然数据点是不会保存的。选择下面的虚拟设备就可以用手机app调试了(简单的项目并没有什么意义,这里不详讲)。最后选择MCU开发,选择独立MCU方案,硬件平台选择其他平台(如果选择STM32的,生成的是HAL库项目),下面的Product Secret是在左边最上面的基本信息里面隐藏的,需要输入账号密码才可以看到,最后把生成的代码下载下来。
[*]测试刚才烧录的GAgent固件是不是能用的。GAgent固件就是配合机智云平台生成的代码使用的,初学者不需要搞懂固件里面的内容。打开我们刚才下载的串口调试助手,现在的版本打开是这个样子的选择右边的新增按钮,把我们创建产品时的这两个数据填入,就可以选择左边的模拟MCU了,这时候就要用USB转TTL模块把8266模块连接到电脑上,除了串口号需要修改,其他的没什么要修改的,后面就可以用左下角的指令模拟MCU控制模块了,重启模块-->初始化-->Airlink,就可以使模块进入配网模式,使用手机APP就可以连接了(如果连接失败就要考虑是连接的问题,还是固件烧录错误的问题,还是网络的问题),这里如果有问题,那就不用进行下去了,肯定失败的。连接成功后就表示固件烧录没有问题,网络也没有问题。现在就可以使用手机控制了,上面三个部分,左边是模拟的MCU和8266通信的串口数据,点击每一条数据,中间都会有关于当前数据的说明(还是很贴心的,省的自己一个个数据看了),最右边的就是模拟的接收,手机的控制会显示在这里,这里也可以修改,手机端也会改变。当这一步也成功后,项目也就成功了一半了。
[*]打开我们准备好的STM32的例程(我用的是正点原子的MINI板的例程-ALIENTEK MINISTM32 实验3 串口实验),这个例程已经调好串口了,用起来省事。把我们刚才下载的代码(独立平台的代码),这两个文件夹都要复制到我们选择的例程中,如何添加到项目中可以到网上找(正点原子的讲解很多)。还需要在HARDWARE文件夹下加上LED、按键、定时器、串口(用来和8266通信,不是打印数据的)。下面就根据你选择的串口连接模块和STM32开发板,实际只需要连接电源、GND、串口TX\RX,四根线就可以,其他的需要时候再连接(这里连接上也没用,芯片没有配置)。
[*]修改程序。程序中需要修改几个点。1)堆栈大小要修改,不然工作会出问题。2)在和模块通信的串口中断函数里要添加gizPutData(&res, 1);//数据写入到缓冲区//用来接收8266发到单片机的数据。3)定时器函数中要添加gizTimerMs();这个函数。4)这里添加我们要控制的LED灯,这样我们才可以用手机控制LED的亮灭。5)这里添加的是单片机发送到8266数据的函数,这样才可以使单片机和8266模块正常通信。
[*]最后别忘了勾上这里,剩下的编译后就可以解决了,大多是头文件没有引用、函数没有申明之类的错误了,或是函数重定义了,都好解决(可以参考我发的例程),最后下载到开发板上,通过串口可以看到运行状态,按下配网按键,这个时候就可以使用手机搜索到你的开发板了,剩下的就是不断的增加新的功能了。
[*]这一步很重要,很多时候就是忽略了这里才导致的不成功。其他还有问题可以发出来我们一起讨论。最后附上我自己调试的例程。
:):)不错,写的详细的新人指导, 避免弯路 补充一点,很多时候串口提示超时是因为操作的太快,在复位后等待一段时间在配网,就不会出现超时的问题。 感谢楼主的无私奉献~很有帮助 感谢楼主分享,学习了 感谢楼主分享,一直碰到如何用通用固件来开发,学习之后,并且已经连接成功:lol 为什么要用串口3. zxj 发表于 2020-4-2 14:34
为什么要用串口3.
没有固定要求,使用串口3是因为有串口的例程可以直接使用。 楼主你好,方便加Q咨询一下吗?。(STM32+ESP8266+温湿度传感器 接入机智云,有偿。qq:1014082027) 谢谢分享! 很有用,谢谢分享! 版主,帮我指点一下可以吗?
http://club.gizwits.com/forum.php?mod=viewthread&tid=165804&extra=page%3D1%26filter%3Dtypeid%26typeid%3D188 你好,我的手机连上了,但是模拟CPU上报数据的时候,手机的界面和虚拟设备的界面没有变化是怎么回是呀
页:
[1]