GithubHelp home page GithubHelp logo

pschen / esp-gateway Goto Github PK

View Code? Open in Web Editor NEW

This project forked from espressif/esp-iot-bridge

0.0 0.0 0.0 1001 KB

License: Apache License 2.0

CMake 0.56% C 94.79% C++ 1.16% Makefile 0.23% Shell 0.03% HTML 3.24%

esp-gateway's Introduction

ESP-Gateway 智能网关方案

本文档将介绍 ESP-Gateway 智能网关方案的配置流程和使用方法

目录

1.概述

乐鑫 ESP-Gateway 智能网关方案基于 ESP32 设计开发,目前已实现 Wi-Fi 路由器以太网路由器以太网无线网卡随身 Wi-Fi 四大功能,最大程度发挥了乐鑫芯片的网络优势。

1.1 Wi-Fi 路由器

ESP-Gateway 设备无线连接路由器后开启热点,周围的智能设备连接其热点后即可联网。

1.2 以太网路由器

ESP-Gateway 设备通过网线接入网口后开启热点,周围的智能设备连接其热点后即可联网,同时,ESP-Gateway 设备会被分配属于自己的 IP 地址,故用户可通过连接至该局域网的智能设备与 ESP-Gateway 设备进行 TCP 通信。

1.3 以太网无线网卡

ESP-Gateway 设备通过路由器联网后,从网线接口引出网线插入至具有 LAN 口的智能设备上,被连接的智能设备即可联网。

1.4 随身 Wi-Fi

ESP-Gateway 设备可搭载插有 SIM 卡的移动网络模块,将蜂窝网络转换为 Wi-Fi 信号,周围的智能设备连接其开启的热点后即可联网。

2.硬件准备

  • linux 环境

用来编译 & 烧写 & 运行等操作的必须环境。

windows 用户可安装虚拟机,在虚拟机中安装 linux。

  • ESP 设备

ESP 设备包括 ESP芯片,ESP模组,ESP开发板等。

以太网路由器以太网无线网卡 功能需要额外增加一个以太网 PHY 芯片

随身Wi-Fi 功能需要额外增加一个插有 SIM 卡的移动网络模块

建议使用已经集成 PHY 以太网芯片的 ESP32-Ethernet-Kit 开发板

  • USB 线

连接 PC 和 ESP 设备,用来烧写/下载程序,查看 log 等。

3.环境搭建

如果您熟悉 ESP 开发环境,可以很顺利理解下面步骤; 如果您不熟悉某个部分,比如编译,烧录,需要您结合官方的相关文档来理解。如您需阅读 ESP-IDF 编程指南文档等。

3.1 编译器环境搭建

3.2 烧录工具/下载工具获取

  • 烧录工具位于 esp-idf./components/esptool_py/esptool/esptool.py
  • esptool 功能参考:
$ ./components/esptool_py/esptool/esptool.py --help

4.SDK 准备

  • 获取 Espressif SDK ESP-IDF
  • 为确保成功获取了完整的 ESP-IDF,请在终端中输入 idf.py --version,如果输出结果类似于 ESP-IDF v4.4-dev-3675-g35b20cadce,则代表安装成功。详细的安装和配置说明请参考快速入门文档
  • 成功获取到 ESP-IDF 之后,请将 ESP-IDF 版本切换到 release/v4.4 分支。

5.配置项介绍

Example Configuration 目录

  • 根据硬件所需选择合适的 Ethernet Type 和 Ethernet PHY Device
  • MODEM APN 和 extended DCE object 为 esp-modem 组件的配置选项

APP Configuration 目录

  • Modem function 即随身 Wi-Fi 功能,默认关闭
  • Wi-Fi Router 即 Wi-Fi 路由器功能,进入目录可分别配置设备 STA 和 AP 的 ssid 和 password
  • Ethernet Router 即以太网路由器功能,进入目录可配置设备所起 AP 的 ssid 和 password
  • Ethernet wireless network adapter 即以太网无线网卡功能,进入目录可配置设备所要连接 AP 的 ssid 和 password

6.编译 && 烧写 && 运行

6.1 编译

6.1.1 导出编译器

参考 工具链的设置

6.1.2 编译 demo 示例

在 esp-gateway 目录下执行:

idf.py menuconfig

根据 5.配置项介绍 选择合适的配置选项,配置完成之后执行以下命令生成最终 bin

idf.py build

6.2 擦除 & 编译烧写 & 下载固件 & 查看 log

将 USB 线连接好 ESP 设备和 PC,确保烧写端口正确。

6.2.1 烧录程序

idf.py flash

6.2.3 运行

idf.py monitor

也可执行组合命令 idf.py build flash monitor 来执行编译、烧录、查看监视器

7.使用方法

待程序固件烧录至开发板后,用户可以通过按键来进行功能的切换

按键 GPIO 端口 短按按键 长按按键 3s
app_main.c 文件中定义 选择功能模式 重启系统,切换至选择的功能模式

每个功能对应一个 led 指示灯,用户可以根据指示灯来判断目前处在的功能模式,led GPIO 端口可以在 app_main.c 中根据用户开发板硬件配置进行设置。

7.1 Wi-Fi 路由器

  • ESP-Gateway 设备根据 menuconfig 里配置好的信息,连接至无线路由器,同时开启热点
  • 智能设备连接至该热点后即可联网
  • 该模式下理论传输速率可以达到 10 Mbps,支持 10 个设备同时连接

7.2 以太网路由器

  • ESP-Gateway 设备通过网线接入路由器 LAN 口,同时开启热点
  • 智能设备连接至该热点后即可联网
  • 除了上网功能,用户还可以通过连接至该局域网的智能设备与 ESP-Gateway 设备进行 TCP 通信,支持二次开发
  • 该模式下理论传输速率可以达到 50 Mbps,支持 10 个设备同时连接

7.3 以太网无线网卡

  • ESP-Gateway 设备通过无线路由器联网,并通过网口将网线引出
  • 笔记本电脑或者台式机等设备可通过在 LAN 口插入该网线即可联网

7.4 随身 Wi-Fi

  • ESP-Gateway 设备可搭载插有 SIM 卡的移动网络模块(LTE 模块、5G 模块、NB-IoT 模块),将蜂窝网络转换为 Wi-Fi 信号
  • ESP-Gateway 设备开启热点,智能设备连接至该热点后即可联网
  • 因移动网络模块为外置模块,本项目工程中默认关闭随身 Wi-Fi 的功能,用户在需要该功能时,打开 menuconfig 中相应的选项即可

具体演示视频请参考 ESP-Gateway 视频演示

8.方案优势

功能模式 优势
Wi-Fi 路由器 可作为 Wi-Fi 中继或 Wi-Fi 信号放大器、有效减轻实际路由器的承载力,同时扩大无线覆盖范围
以太网路由器 可以减少实际使用的路由器数量、部署成本低
以太网无线网卡 免驱动、支持用户在任意位置部署需要通过网线联网的电脑
随身 Wi-Fi 无需配网、移动性强、应用于共享场景中(共享按摩椅、共享充电宝),仅需一台共享设备搭载移动网络模块,其他设备连接其热点即可联网,大大节约成本

esp-gateway's People

Contributors

tswen avatar xcguang avatar zhanzhaocheng avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.