ESP8266 NodeMcu机智云SOC方案开发经验分享

实现的功能:LED_1和LED_2可以同时用APP和KEY1和KEY2按键(短按)控制适合入门级萌新,大佬请略过,谢谢!

功能:LED_1和LED_2可以同时用APP和KEY1和KEY2按键(短按)控制
一、硬件电路及开发环境的搭建
1.硬件电路
首先是从某宝购买WIFI模块ESP8266 NodeMcu,我买的下图这款,4M内存不可接天线,应该是13.5元包邮。现在一直在用,感觉还比较稳定,那种可接天线内存小的还没用过不知咋样。其他的元器件,有两个LED,两个微动开关,面包板,杜邦线若干,5v直流电源。

有个情况要说明下,这种WIFI模块有两种,一种正常工作时右上角蓝色LED不闪,只有通电时闪一下;另一种是正常工作和通电时都会闪。我买了两块,刚好碰到这两种情况,开始以为是坏的,哈哈。
(1)电路图

(2)电路实物图

2.开发环境的搭建
如果是Windows 64位操作系统,可以下载下面这个集成开发环境
链接:https://pan.baidu.com/s/1CdruAWopdVWMEzxKOEJ4uA 提取码:12ct
如果不是的话,可以在百度“乐鑫集成开发环境”,应该很容易找到。
下载好后压解到一个你喜欢的地方,我习惯压解在D盘,压解好后就下图这样。桌面也会出现AiThinker_IDE和ConfigTool两个快捷图标。

打开这个压解好的AiThinkerIDE_V0.5文件夹,蓝框里面EXE文件对应桌面上的两个图标

打开蓝框里ConfigTool.exe,下图1,2路径对应上图红框中的内容。如果电脑已经装过eclipse,可以选择安装好的eclipse 的路径。然后点击注册3,再点击保存4,窗口会自动退出。开发环境就配置好了。

可以点击蓝框里的AiThinker_IDE.exe或者点击桌面的快捷方式图标就可进入开发环境。

二、机智云开发者中心
接下来是机智云开发者中心上的操作。注册账号应该是基本操作,就不费时间写了。主要讲数据点和自动生成的程序和下载测试APP。进入开发者中心

  • 创建产品
  • 产品分类:自定,影响不大;
    产品名称:自定,影响不大;
    技术方案:Wi-Fi/移动网络方案;
    通讯方式:Wi-Fi
    数据传输方式:定长

3.产品创建好后

4.打开创建好的产品

5.点击显示完整秘钥,输入登入密码Product Secret就会完整显示,将黑色隐藏的Product Key和显示的Product Secret复制到一个记事本中,以后有用。
6.点击左侧数据点,创建数据点。我创建好的数据点如下

下面两个数据点不用创建,我之前打算用DHT11温湿度传感器来获取temperature温度和humidity湿度,可能是模块坏了,一直读不到值,所以这里就不做介绍了。
我这里使用了两个可写布尔值的数据点,LED_1和LED_2,用于控制LED的开关。(有条件的可以买继电器,通过控制继电器来控制家里的220v电灯或者插座的开关。废话一句,哈哈)。
Tips:标识名可以自定,但是最好让人比较容易看懂,创建好后点应用。
7.点左侧MCU开发,选择右侧SOC方案
粘贴上复制在记事本中的Product Secret ,点击生产代码包,生成好后,点击下载

8.下载测试APP,点击顶部下载中心

进入下载中心后,点击左侧“机智云Wi-Fi/移动通信产品调试APP”

可选择扫码下载,安装在手机上,以备后用。

三、修改自动生成的代码、编译并烧录
1.修改代码
将上面第7步下载好的压缩包压解到桌面(位置自定,根据个人习惯),打开开发环境软件,也就是这个

打开后是这样

然后是导入压解好的代码包
点击左上角File,然后是import

点击C/C++,然后点击Existing Code as Makefile Project

数字1处选择代码压解到的位置,数字2处选择第3个

导入好后,展开文件夹,并双击打开左侧红框内的文件,按照右侧红框内容修改。
大概第22行:改BOOT?=new、改APP?=1、如果只有两个数据点改SPI_SIZE_MAP?=2。

如下图展开文件夹,要修改的就是下面红框中的5个文件

首先打开gizwits_product.h,定义一个矩阵extern bool STA[2];用于存储数据点LED_1和LED_2的状态。

然后打开gizwits_product.c,初始化定义的矩阵bool STA[2]={0};

找到 int8_t ICACHE_FLASH_ATTR gizwitsEventProcess(eventInfo_t *info, uint8_t *data, uint32_t len) 大概在47行,黑框中的为机智云上定义的数据点名称,红光中的为添加的内容。

Tips:这个板子和我们常见的板子(51、STM32)不一样,它的IO口置1时,实际输出低电平。
我们的LED是用的共阳机接法,详见电路图。
然后是扫描数据点LED_1和LED_2的状态,并上报,添加红框中的两条代码
#define USER_TIME_MS   100
#define LED_TIMEOUT (100/USER_TIME_MS)  定义100ms

这两条添加到user_main.c里面,避免编译的时候出现错误

另外改gizwits_protocol.c 中的
#define USER_TIME_MS   100 可以降低控制延时

找到gizwits_protocol.c 中的void ICACHE_FLASH_ATTR userHandle(void),这个上报程序
添加以下代码
GPIO_OUTPUT_SET(GPIO_ID_PIN(4),!STA[0]);
GPIO_OUTPUT_SET(GPIO_ID_PIN(5),!STA[1]);
static uint8_t ledtime=0;   //每100ms上报一次数据点状态
ledtime++;
if(LED_TIMEOUT<ledtime)
{
ledtime=0;
currentDataPoint.valueLED_1=STA[0];
currentDataPoint.valueLED_2=STA[1];
}

  • 1


找到下面的void ICACHE_FLASH_ATTR userInit(void),这个是数据点初始化
修改如下
currentDataPoint.valueLED_1 = 0;
currentDataPoint.valueLED_2 = 0;

然后是改user_main.c文件,找到大概第55行
按如下修改
#define GPIO_KEY_NUM                            2              // 定义总按键数
#define KEY_0_IO_MUX                            PERIPHS_IO_MUX_GPIO0_U //
#define KEY_0_IO_NUM                            0
#define KEY_0_IO_FUNC                           FUNC_GPIO0
#define KEY_1_IO_MUX                            PERIPHS_IO_MUX_GPIO2_U
#define KEY_1_IO_NUM                            2
#define KEY_1_IO_FUNC                           FUNC_GPIO2

接下来改KEY1也就是GPIO0对应的开关
LOCAL void ICACHE_FLASH_ATTR key1ShortPress(void)   //KEY1短按
{
if(STA[0]=!STA[0])    //取反,判断开关是否按下
GIZWITS_LOG("#### GPIO0 short press ,LED_1 ON\n");  //日志elseGIZWITS_LOG("#### GPIO0 short press ,LED_1 OFF\n");  //日志

  • 1
  • 2
  • 3
  • 4
  • 5

}
/**

  • Key1 key presses a long press
  • @param none
  • @return none
    */
    LOCAL void ICACHE_FLASH_ATTR key1LongPress(void)   //KEY1长按
    {
    GIZWITS_LOG("#### GPIO0 long press, SOFTAP ON\n");  //日志
    gizwitsSetMode(WIFI_SOFTAP_MODE);   //设置为局域网模式

接下来改KEY2也就是GPIO2对应的开关
LOCAL void ICACHE_FLASH_ATTR key2ShortPress(void)  //KEY2短按
{
if(STA[1]=!STA[1])   //取反,判断开关是否按下
GIZWITS_LOG("#### GPIO2 short press, LED_2 ON \n");  //日志
elseGIZWITS_LOG("#### GPIO2 short press, LED_2 OFF \n");  //日志

  • 1
  • 2
  • 3

}
/**

  • Key2 button long press
  • @param none
  • @return none
    */
    LOCAL void ICACHE_FLASH_ATTR key2LongPress(void)   //KEY2长按
    {
    GIZWITS_LOG("#### GPIO2 long press, AIRLINK ON\n");  //日志
    gizwitsSetMode(WIFI_AIRLINK_MODE);  //设置为联网模式

}
}

端口初始化
LOCAL void ICACHE_FLASH_ATTR keyInit(void)
{
singleKey[0] = keyInitOne(KEY_0_IO_NUM, KEY_0_IO_MUX, KEY_0_IO_FUNC,
key1LongPress, key1ShortPress);
singleKey[1] = keyInitOne(KEY_1_IO_NUM, KEY_1_IO_MUX, KEY_1_IO_FUNC,
key2LongPress, key2ShortPress);
keys.singleKey = singleKey;
keyParaInit(&keys);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U,FUNC_GPIO4);//配置LED_1管脚为输出
GPIO_DIS_OUTPUT(GPIO_ID_PIN(4));
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U,FUNC_GPIO5);//配置LED_2管脚为输出
GPIO_DIS_OUTPUT(GPIO_ID_PIN(5));
GPIO_OUTPUT_SET(GPIO_ID_PIN(4), 0);//输出高电平
GPIO_OUTPUT_SET(GPIO_ID_PIN(5), 0);//输出高电平
}

所有的代码都修改好了,开始编译,右击项目名,点击Build Project

编译成功

烧录,烧录工具可以下载我这个
链接:https://pan.baidu.com/s/1_Bhds-uE9GreQpfVwJ2m7g
提取码:e0kr

下载好后,打开ESPFlashDownloadTool_v3.6.4.exe这个程序,点击第一个

选择编译好的文件,路径、COM仅供参考,根据实际情况设置。下面的设置如下图
C:\Users\Administrator\Desktop\SoC_ESP8266_32M_source\bin\boot_v1.6.bin
0x00000
C:\Users\Administrator\Desktop\SoC_ESP8266_32M_source\bin\upgrade\user1.4096.new.4.bin
0x01000
C:\Users\Administrator\Desktop\SoC_ESP8266_32M_source\bin\esp_init_data_default.bin
0x3fc000
C:\Users\Administrator\Desktop\SoC_ESP8266_32M_source\bin\blank.bin
0x3fe000

终于弄完了软硬件,终于到看成果的时候了,是不是很激动。
还有一步没完成,配网。
首先,你的手机要连上你家里的WIFI。
打开下载的机智云手机APP,点击跳过,不用登入

点击右上角的+号,点击一键配置

填入你家里WIFI账号和密码

选择乐鑫,点击确定

长安KEY2键,3S以上松开,点击手机上的“我已完成上述操作”

配网成功


LED_1和LED_2可以同时用APP和KEY1和KEY2按键(短按)控制了。
祝君成功!!!
That’s  all,  thanks for your reading.
写得比较琐粹,大佬请略过。。。
未完待续。。。

原文地址:https://www.cnblogs.com/dapangsen/p/9759212.html

时间: 2024-10-05 01:36:20

ESP8266 NodeMcu机智云SOC方案开发经验分享的相关文章

ESP8266学习笔记8:ESP8266接入机智云

1 前言 本文偏软,先做个声明. 利益相关声明:我是一个硬件公司的工程师,跟机智云没有任何的利益相关. 机智云,是目前比较开放的第三方云平台.我是在今年光亚展上看到他们的,当时记了几家国内的云平台公司,机智云是其中之一.主要的了解还都是在网上,公司发展也不错,在商务对接时支持也比较给力.他们开源了很多APP和SDK,相信有不少人都从中受益.这阵子经常看到他们有很多大动作,更让我佩服这家公司,比如今天刚融了2亿的B轮,比如前两周受邀参加蓝牙亚洲大会,比如上个月和乐视合作. 好了,软文完毕,开始正文

演绎另类黑客马拉松,机智云第二届中国智能硬件36小时开发大赛再现极速开发

互联网的蓬勃发展,以硬件开发为内容的创客马拉松在世界范围内兴起,吸引了众多硬件达人.创和智能手机的风行让源自编码潮流的黑客马拉松在全球风靡,堪称程序员的"美国偶像",一群软件开发高手云集一堂,几十个小时里开发出一款插件或破译一个程序,累了或坐或卧现场休息,做完当场交作品,是世界上最酷的开发者狂欢.近年来伴随着物联网产业客和爱好者的青睐. 但纵观世界,智能硬件开发马拉松却鲜少有人组织,探究原因则在于智能硬件是一个跨学科的综合体,不仅需要掌握硬件开发能力,还需要有软件应用开发.云计算和大数

机智云WebSocket实现物联网游戏

0.简介 本人在大学本科最后的一个课程设计,做的比较有趣味,同时最近的物联网逐渐大热,所以分享一下自己的作品设计过程.作品是在机智云最为简单的STM32核心板例程上开展的,使用到的通信协议是机智云写好的机智云连接固件,网页编程也是机智云的WebSocket Demo.本人做的是在原有的核心系统上添加别踩白块的物联网游戏功能.实现效果如下: 优酷视频地址:http://player.youku.com/embed/XMzcyMzU0NjE0OA== 得到的效果就是在网页上JavaScript 别踩

海典ERP与汉码盘点机对接门店实时盘点计划及程序使用方法,实时盘点,云盘点方案

1.     PDA手持设备按键说明 [Tab]键:使输入焦点在控件上切换. [ESC]键:弹出是否退出确认对话框,退出操作界面或程序. [OK]键:确认输入或选择,进入下一步操作. [C]键:删除键,或者回退上一步操作. [#]键:快速切换和隐藏/显示输入法对.通过[#]号键可以在各种输入法之间进行切换. 2.     门店盘点前准备工作 2.1.  登记帐存并生成盘点单号和盘点页码(在ERP管理软件中) 1.       在ERP医药管理软件上进行盘点登记:注:每次盘点之前首先要对将要盘点的

GPRS联网模块:广和通FIBOCOM_G510 支持接入机智云

[GPRS模组]广和通FIBOCOM_G510 支持接入机智云,具体开发流程参考:http://docs.gizwits.com/zh-cn/deviceDev/debug/G510.html G510 GAgent固件:是运行在各种通讯模组上的一款应用程序(固件),可以提供上层应用(手机APP等控制端.云端)到产品设备的双向数据通讯,此外,还提供对设备的配置入网.发现绑定.程序升级等功能. 产品开发者使用G510 GAgent后,只需要关心产品的业务逻辑开发,不用关心数据的通讯功能开发, 该固

国内物联网平台初探(五):机智云IoT物联网云服务平台及智能硬件自助开发平台

国内物联网平台初探(五)——机智云IoT物联网云服务平台及智能硬件自助开发平台 马智 平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务.通过傻瓜化的工具.不断增强的SDK与API服务能力最大限度降低了物联网硬件开发的技术门槛,降低研发成本,提升开发者的产品投产速度,帮助开发者进行硬件智能化升级,更好的连接.服

机智云在Amazon Alexa平台发布Smarthome和Custom Skill

机智云在Amazon Alexa平台率先发布了Smarthome Skill和Custom Skill,实现了亚马逊Echo直接控制机智云开源套件Gokit(包括Gokit2.0和Gokit3.0)!这也将意味着:随着机智云和亚马逊账号的打通,接入机智云的产品都可以轻松实现Amazon Echo控制功能.(下附实战篇) Amazon Echo是时下风靡全球的一款结合了Amazon人工智能助理 Alexa 的音箱,支持Wi-Fi连接,依靠语音命令进行激活,让用户以最自然的语音交互方式,连接到 Am

机智云5.0推出IoT套件GoKit4.0 可实现物联网应用协同开发

2017年9月19日,全国双创周期间,在由广州市青创中心.天英汇.五号空间.机智云等联合主办的众创五号空间首届IoT创新嘉年华重头戏机智云GODAY2017上,机智云正式发布了机智云5.0物联网开发及云服务平台和IoT开源套件gokit4.0.机智云5.0是基于物联网.人工智能和大数据的协同应用开发平台,GoKit4.0标配支持高通MDM9206(eMTC/NB-IoT/GPRS),同时兼容LoRa/GPRS/WiFi等通讯模组和Seeed标准传感器. 随着企业物联网化进程加速,企业已经不满足于

国内物联网平台初探(五) ——机智云IoT物联网云服务平台及智能硬件自助开发平台

平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务.通过傻瓜化的工具.不断增强的SDK与API服务能力最大限度降低了物联网硬件开发的技术门槛,降低研发成本,提升开发者的产品投产速度,帮助开发者进行硬件智能化升级,更好的连接.服务最终消费者. 产品功能 IoT PaaS服务 为IoT开发者提供智能设备自助开发工具