ESP32事联播指南

贡献者: 金布隆
受欢迎的 最喜欢的 16

介绍

亚博官网SparkFun ESP32事是一个综合开发平台Espressif的ESP32,他们对大众的超级评价ESP8266.像8266一样,ESP32是无线网络兼容微控制器,但是它增加了支持亚博国际官网蓝牙低能耗(i.e BLE,BT4.0,蓝牙智能)和近30 I / O管脚。ESP32的力量和多功能性将有助于它成为IOT和连接项目的基础。亚博官网

亚博官网SparkFun ESP32事

亚博官网SparkFun ESP32事

dev - 13907
21.95美元
58

Spar亚博官网kFun ESP32 Thing为ESP32配备了编程所需的一切,运行时,并在单片机上进行开发。除了WiFi / BLE SoC,的东西包括一个FTDI FT231x,把USB系列,并允许您的计算机程序和与单片机进行通信。它还有一个锂聚合物电池充电器(脂肪),所以ESP32项目可以真正的亚博官网无线。此外,该板包括一些LED和按钮,以帮助您的发展。

本教程涵盖

这个连接指南作为底漆ESP32的事物。董事会文件的硬件特性,包括一些装配技巧。那么它将深入研究固件开发,包括演示如何添加ESP32支持流行亚博国际官网ArduinoIDE。

本教程分为几个部分,你可以使用右边的菜单导航。这些部分包括:

尚未实施

Arduino ESP32板定义仍然是一项正在进行中的工作。还有一些外围设备和特性尚未实现,包括:


  • 蓝牙
  • 模拟输入(analogRead((销)))
  • 模拟Ouptut (analogWrite((销)(值)))
  • 无线网络服务器和无线UDP
  • 实时时钟
  • 触摸-控制接口

这些外围设备是可用的(如果同时,还在起步阶段)物联网开发框架对于ESP32。如果应用程序需要蓝牙,模拟输入,或任何以上的特性,考虑给ESP-IDF一试!!

材料单

ESP32包括几乎所有你需要开始使用和编程WiFi / BT SoC。事实上,唯一需要额外的是Micro-B USB电缆.ESP32 Thing的USB接口可用于对芯片进行电源和编程。一旦完成了对芯片的编程,一5 v Micro-B USB适配器可用于电力董事会。

墙适配器供电2 - 5 v直流(USB Micro-B)

墙适配器供电2 - 5 v直流(USB Micro-B)

托尔- 12890
5.95美元
16
USB micro-B电缆6英尺

USB micro-B电缆6英尺

出租车- 10215
4.95美元
十一
亚博官网SparkFun Cerberus USB电缆- 6英尺

亚博官网SparkFun Cerberus USB电缆- 6英尺

CAB-12016
6.97美元
13
USB Micro-B电缆- 6

USB Micro-B电缆- 6””

出租车- 13244
1.95美元

作为替代电源,ESP32 Thing包括亚博国际官网单细胞锂聚合物(脂肪)电池,插进董事会的白2-pin JST连接器。LiPo’s非常适合正在进行的项目,亚博官网或那些只需要一点额外的嗯呼。董事会包括LiPo充电器,充电电池可以用备份堵塞的东西到5 v USB来源。

锂离子电池- 1啊

锂离子电池- 1啊

prt - 13813
9.95美元
7
锂离子电池-400mAh

锂离子电池-400mAh

prt - 13851
4.95美元
9
锂离子电池- 2啊

锂离子电池- 2啊

prt - 13855
12.95美元
锂离子电池-850mAh

锂离子电池-850mAh

PRT-13854
9.95美元
2

最后,将ESP32的28个I/O引脚连接到外部组件,你需要做一些焊接。焊接工具,包括一个焊料,是一个必须为任何电子工作台。,要么报头线是我们推荐的伴侣焊接到活着的东西。

打破头,直

打破头,直

PRT-0116
1.50美元
二十
架空电线-分类(滞留,22 AWG)

架空电线-分类(滞留,22 AWG)

prt - 11375
16.95美元
18
无铅焊料-100克焊盘

无铅焊料-100克焊盘

托尔- 09325
7.95美元
7
烙铁- 30 w(我们,110伏特)

烙铁- 30 w(我们,110伏特)

托尔- 09507
9.95美元
6

建议阅读

这看起来很吓人,但ESP32的,尤其是当你利用它的Arduino兼容性——是一个完美的物联网基础电子所有经验层次的用户。有,然而,几个概念之前,您应该熟悉冒险深入本教程。如果任何低于外国声音的概念,首先考虑阅读教程:

如何焊接:通孔焊接

本教程涵盖了所有你需要知道的通孔焊接。

串行通信

异步串行通信概念:分组,信号的水平,波特率,uart和更多!!

一个项目如何权力呢亚博官网

的教程,帮助找出项目的电力需求。亚博官网

Arduino是什么?吗?

这Arduino的东西到底是什么呢?吗?

硬件概述

Es.f的ESP32是市场上最独特的微控制器之一。清单的功能包括:

  • 双核Tensilica LX6微处理器
  • 240 mhz时钟频率
  • 520kB内部SRAM
  • 综合802.11 BGN无线收发器
  • 集成双模式蓝牙(经典和BLE)
  • 2.2到3.6 v操作范围
  • 2.5µA深度睡眠电流
  • 32 GPIO
  • 10电极电容式触摸支架亚博国际官网
  • 硬件加速加密(AES,Sa2ECC,rsa - 4096)

ESP32的设计围绕着ESP32一切必要和单片机程序运行,加上一些额外的好处利用芯片的独特功能。

带注释的前图

外围设备和I / O

ESP32特性的标准硬件外围设备,包括:

而且,多亏了芯片引脚复用特征,这些外围设备可以连接到任何28日爆发的I / O管脚。那意味着决定哪些针处方,TX,味噌,莫西SCLK,SDA。sci,等。

有,然而,一些硬件特性——即ADC和DAC——分配静态别针。下面的图形参考帮助演示,您可以找到这些外围设备(点击embiggen !)。

图形数据表

点击图片查看仔细看。

一个我2C,两个UART接口,并且SPI接口之一可以被分配给项目需要的任何引脚。亚博官网

只输入插脚:34-39

针34岁35岁,36岁,37岁的38和39不能被配置为输出,但它们可以用作数字输入,模拟输入,或其他独特的目的。还要注意,他们没有内部上拉或下拉电阻,像其他I / O管脚。

GPIO管脚》是不可分割的一部分的超低噪声前置放大器ADC——他们是连接270 pf电容器,这有助于配置前置的采样时间和噪音。

销34-39的图形闭合

ESP32事物示意图:GPIO》与限制联系在一起。那些和固定针34和35只输入!!

驱动ESP32的事情

两个主要电力输入ESP32的事情通用串口总线和一个单细胞锂聚合物(脂肪)电池。如果USB和LiPo都插到板上,车载充电控制器的速度将收取脂肪电池500毫安。

ESP32的操作电压范围是2.2到3.6 v。在正常操作下,ESP32物件将以3.3V为芯片供电。I / O引脚不是5 v-tolerant!如果你用5 v接口董事会(或更高版本)的组件,你需要做一些水平移动。

3.3 v调节器关于ESP32事物罐可靠地供应600 ma,对于大多数项目来说,这应该足够多的开销。亚博官网ESP32可以容纳多达250 ma在射频传输,但是我们通常测量它消耗大约150mA——即使通过WiFi进行主动传输。调节器的输出也爆发的董事会——大头针标记”“3V3”。这些针可以用来供给外部组件。

ESP32功率输入/输出

除了USB和电池连接器,的VBAT,和VUSB针都爆发了双方的董事会。这些管脚可以用作物件的替代供应输入。最大的,允许电压VUSB是6 v的输入,和VBAT不应该连接到任何一个脂肪电池。或者,如果你有一个在2.2V到3.6V之间的稳压电源,“3 v3”线可以用来直接供应ESP32及其外围设备。

组装技巧

ESP32物件船没有任何焊接到头部引脚-确保您可以模制板最适合您的项目。亚博官网使用芯片的引脚你需要焊锡某物到输入输出和电源轨道的通孔突破到董事会的任何一边。

焊接新手?看看我们 通孔焊教程简单介绍了!!

什么你焊到ESP32事物的I/O引脚是完全取决于你。标题行breadboard-compatible,所以你可能需要焊接公头在。(稍微令人满意:ESP32 Thing的一对20针头意味着您可以从我们的40针头条中得到最大的好处。)

男人的头ESP32焊接

然后把它插到面包板上,将USB和LiPo连接器挂断,开始布线!!

ESP32事案板行动

所有这些电线和组件,还有很多GPIO需要使用!!

或者,,女头(您可能需要两个单独的条焊所有40针),,直角标头,或绞线都是不错的选择,根据您的项目的需要。亚博官网

安装ESP32 Arduino核心

的一双Tensilica核心ESP32 Xtensa-based——不是你的手臂或AVR标准。幸运的是,仍有ESP32 GNU编译器可用,这打开了一个可能的开发环境(IDE)设置的世界!本教程的其余部分包括设置与ESP32 Arduino IDE支持,亚博国际官网和文件几个简单例子草图来帮助你的WiFi / BLE单片机。

在抽象出许多复杂的开销时,ESP32的Arduino IDE也消除了对SoC一些更高级特性的访问。如果你想亲手建立更多先进的工具链ESP32,我们建议检查Espressif esp-idf GitHub库.esp-idf -物联网开发框架的简称是Espressif ESP32软件开发工具包(SDK)。

安装ESP32核心

Espressif官方ESP32 Arduino核心托管这里是GitHub.他们还没有安装Arduino的董事会经理(它应该很快就会来),但他们确实有一个组简单的安装方向帮助。

克隆或下载的核心

安装ESP32板定义,你需要下载esp32-arduino存储库的内容,把它们放在硬件/ espressif / esp32”目录在你的Arduino速写本目录.您可以使用git命令行工具,或从GitHub下载它们。

或者,这些文件可以安装在你的Arduino的基目录。在Windows上,可能是 C: /程序文件(x86) / Arduino /硬件和在Mac /应用程序/ Arduino.app /内容/ Java /硬件.

如果你有git,打开一个终端,导航到您的阿杜伊诺速写本,类型:

mkdir hardwarecd hardwaremkdir es.fcd es.fgit克隆https://github.com/es.f/arduino-esp32.git esp32

这些命令将一个“硬件“和“espressif”目录,然后下载arduino-esp32 GitHub库变成一个“esp32”文件夹。

示例终端命令

如果你没有胃口,,点击这里下载核心(或点击“下载“>下载ZIP”在GitHub页面),并将其解压缩到一个espressif / esp32目录在你的Arduino写生簿。

Windows文件夹安装

”txt板,”platform.txt”,和核心,医生,工具,等。文件夹都应该生活在esp32目录。

安装Xtensa和ESP32工具

ESP32编译代码,你需要Xtensa GNU compiler collection (GCC)安装在你的机器上。Windows用户可以运行get.exe,在esp32 /工具”文件夹。

get.exe的位置

Windows用户可以运行”get.exe”下载ESP32软件工具。

Mac和Linux用户可以运行工具python脚本下载工具。使用一个终端,导航到esp32 /工具文件夹。然后键入:

python get.py

“get.py”python脚本将下载Xtensa GNU工具和ESP32软件开发工具包(SDK),并将它们解压缩到适当的位置。您应该看到几个新文件夹”工具”目录,包括“sdk”和“xtensa-esp32-elf”一旦它被完成。

与ESP32 Arduino核心安装,您已经准备好开始编程。如果你还没有准备好,,将ESP32内容插入计算机使用微型B USB电缆。

插在面包板上的东西

FTDI司机

如果您以前从未将FTDI设备连接到您的计算机,你可能需要安装驱动程序USB-to-serial转换器。看看我们如何安装FTDI驱动程序教程以获得安装方面的帮助。

一旦插入了电路板(并安装了驱动程序),它应该被分配一个唯一的端口标识符。在Windows机器上,这将是类似于“COM #”,和在mac或Linux电脑会”的形式/dev/tty.usbserial-XXXXXX。””

选择董事会和端口

一旦安装ESP32 Arduino的核心,您应该看到一个“ESP32开发模块选择在你的”工具“>板”菜单。选择。

Arduino董事会选择

然后在工具“>港”菜单。

Arduino端口选择

你也可以选择“上传速度”.921600波特-选择最快的速度将代码加载到您的ESP32最快的,但可能无法上传一次。(它仍然是值得的速度增长!)

负载闪烁

确保你的工具链和董事会是适当的设置,我们将上传最简单的草图——眨眼!LED在GPIO 5是适合这个测试。另外,将ESP32连接到计算机上,这是一个很好的时间来测试序列。复制并粘贴下面的例子草图,成为新的阿杜伊诺素描:

语言:cint ledPin = 5;无效的设置(){ pinMode(ledPin,输出);Serial.begin(115200);}无效循环(){以“你好,世界!”;digitalWrite(ledPin高);延迟(500);digitalWrite(ledPin低);延迟(500);}

一切都设置正确,上传代码!一旦代码完成转移,,打开串行监视器将波特率设置为115200.您应该看到“你好,世界”开始飞过。

如果蓝色LED仍然暗淡,它可能仍然坐在引导装载程序。上传一个草图后,您可能需要 利用RST按钮让你的ESP32开始运行草图。

串口输出示例

你可能也注意到ESP32启动时,它将输出一个长序列的调试消息。这些信号在每次芯片复位时发出——总是在115200波特。

Arduino的例子:无线网络

ESP32 Arduino核心包括少数WiFi的例子,它展示了扫描附近的网络将数据发送到data.spark..com亚博官网.你可以找到下面的例子文件>实例>无线网络菜单。

这是另一个例子使用WiFi库,这演示了如何连接到附近的无线网络和调查远程域(http://example.com/)作为一个客户:

语言:c#include
           
            //WiFi网络名称和密码:const char*networkName="你_网络_这里”;const char * networkPswd = "YOUR_PASSWORD_HERE”;/ /互联网域名的请求:const char * hostDomain = "example.com”;const int hostPort = 80;常数int BUTTON_PIN=0;const int LED_PIN = 5;无效的设置(){/ / Initilize硬件:Serial.begin (115200);pinMode(BUTTON_PININPUT_PULLUP;pinMode (LED_PIN输出);/ /连接到无线网络(见下面的函数循环)connectToWiFi (networkName,networkPswd);digitalWrite (LED_PIN低);/ /并救出(“按0键连接;Serial.println(主机域);}无效循环(){如果(digitalRead(BUTTON_PIN)= =低){ / /检查按钮是否被按下时(digitalRead(BUTTON_PIN)= =低);/ /等待按钮被释放digitalWrite (LED_PIN,高);/ /打开了requestURL(hostDomainhostPort);/ /连接服务器digitalWrite (LED_PIN,低);/ /关闭导致}}无效connectToWiFi (const char *名称,const char * pwd) {int ledState = 0;printLine ();以“连接到WiFi网络:+字符串(ssid));WiFi.开始(ssid,随钻测井;而(WiFi.status()!= WL_CONNECTED){/ /眨眼领导当我们连接:digitalWrite (LED_PIN,莱德邦);ledState=(ledState+1)%2;//翻转ledState延迟(500);并同时”.";}以();以“无线网络连接!”;并同时”IP地址:“;以WiFi.localIP ());}无效requestURL (const char *主机,uint8_t端口){ printLine();以“连接到域:+String(host));/ /使用WiFiClient类建立TCP连接WiFiClient客户;如果(!client..(主机,port){Serial.println("连接失败”;返回;}Serial.println("有联系的!”;printLine ();/ /这将向服务器发送请求client.print((字符串)”GET / HTTP / 1.1 \ r \ n”+”主持人:“+字符串(主机)+”\ r \ n”+”连接:紧密\ r \ n \ r \ n”;无符号长超时=米尔斯();而(client.available() = = 0){如果超时(米尔斯()- > 5000){以”> > >客户端超时!”;client.stop();返回;}}/ /阅读所有的回复从服务器和打印他们连续而(client.available()){字符串行= client.readStringUntil (‘\ r’);并同时(线);}以();以“闭合连接;client.stop();{}无效printLine()以();for (int i = 0;我< 30;i+) Serial.print("- - - - - -”;Serial.println();}
           

确保你填写网络名称networkPswd变量名(SSID)和密码的无线网络!一旦您完成了以上操作并上传了代码,打开你的串行监视器.

无线串行终端输出示例

ESP32后连接到无线网络,它会等待你按下“0”按钮。敲击,这将导致ESP32发出HTTP请求example.com.您应该看到一个字符串的HTTP header和HTML类似于上面的截图。

使用Arduino插件

在我们离开你之前,这里有一些技巧,技巧,问题是寻找当你使用ESP32 Arduino核心。

销的映射

您使用的密码digitalWrite([pin]),(值))digitalRead((销))应该匹配那些印刷到板上。您还可以引用图形数据表,如果小数字是一个眼睛。

这两个我2C接口支持的亚博国际官网线库.SDA和sci别针被分配,默认情况下,针21和22。

2C信号 ESP32销
SDA 21
SCL 二十二

以及SPI库应该支持所有三亚博国际官网种可能的SPI接口。默认情况下,这里有销映射的接口:

SPI信号 ESP32销
莫西人 23
味噌 十九
SCLK 18
党卫军 5

除了SPI和我2C,Arduino内核还支持任何引脚上的亚博国际官网attachInterrupt()函数。

尚未实施

Arduino ESP32板定义仍然是一项正在进行中的工作。还有一些外围设备和特性尚未实现,包括:

  • 蓝牙
  • 模拟输入(analogRead((销)))
  • 模拟Ouptut (analogWrite((销)(值)))
  • 无线网络服务器和无线UDP
  • 实时时钟
  • 触摸-控制接口

这些外围设备是可用的(如果同时,还在起步阶段)物联网开发框架对于ESP32。如果应用程序需要蓝牙,模拟输入,或任何以上的特性,考虑给ESP-IDF一试!!

资源,进一步

ESP32 Thing的设计是开源!你可以下载,看来,和修改鹰形档案(PCB设计),检出的示意图,或建议修正ESP32 Thing GitHub存储库.

ESP32仍处于起步阶段,但是资源是芯片的地方出现。查看这些链接中的一些以获得更多信息,文档,和例子。

你也可以看看这些链接更进一步。

  • ESP-IDF-物联网开发框架——如果你想要从Arduino开发环境上了一个新台阶,这应该是你的第一步ESP32软件开发。在以色列国防军一些笔记:
    • 以色列国防军是证据确凿的。检查设置指南(对于Windows,Mac或Linux)用于帮助建立环境。对于API和数据结构的帮助,退房esp32.info.
    • 有少数的示例应用程序,包括BLE广告的例子,工作作为一个概念验证ESP32蓝牙的支持。亚博国际官网
    • 使用ESP-IDF项亚博官网目模板,一旦您准备好开始创建自己的应用程序。
  • Blynk——Blynk允许您控制物联网开发板和一个容易可配置的iOS和Android应用程序。而且它已经支持ESP32了!亚博国际官网!

对于更多与ESP32相关的教程,看看下面。

MicroPython编程教程:从ESP32开始

MicroPython是可用于微控制器的Python 3编程语言的实现和子集。本指南将指导您完成编写MicroPython程序ESP32的开发板。

ESP32运动盾联播指南

开始使用ESP32的运动保护检测运动使用车载LSM9DS1 IMU和添加一个GPS接收器。通过向插槽中添加微SD卡,可以容易地记录数据。

物联网体重日志规模

本教程将向您展示如何做,将你的体重记录到定制的网站在互联网上。这些原理可以外推到任何类型的数据。

如何加载MicroPython单片机板

本教程将向您展示如何加载MicroPython解释器上各种各样的开发板。

如果你需要一些项目的灵感,亚博官网看看这些以物联网为中心的项目,然后开始制作吧!亚博官网!

从负载单元开始

本教程定义了什么是负载单元以及如何使用它。

LED云连接云

做一个RGB彩色的云轻!你也可以从你的手机控制它,或者适应天气!!

光子远程温度传感器

亚博在线娱乐官网学习如何构建自己的Internet-connect,太阳能使用的光子粒子温度采集站。

ESP8266动力丙烷噗

亚博在线娱乐官网了解尼克·普尔建造了一个无线控制开发板使用ESP8266 fire-cannon的事!!

物联网工业规模

什么一个婴儿大象有多重?跳跃有多大的冲击力?通过使用SparkFun OpenScale构建您自己的IoT工业规模来回答这些问题和更多的问题。亚博官网

或查看这些相关的博客文章。