0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开发者案例:使用ESP8266模块DIY一个热水器控制器之(2)ESP8266软件篇

机智云 2022-04-07 10:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言:随着esp8266物联网模块大量普及,各种“云”应接不暇,物联网进入家庭的速度明显提高。作为电子DIYER,意味着有了可以快速解决家庭实际需求的有力工具,以前的各种奇思妙想,都可以使用物联网技术用较短的时间内实现啦。这不,老婆大人看到我做的门灯控制器,就提出来让我把家里的热水器改装成带物联网遥控的,可以在下班前用手机打开热水器,回到家就能有热水用。


上一篇写的是硬件篇,包括总体方案设计、改装热水器、WIFI模块选型、三极管开关电路设计、整体组装等内容。

本篇与大家分享ESP8266上运行的代码是如何实现的。换句话说,就是使用ESP8266将硬件设备的数据,通过MQTT协议发送到机智云AIoT物联网平台,写入云端,再传递到数据上,使用者就能通过手机APP来远程控制硬件设备。

实现的步骤如下一、注册机智云账号

机智云自助开发平台上注册自己的账号,以后自己设计的任何物联网设备都可以放在这个账号上面。
98ab2a28-b5ca-11ec-82f6-dac502259ad0.png

二、创建新的设备并生成源代码

首先创建一个新设备
98cef16a-b5ca-11ec-82f6-dac502259ad0.png
然后添加数据点
98db14c2-b5ca-11ec-82f6-dac502259ad0.png
数据点是light_onoff,这个名字可以是自己定义的其他字母。
98e5eb18-b5ca-11ec-82f6-dac502259ad0.png
在基本信息里面就会看到这个数据点的基本信息,注意Secret要想看到完整的,还需要二次密码验证。
98f78cba-b5ca-11ec-82f6-dac502259ad0.png
选择MCU开发
990d1f12-b5ca-11ec-82f6-dac502259ad0.png
再选择SOC方案
991aa2f4-b5ca-11ec-82f6-dac502259ad0.png
然后输入secret,生成代码包
992835fe-b5ca-11ec-82f6-dac502259ad0.png

下载之后发现这个代码包跟乐鑫的结构差不多(这句话是说给用过乐鑫官方代码朋友听的)
993f8092-b5ca-11ec-82f6-dac502259ad0.png

三、编译ESP8266源代码

上一步生成的源代码是运行在ESP8266模块内部的,怎么编译和烧写呢?

下面这个文档有说明:

https://dwz.date/fpVy

994c2964-b5ca-11ec-82f6-dac502259ad0.png

关于开发环境搭建的内容:

https://dwz.date/fpVz

9962b97c-b5ca-11ec-82f6-dac502259ad0.png

关于ESP8266平台文件说明:

996f3e9a-b5ca-11ec-82f6-dac502259ad0.png
跟前面学习编译的内容都差不多,也是跟乐鑫一样在D盘新建一个VM文件夹。
然后把所有的文件都放在这个文件夹。我将文件夹名字命名为SoC_ESP8266,这样短一些,方便输入。

首先让linux和windows共享文件夹
输入用户密码:“espressif”,回车确认。
9988cc8e-b5ca-11ec-82f6-dac502259ad0.png
这时能够在VM VirtualBOX虚拟机里面通过文件夹管理器看到已经共享成功了。
999eb3b4-b5ca-11ec-82f6-dac502259ad0.png
本文所要实现的目的是手机APP控制这个模块,实现GPIO12的开关,也就是高低电平的转换。

上面的步骤生成的源代码是不能实现具体引脚的控制的,那么为了实现这个引脚的控制,就需要对代码进行修改。

修改的步骤是在VM文件夹下面,找到相应的.c或者.h文件,用记事本或者其他软件打开并进行编辑。

只修改了一点点。

在user_main.c中的keyinit函数中,添加了初始化GPIO12的代码。
99b45692-b5ca-11ec-82f6-dac502259ad0.png

然后在gizwits_product.c中,添加了让小灯翻转的代码。
99c3f3c2-b5ca-11ec-82f6-dac502259ad0.png
没错,就是这么简单,就像是51单片机一样,对引脚初始化,然后在功能函数中让它变成高低电平。

四、编译源代码并烧写进入ESP8266

接下来开始对这个源代码进行编译。
下面进入app目录,下面这个界面是运行了VM VirtualBOX虚拟机里面的LX客户端。模拟的是linux操作系统
进入某个目录用的是cd命令。
99d9cfbc-b5ca-11ec-82f6-dac502259ad0.png
运行编译脚本:./gen_misc.sh
编译速度很快
99e7964c-b5ca-11ec-82f6-dac502259ad0.png

接下来开始烧写
机智云自动生成的代码中,有一张图片,这个图片说明了该烧写进入哪个地址
99f701ea-b5ca-11ec-82f6-dac502259ad0.png
下面开始烧写。
9a0fba5a-b5ca-11ec-82f6-dac502259ad0.png
为了方便初学者看懂,这里说一下硬件连接,ESP8266模块由上下两块组成,其中上面这个就是ESP8266功能板,下面这个其实是一个USB转串口的板子,芯片是CH340,只不过做成了和ESP8266功能板的尺寸一样了,其实它的功能是和买的那种USB转串口的模块是一样的。用一根micro USB数据线,也就是目前手机常用的充电/数据线就行了,注意,不是TYPE-C数据线。连接电脑之后,会自动安装驱动程序,当然,要确保电脑是联网状态。驱动安装成功之后,就会在设备管理器中显示当前串口是COM几,串口号记下来,在烧写的时候,选择这个串口号就行了。

点击电脑上的烧写软件START,然后按下板子上的FLASH按键不松手,然后按下RST按键,松手,再松开FLASH按键。一般情况下可以一次烧写成功,如果不成功,请再次点击烧写START,再次按照FLASH和RST按键步骤进行烧写。

烧写完之后,模块就能够使用了。

下一篇文章分享一下机智云APP的制作过程,模块配网连接家里的路由器的过程,以及设备二维码的生成。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    114

    文章

    17638

    浏览量

    190226
  • 物联网
    +关注

    关注

    2939

    文章

    47317

    浏览量

    407762
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) ESP8285/ESP8266芯片案例

    本,两可以共用同套SDK,只是ESP8285内部集成了1MBFlash,SPIMode设置为DOUT,而ESP8266则需要外接Flash,并且是Din模式。除此之外,
    的头像 发表于 11-21 15:37 4043次阅读
    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) <b class='flag-5'>ESP</b>8285/<b class='flag-5'>ESP8266</b>芯片案例

    ESP8266ESP32开发板常见的2种下载方式

    ESP32和ESP8266是性价比很高而且使用较为广泛的的Wi-Fi模块,在物联网(IoT)领域的DIY项目中可以首先考虑这2款产品。 两
    的头像 发表于 11-10 20:30 323次阅读
    <b class='flag-5'>ESP8266</b>和<b class='flag-5'>ESP</b>32<b class='flag-5'>开发</b>板常见的<b class='flag-5'>2</b>种下载方式

    在蜂鸟处理上进行RT-Thread+ESP8266 wifi模块开发

    本队伍编号CICC3042,本文介绍在蜂鸟处理上运行RT-Thread实时操作系统,并进行ESP8266wifi模块开发。 在蜂鸟配套的sdk中提供了RT-Thread的移植 ht
    发表于 10-31 09:02

    ESP8266ESP32开发板常见的2种下载方式

    的的Wi-Fi模块,在物联网(IoT)领域的DIY项目中可以首先考虑这2款产品。 两款芯片都属于32位处理ESP32是低功耗双核80MH
    发表于 10-24 18:04

    请问下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗

    请问下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
    发表于 09-17 12:06

    ESP8266】进入透传模式后,数据间隔怎么调整,

    验证影响更新速度的因素是ESP8266模块本身; 04.再次验证客户端发送50ms的间隔,TCP服务接收仍旧是200ms反馈次;(TCP服务
    发表于 09-15 10:16

    【RA-Eco-RA6M4开发板评测】——4.使用ESP8266获取任意城市的天意预报

    手头上有ESP8266,闲置了很久,突然想起来可以和RA6M4开发板连接起来,使用AT指令来获取网络天气预报,于是就把它们连接起来。就有了这个帖子。 开始创建工程,打开 RA sm
    发表于 07-23 19:50

    STM32+esp8266连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码移植)

    代码,并通过手机APP进行设备控制。元器件准备在开始之前,您需要准备以下硬件元器件:1.STM32开发2.ESP8266Wi-Fi模块3.温湿度传感
    的头像 发表于 07-15 18:54 745次阅读
    STM32+<b class='flag-5'>esp8266</b>连接机智云,上传温湿度数据并<b class='flag-5'>控制</b>继电器开关(平台配置、代码生成、代码移植)

    【RA-Eco-RA4M2开发板评测】使用RA4M2ESP8266实现MQTT协议上传传感数据到云服务并反向点灯控制

    马上就到RA4M2开发板评测的结尾了,今天给瑞萨论坛线上最具创意的帖子,通过RA4M2开发
    发表于 05-29 15:29

    基于STM32 HAL库与标准库的esp8266接入机智云方案(二)

    在《基于STM32HAL库与标准库的esp8266接入机智云方案()》中,我们详细介绍了硬件连接和机智云客户端的创建。本篇将重点讲解如何下载代码、分析下载的代码,并直接使用这些代码连接机智云。同时
    的头像 发表于 05-28 18:02 1111次阅读
    基于STM32 HAL库与标准库的<b class='flag-5'>esp8266</b>接入机智云方案(二)

    ESP8266烧录与机智云键配网教程

    ESP8266模块因其低成本和高性能,广泛应用于智能家居和工业自动化等领域。机智云平台提供了键配网功能,简化了设备的联网过程。本教程将详细介绍如何使用ESP8266进行烧录,并通过机
    的头像 发表于 05-24 11:04 1549次阅读
    <b class='flag-5'>ESP8266</b>烧录与机智云<b class='flag-5'>一</b>键配网教程

    【RA-Eco-RA4M2开发板评测】RA4M2 + ESP8266获取城市天气预报(二)使用串口助手获取天气+破解任意类型AT指令

    https://bbs.elecfans.com/jishu_2487602_1_1.html 前帖子中我已经实现了完整的RA4M2配合ESP8266获取城市天气预报信息数据,可以
    发表于 05-04 10:07

    【RA-Eco-RA4M2开发板评测】RA4M2 + ESP8266获取城市天气预报(

    的天气预报。 ESP8266款WiFi模块,它具有强大的网络连接功能,可以轻松地连接到互联网。将使用ESP8266模块来获取天气数据,并
    发表于 05-02 14:28

    esp8266 at device做一个网页服务 ,运行webnet_test显示错误怎么解决?

    我现在想用esp8266 at device 做一个网页服务 但是文件系统什么都做好了 运行webnet_test 显示下边的错误 查了论坛 说at不支持服务 但是是20年的
    发表于 03-07 06:47

    零知开源——ESP8266+MPU6050 实现运动姿态检测

    零知ESP8266的I2C通信        在运动姿态检测、机器人平衡控制、VR头戴设备等应用中,MPU6050(三轴加速度计+三轴陀螺仪)是
    的头像 发表于 02-20 17:54 2806次阅读
    零知开源——<b class='flag-5'>ESP8266</b>+MPU6050 实现运动姿态检测