DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发

esp32 开发

一. 芯片介绍

ESP32 是一套 Wi-Fi (2.4 GHz) 和蓝牙 (4.2) 双模解决方案,集成了高性能的 CPU 内核、超低功耗协处理器和丰富的外设。ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、稳定性、通用性和可靠性,适用于各种应用和不同功耗需求。

乐鑫为用户提供完整的软、硬件资源进行 ESP32 设备的开发。乐鑫所研发的软件开发环境 ESP-IDF 能够帮助用户快速开发物联网 (IoT) 应用,满足用户对于 Wi-Fi、蓝牙、低功耗等性能的需求。
乐鑫官方提供的参考网页(https://docs.espressif.com/projects/esp-idf/en/stable/get-started/)

二. 环境搭建

  1. 操作系统介绍:

    建议使用ubuntu开发,作为嵌入式开发工程师来说使用Linux才是王道。ubuntu对于软件开发来说还是比较友好的,各种编译器随便安装,有的杠精会说我想编译.exe程序,ubuntu能开发吗?那我只想告诉你“出门左转,拜拜不送!(我在家也用Windows)”。有人会问我平时用qq或者微信聊天怎么办?收发邮件怎么办?诸如此类问题。。。
    下面我说一下我在ubuntu上安装的软件
    (1) 中文输入法:搜狗输入法,搜狗输入法官网就可以下载
    (2) 音乐:网易云音乐 ,官网提供下载
    (3) office:wps ,官网提供下载
    (4) 网盘:百度网盘 ,官网提供下载
    (5) 翻译:有道词典 ,官网提供下载
    (6) 聊天:qq 微信 ,虽然腾讯官方刚刚提供了qq最新安装包,但是用起来还是有点别扭,建议使用国内桌面厂商deepin深度提供的qq和微信,确实比官方的好用
    (7) 浏览器:chrome ,官网提供下载
    (8) 代码阅读:vscode ,官网提供下载
    (9) 邮箱 :thunderbird或者foxmail,虽然深度提供foxmail但是感觉不太好用,如果不嫌弃英文的话可以使用thunderbird。以上就是我在ubuntu使用软件。
    好像有点跑题了。

  2. 环境搭建

(1) 安装工具包:

sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing

(2) 下载编译器

64-bit Linux:

https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz

32-bit Linux:

https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-80-g6c4433a-5.2.0.tar.gz 

(3) 解压压缩包

在ubuntu用户家目录下创建esp文件夹

 mkdir ~/esp

(4) 将编译器解压进去

mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.220-80-g6c4433a-5

(5) 添加目录

工具链将会被解压到 ~/esp/xtensa-esp32-elf/ 目录。要使用工具链,还需要在 ~/.bashrc 文件中更新环境变量 PATH。要使 xtensa-esp32-elf 在所有的终端会话中都有效,需要将下面这一行代码添加到你的 ~/.bashrc 文件中:

export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"

(6) 保存退出

保存退出 ,执行source 命令

source ~/.bashrc

三. 获取 ESP-IDF

1. 获取代码

 cd ~/esp
 git clone -b v3.2 --recursive https://github.com/espressif/esp-idf.git //获取3.2版本(此版本支持esp-aliyun)
 cd esp-idf
 git submodule update --init

2. 设置esp-idf 路径

打开~/.bashrc 文件,添加export IDF_PATH=~/esp/esp-idf 保存退出执行source ~/.bashrc命令

3. 安装python 依赖包

python -m pip install --user -r $IDF_PATH/requirements.txt

四. 获取esp-aliyun

espressif/esp-aliyun​github.comDIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第1张图片

1.获取代码

cd ~/esp
git clone https://github.com/espressif/esp-aliyun.git

2. 编译工程

cd esp-aliyun
cd examples/solutions/smart_light
make chip=esp32 defconfig
make menuconfig

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第2张图片

3. 擦除flash

make earse_flash 

将flash清空,主要是因为下一步我们要写入匹配的阿里云产品信息,所以在此要擦除flash。

4. 烧录阿里云密钥

mass_mfg 目录中有一参考配置:single_mfg_config.csv,请拷贝成自己的配置文件,如 my_single_mfg_config.csv

cp single_mfg_config.csv my_single_mfg_config.csv

使用自己的 ProductKey、ProductSecret、DeviceName、DeviceSecret 对 my_single_mfg_config.csv 进行修改

key,type,encoding,value
aliyun-key,namespace,,
DeviceName,data,string,config
DeviceSecret,data,string,dsj3RuY74pgCBJ3zczKz1LaLK7RGApqh
ProductKey,data,string,a10BnLLzGv4
ProductSecret,data,string,pVfLpS1u3A9JM0go

修改完成后,使用命令nvs_partition_gen.py生成对应的 NVS 分区:
nvs_partition_gen.py 存放在:IDF_PATH/components/nvs_flash/nvs_partition_generator 目录下

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第3张图片

执行命令

nvs_partition_gen.py my_single_mfg_config.csv my_single_mfg.bin --size 0x4000

使用 esptool 工具将生成的包含秘钥的 NVS 分区烧入对应的 sector,esp32 的默认烧录地址为 0x210000 esptool 存放在$IDF_PATH/components/esptool_py/esptool/

esptool.py write_flash 0x210000 my_single_mfg.bin

将程序烧入到esp32中

make flash

6. 使用串口或者乐鑫提供的调试工具调试代码

make monitor

至此esp32配置完成,接下来开始配置阿里云

阿里云配置

一 创建账号

1. 使用淘宝或者支付宝账号登录阿里云

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第4张图片

2. 在主页搜索“生活物联网平台”,登录生活物理网平台

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第5张图片

3. 购买的激活码,创建新项目

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第6张图片

4. 创建新产品和下载阿里云提供的云智能APP

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第7张图片

5. 新建产品

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第8张图片

6. 新建功能,对于我们来说只是演示功能,所以点击下一步即可。

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第9张图片

7. 选择esp32芯片模组

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第10张图片

8. 点击新增测试设备

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第11张图片

9. 保存设备的相关密钥,这些密钥就是之前在写入esp32 nvs中的值

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第12张图片

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第13张图片

10.完成后,点击下一步人家交互

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第14张图片

11.配置配网选项,选择使用公版app

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第15张图片

12.配置下列选项,默认就可以.

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第16张图片

13.点击下一步批量生产,点击开发完成,购买激活码

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第17张图片

14..购买完成后,返回上一步,点击配网二维码,同时给esp32通电,就会跳出新生成的二维码,使用手机APP扫描这个二维码,就会进入配网.

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第18张图片

16. 以下是手机app操作

打开app,扫描配网二维码

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第19张图片

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第20张图片

输入wifi密码

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第21张图片

输入完成后,开始配网

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第22张图片

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第23张图片

配网成功后,进入app操作界面,点击按钮就可以控制了

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第24张图片

17. 以下是esp32调试界面的截图

当配网成功后,会打印mqtt连接成功的信息

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第25张图片

当我们使用手机操作灯泡的开启和关闭时,终端会打印 light 1 的信息,说明我们成功的接收到了手机的控制信号

DIY智能家居设备:基于esp32和阿里云云智能APP完成智能灯泡的开发_第26张图片

至此完成了所有功能,这个这是演示功能,如果想控制自己的智能家居设备,对于简单的功能如果说是控制一个灯的开关只需要修改esp32程序即可。## 对于esp-aliyun代码来说,他接收mqtt的服务是在 **linkkit_soli.c**文件中的user_service_request_event_handler函数实现,只需将程序更改成接收到light 1 时对应引脚输出高电平,接收到light 0是对应引脚输出低电平即可。如果想实现复杂一点功能的话,就需在阿里云设备中添加新的功能定义。

你可能感兴趣的:(服务器,云服务器,云主机,云服务,云服务器,阿里云,腾讯云,华为云)