yesdayoncemore 发表于 2017-3-8 09:50:22

小黑板 ESP8266无线wifi SoC方案连接机智云最详细图文教程2

本帖最后由 bigfanofloT 于 2017-3-8 12:06 编辑

前言:本文详细介绍了小黑板接入机智云教程,通过一个手机APP远程控制全彩LED不同颜色的应用,完整的体验了机智云提供的一些列简单方便的开发工具,尤其是代码自动生成工具,懒人福音。一、 ESP8266简介ESP8266 是上海乐鑫研发的高性能无线 SOC,旨在以最低成本提供最大实用性,为 WiFi 功能嵌入其他系统提供无限可能,被称为业界里程碑。通俗的讲就是高性能单片机+无线WiFi外设,特性如下:ESP8266低功耗、高集成度的 Wi-Fi 芯片仅需 7 个**元器件超宽工作温度范围:-40°C 至 +125°CESP8285 - ESP8266 内封 8 Mbit Flash高度集成ESP8266EX 是业内集成度最高的 Wi-Fi 芯片,最小封装尺寸仅为 5mm x 5mm。ESP8266EX 高度集成了天线开关、射频 balun、功率放大器、低噪放大器、过滤器和电源管理模块,仅需很少的**电路,可将所占 PCB 空间降到最低。32 位 Tensilica MCU ESP8266EX 内置 Tensilica L10632 位微型控制器 (MCU),具有超低功耗和 16 位 RSIC,时钟速度最高可达 160 MHz。支持实时操作系统 (RTOS),目前 Wi-Fi 协议栈只用了 20% 的 MIPS,其他均可用于用户编程和开发。低功耗ESP8266EX 专为移动设备、可穿戴电子产品和物联网应用而设计,通过多项专有技术实现了最低功耗。ESP8266EX 有三种运行模式:激活模式、睡眠模式和深度睡眠模式,能够延长电池寿命。性能稳定ESP8266EX 集成了更多的元器件,性能稳定,易于制造,工作温度范围达到 -40°C 到 +125°C。二、小黑板简介
小黑板是安信可基于ESP8266研发的开发板,板载1颗三色RGBLED,光敏电阻,3.3V LDO电源模块,以及1个轻触按键,可在官网查看原理图,原理图如下:各个引脚的功能如下:一、 开发步骤首先明确下目的:通过手机APP控制RGB LED的颜色。进一步分析,除了LED的驱动,我们还需要辅助,就是如何配置输入路由器的SSID和密码问题,利用板载的一颗轻触开关进行触发和机智云手机APP可轻而易举的实现smartconfig。利用机智云平台只需2步,1是底层LED驱动代码编写,在上期教程中我们采用GPIO输出高低电平的方式来直接控制LED的亮灭,本期我们采用PWM的方式来控制LED的亮度,这样可实现“任意”颜色;2是利用代码自动生成工具生成工程框架,然后填充用户指令,比如开关灯。准备工作:第一步:了解机智云平台架构(可略过),戳我。第二步:了解机智云Soc方案(可略过),戳我。1.      首先在开发者中心创建产品:2.      建立数据点(详解数据点):
数据点即设备产品的功能的抽象,用于描述产品功能及其参数。创建数据点后,设备与云端通讯的数据格式即可确定,设备、机智云可以相互识别设备与机智云互联互通的数据。例如灯预置颜色的数据点:2.1 显示名称:自定义功能点名称。2.2 标识名:用于应用层传输,客户端或业务云开发时需要使用。命名规则遵循标准的开发语言变量名命名规范,支持英文字母、数字和下划线,以英文字母开头。2.3 读写类型:① 只读:表示该数据点非控制,数据只支持从设备上报。② 可写:表示该数据点可控制。设备端可上报该数据点数据;云端/客户端可对该数据点数据做出下发控制。③ 报警:表示该数据点非控制,数据只支持从设备上报,数据类型需为布尔值。④ 故障:表示该数据点非控制,数据只支持从设备上报,数据类型需为布尔值。云端会对设备上报的该数据点做统计,可在“运行状态”查看。2.4 数据类型:① 布尔值:表示两个状态:0,或1。如开关状态等,建议使用布尔数据类型。例如GoKit开发板的“宠物屋”,“开启/关闭红色灯”该数据点。② 枚举类型:可定义一个有限的取值集合。当定义的某个功能(元器件)有固定的若干个值。例如GoKit开发板的“宠物屋”,“设定LED组合颜色”该数据点的枚举定义值:“自定义,黄色,紫色,粉色”。③ 数值:填写数值范围,数值可为负数/小数,机智云自动将数值转换为正数。例如GoKit开发板的“宠物屋”,“设定电机转速”该数据点:电机有正反转、调速功能,数据点值可定义为:-5~5。④ 扩展:填写数据长度,数据内容由用户自定义。对于上述功能点无法满足的复杂功能可采用。机智云不建议使用此类型数据,设备上报该数据点的数据,机智云无法识别。2.5备注:选填,用一段文本描述当前数据点的功能及定义方法,对字符格式不做限制。只用于提高数据点的易读性,如果需要团队协作开发,建议规范填写。3.      选择SOC方案以生成工程:然后点击生成按钮即可生成完毕;点击下载即可,下载后把它改名为xiaoEsmartLED,因为那个名字实在是太长了。在开发向导了,有很多十分实用的工具和教程。4.      至此云端工作完毕,开始MCU端编程,下载生成的工程,目录如下:详情如下:生成的这个工程和官方的微信宠物屋源码框架是相似的,源码逻辑详解点我。下面编写RGB LED驱动头文件,命名为RGB_light.h,并把它放到\xiaoEsmartLED\app\include\driver目录:接下来编写对应的C文件,命名为hal_led.c,并把它放到\xiaoEsmartLED \app\driver目录:关于GPIO功能的定义在这个文件:接下来修改按键,这个按键的作用是触发小E进入联网模式,配合手机APP获取路由器的SSID和密码。由于生成的工程包含的按键驱动是以机智云官方Gokit3 SOC版为模板的,我们小E的按键连接的管脚和Gokit是不一样的,因此需要修改。\xiaoEsmartLED \app\user里的user_main.c文件,包含了整个框架和按键定义,直接在这里修改即可:如上对比图,去掉一个按键,并修改IO编号,然后修改按键的初始化和回调函数:至此按键修改完毕。接下来在\xiaoEsmartLED\app\user 里的user_main.c文件,即“主函数”里调用RGB LED初始化以完成外设初始化:首先包含RGB LED驱动路径:然后在void ICACHE_FLASH_ATTR user_init(void)函数调用RGB LED初始化:User_main.c中还有一个userTimerFun定时回调函数,这里可依据数据点添加信息,例如本例增加了RGB LED故障上报,当然填充值为0,因为实际并没有去检测的LED的好坏。最后一步是在\xiaoEsmartLED\app\Gizwits里的gizwits_product.c文件中添加业务逻辑,本例就是MCU收到手机APP的对应指令后执行PWM输出对应值动作。首先是包含驱动头文件:然后找到如下函数:int8_t ICACHE_FLASH_ATTRgizwitsEventProcess(eventInfo_t *info, uint8_t *data, uint32_t len),在里面如下位置添加对应代码:至此代码编辑全部完成,回顾一下,是不是只是简单的编写了底层驱动和填充了用户业务逻辑代码,其它和云端交互的代码完全应用代码自动生成工具为我们搭建的框架即可。三、 编译和烧录、测试
编译源码、烧录教程:点我,总结下就是使用乐鑫开发的工具,选择好固件,然后GPIO0管脚接地进入烧录模式,这里给个直观的接线图:最后效果酱紫:
源码和PDF教程:
**** Hidden Message ********* Hidden Message *****



peter58 发表于 2017-5-5 19:17:10

muxuefei 发表于 2017-3-20 00:56
请问一下,烧写成功后,蓝灯一直闪,且搜索不到WiFi信号,如何解决呢?谢谢。 ...

可能这2个文件地址烧反了esp_init_data_default.bin,blank.bin。
正确的如下:
esp_init_data_default.bin          0x3fc000
blank.bin                              0x3fe000
boot_v1.6.bin                        0x00000
user1.4096.new.6.bin               0x01000

emply 发表于 2019-7-8 00:12:24

可能这2个文件地址烧反了esp_init_data_default.bin,blank.bin。   正确的如下: esp_init_data_default.bin          0x3fc000 blank.bin                              0x3fe000 boot_v1.6.bin                        0x00000 user1.4096.new.6.bin               0x01000

admaoV 发表于 2017-3-8 11:09:15

这个的点个赞

Xuperfect 发表于 2017-3-8 11:16:11

占座,看看源代码怎么样吧

i_飞行员 发表于 2017-3-8 11:28:42

学习一下

小apple 发表于 2017-3-8 11:50:30

想问一下你的开发板上的wifi模块是4Mflash的吗?

bigfanofloT 发表于 2017-3-8 12:04:22

小apple 发表于 2017-3-8 11:50
想问一下你的开发板上的wifi模块是4Mflash的吗?

是的呀,

齐天大圣 发表于 2017-3-8 19:32:06

刚买了一片,学习一下

peter58 发表于 2017-3-9 21:22:16

学习学习-000000000000000000

eethan 发表于 2017-3-10 11:29:15

这个的点个赞

IOTwcb 发表于 2017-3-10 20:17:28

回复,看源码

mewor 发表于 2017-3-11 20:41:00

今天配了一天,很多问题,看看楼主的参考一下~~

xmjwx 发表于 2017-3-12 21:47:54

:handshake

Rhomely 发表于 2017-3-12 22:23:37

sajdbakfdjdskjfkjkjjk

kali 发表于 2017-3-12 22:44:13

占座,看看源代码怎么样吧

tyking 发表于 2017-3-13 15:58:27

学习一下。。。。

fanleung 发表于 2017-3-13 20:32:22

。。。。

codeman 发表于 2017-3-14 08:54:02

学习学习!

z200x 发表于 2017-3-14 16:07:26

学习学习.....................

kali 发表于 2017-3-14 20:05:52

如果我要用机智云控制继电器需要改那里?

bigfanofloT 发表于 2017-3-14 23:37:34

kali 发表于 2017-3-14 20:05
如果我要用机智云控制继电器需要改那里?

看小黑板系列第一篇教程,控制继电器开关和控制灯的亮灭,其原理对于mcu来说是一样的,都是通过控制一个gpio电平的高低来进行控制。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 小黑板 ESP8266无线wifi SoC方案连接机智云最详细图文教程2