Skip to content

Demo project for JD joylink, support esp32 & esp8266.

Notifications You must be signed in to change notification settings

espressif/esp-joylink

Repository files navigation

章节介绍:

  • 1. 概述: 介绍背景。
  • 2. Demo 使用: 介绍 Demo 如何跑起来。包括环境搭建,编译下载,设备控制。
  • 3. 开发指南: 介绍 Demo 如何二次开发。包括文件结构,功能介绍,API介绍,资源占用。
  • 4. 相关链接: 给出与 joylink 相关的链接。包括 Demo 下载,微联文档。

1. 概述

ESP 平台实现了京东微联 Joylink2.1.22 协议。用户可以参考 Espressif 提供的设备端 Demo 进行二次开发,快速接入京东微联云平台。

Demo 参考京东官方 Joylink2.1.22 SDK,添加了 WiFi 相关、OTA、Flash 存储等适配层,用户只需要关心少部分 API,如初始化、数据收发、事件回调等,加快了用户的二次开发速度。适配层具有一定的通用性且开源,用户可根据产品需求自行修改。 Demo 使用的通讯方式为非透传模式。非透传模式下需要在开发者中心上传空实现的 lua 脚本: only_trans.lua

目前京东微联已经停止支持 SmartConfig 的配网方式,所以 Demo 中删除 SmartConfig 配网,目前支持 SoftAp 和 Thunder 配网,芯片上电默认进入 SoftAP 配网,如果用户需要使用 Thunder 配网,需要购买京东的音箱,音箱需要进入沙箱模式,与音箱相关的设置,用户可以咨询京东。

2. Demo 使用

用户拿到乐鑫提供的 esp-joylink 后,根据不同的 example 编译下载固件到乐鑫 ESP8266 、 ESP32 或者 ESP32-S 系列和 ESP32-C 系列开发板或模组。使用京东微联 APP 扫描测试设备的二维码进行配置。配置激活成功后便可进行设备控制。此 Demo 对应的测试设备类型为“智能家居 / 生活电器 / 灯具”。

2.1. 环境搭建

2.2 编译下载

  • 工程编译 首先设置 IDF_PATH 的路径,并使用对应芯片支持的 esp-idf 版本进行下一步配置

    Chip v4.2 v4.3 v4.4
    ESP32 supported supported supported
    ESP32-S2 supported supported supported
    ESP32-C3 supported supported
    ESP32-S3 supported

    对于 ESP8266 & ESP8285 芯片,支持使用 ESP8266_RTOS_SDK v3.3 或 v3.4 版本。

    然后在 menuconfig 里面配置 joylink 相关参数 UUIDCIDPIDPUBLIC_KEYPRIVATE_KEYMAC_ADDRESS,其中 UUIDCIDPID 分别代表产品的唯一标识码、品类和品牌,在云端产品中的位置如下

    i2c hardware

    PUBLIC_KEY 为产品公钥,显示在设备端开发页面,设备认证采用一机一密的方式 ,用户需导入 MAC_ADDRESS (设备 MAC 地址) 来生成 PRIVATE_KEY (设备私钥) ,具体生成方式请在设备端开发页面点击 “导入 MAC 地址生成私钥” 选项并按提示进行。

    i2c hardware

    以light_demo为例,我们提供了默认的sdkconfig.defaults及partiton table文件(light_demo/default_configs目录下),用户可根据芯片不同,进行使用和参考。

    进入example/light_demo目录,然后输入命令 $IDF_PATH/tools/idf.py build, 编译工程。对于 ESP32-S2 平台,执行 build 命令之前应先执行$IDF_PATH/tools/idf.py set-target esp32s2 命令,切换为 ESP32-S2 的编译环境,之后再 $IDF_PATH/tools/idf.py build 编译工程。同样对于 ESP32-S3 和 ESP32-C3 平台,也需要在执行 build 命令之前执行 ESP32-S2 平台相类似的命令。

    (如果使用 ESP8266_RTOS_SDK v3.2,请使用 make 命令进行编译工程)

  • 固件烧写

    1. 如果没有安装串口驱动,需要先安装串口驱动
    2. 输入命令 $IDF_PATH/tools/idf.py -p PORT flash (ESP8266_RTOS_SDK v3.2 使用 make flash ESPPORT=PORT ) ,将编译好的 bin 文件烧录到开发板中,PORT 选择和配置请参考文档说明

对于ESP32、ESP32-S3 和 ESP32-C3 平台,Demo中包含两种配网方式: SoftAP 配网和 BLE 配网,可在 menuconfig 的 joylink 组件配置中进行选择切换,默认是使用SoftAP 配网

i2c hardware

若切换 BLE 配网,首先需使能 Whether or not use Joylink ble configure wifi 选项,然后要在云端产品的基本信息页面中选择 "京东BLE配网" 并保存,最后重新编译和烧写后方可使用。

i2c hardware

3. 开发指南

本章详细介绍 Demo 工程,如需二次开发请关注本章。 用户需要调用的 API 和参数配置相关的头文件在 port/include/esp_joylink.h 中。

3.1 文件结构

.
├── CMakeLists.txt
├── component.mk
├── docs
│   ├── md                                            //  md files
│   │   └── 量产说明.md
│   └── _picture
│
├── config
│   └── mass_mfg
│       ├── multipule_mfg_config.csv
│       ├── multipule_mfg_values.csv
│       └── single_mfg_config.csv
│   
├── examples
│   ├── light_demo                                    //  light_demo
│   │   ├── CMakeLists.txt
│   │   ├── components
│   │   ├── default_configs                           // default sdkconfigs
│   │   ├── main
│   │   ├── README.md
│   │   └── Makefile
│   └── transparent_transmission
│   
├── joylink_dev_sdk                                   // joylink SDK source code
│   ├── ble_sdk
│   ├── example
│   ├── joylink
│   ├── lua
│   ├── Makefile
│   ├── pal
│   ├── README
│   └── scripts
│       
├── Kconfig
├── port                                              // joylink SDK adaptation
│   ├── include
│   ├── joylink_ble.c
│   └── joylink_upgrade.c
│
└── README.md

3.2 参数配置

  • 产品信息配置
    memuconfig 中, 用户可以修改以下这些参数,如 AES_KEY, UUID, PID等,系统会调用 joylink_dev_init() 传入产品注册的信息,注册事件回调函数。用户如果需要修改为自己的设备,首先需要在京东开发者中心上申请自己的设备,并根据相应设备信息在此处修改。
    因为这些参数需要在服务器后台产品基本信息里获取,或者向京东有关部门咨询。

3.3 配网

京东配网方式目前主推 SoftAP(自主激活), Demo 中同时支持 SoftAP(自主激活+代理激活)、Thunder 配网, 默认设置是进入 SoftAP 自主激活, 如果需要代理激活,可以在 Makefile 中将自主激活的宏关闭。

i2c hardware

3.4 固件升级

实现固件升级需要上传新的固件到服务器后台。并填写正确的版本信息。 注意: 厂商必须严格按照固定格式填写版本号,如(1.1.1.20151020_release)。 如下图,后台设置在线升级界面。序号是上传 bin 文件后自动生成的。设备端上传的 version 如果与这个版本号不同, APP 会自动推送 OTA 的提示。

i2c hardware

3.5量产功能

每台设备对应唯一的UUID、DeviceMAC、PrivateKey,用户除了可以在menuconfig配置相关参数信息,也可以通过烧录NVS分区的方式进行量产。

具体请参考量产说明

如果执行了idf.py erase_flash, 需要重新烧录三元组

4. 相关链接

About

Demo project for JD joylink, support esp32 & esp8266.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published