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

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

3天内不再提示

如何开始在ESP-01 WIFI模块上对ESP8266微控制器进行编程

454398 来源:网络整理 作者:网络整理 2019-11-11 16:50 次阅读

步骤1:配置Rapberry Pi

我使用了Raspberry Pi 3 Model B +,但是,说明应该适用于其他版本,尤其是在Model B上。

首先,我们需要在Pi上启用UART

转到RPi配置设置。在终端窗口中运行

$ sudo raspi-config

转到 5个接口选项,,然后选择 P6 Serial。 然后,您提示是否要通过串行访问登录shell? select ,因为我们不想使用UART无头运行Pi,而是与其他设备进行通信,因此在出现以下问题时会在以下屏幕上显示您要启用串行端口硬件吗?选择。根据提示重启树莓派。现在应该为Raspberry Pi 3的RX和TX引脚上的串行通信启用UART。注意:此后,在/boot/config的末尾应出现一个新条目 enable_uart = 1 。 txt。

步骤2:将ESP-01连接到Raspberry Pi

现在,我们开始进行所有接线

首先,在RPi上标识 3.3V电源 和 GND(接地) 》引脚为ESP8266微控制器供电, TXD(发送) 和 RXD(接收) 引脚进行通信,并且 两个通用引脚 来操作ESP8266(可以将其设置为高电平或低电平)。在pinout.xyz上查找引脚排列或输入端子

$ pinout

其次确定ESP-01上的必要引脚。但是从一开始我们就需要了解ESP-01引脚。我在互联网上找到了许多有用的资源,可以在这方面为您提供帮助。这个是最短的,而这个给出了更好的解释。简而言之:共有8个引脚,我们将需要7个引脚,分别是 VCC电源 和 GND(接地) 电源引脚, TXD 和 RXD 引脚进行通信,以及 RST (重置), CH_PD (芯片掉电,有时标记为CH_EN或芯片启用)和 GPIO0 来操作该模块。 ESP8266通常在常规模式下运行,但在将代码上传到ESP8266时,会注意其处于闪存模式。对于常规或正常运行模式,模块需要连接到电源(显然),但引脚CH_PD也必须通过10K连接到VCC(此值在不同的情况下会有所不同,我发现值降至3K)上拉引导时的电阻。另一方面,要进入闪存或编程模式,您需要在引导时将GPIO0引脚接地。为防止接地时流过GPIO0的电流不受限制,建议通过一些300Ω-470Ω低阻电阻将GPIO0接地(有关更多信息,请参见此处)。顾名思义,RST引脚复位(或重启)MCU。在正常操作期间,它可以通过10K上拉电阻连接到VCC,但应接地以复位微控制器。虽然始终可以使用物理按钮将RST和GPIO0引脚接地(甚至手动连接导线以模拟按钮),但使用Raspberry Pi引脚在模块的RST和GPIO0上设置高低电压会更令人愉悦。引脚。然后也就不需要10K和470Ω电阻了。

现在了解ESP-01引脚的特性了,我们就可以开始将所有东西连接在一起了。您可以将下表和上图用作参考:

ESP-01 《-》 Raspberry Pi

VCC(3.3V)《-》引脚# 1(3.3V)

GND 《-》引脚6(GND)

TXD 《-》引脚#10(RXD/BCM 15)

RXD 《-》针#8(TXD/BCM 14)

CH_PD 《-10K电阻器-》针#1(3.3V)

RST 《-》针#3(BCM 2 )

GPIO 0 《-》引脚#5(BMC 5)

最后连接VCC引脚。您连接到VCC引脚的实例将打开Wi-Fi模块。使用 screen 或 minicom 检查RPi和ESP8266是否可以使用UART通讯(注意:您可能需要安装 screen 或 minicom ,因为默认情况下似乎未在Raspbian上安装它们)。

使用屏幕运行:

$ sudo screen /dev/serial0 115200

使用minicom运行:

$ sudo minicom -b 115200 -o -D /dev/serial0

注意:许多在线参考资料建议连接到/dev/ttyAMA0 上的ESP8266,但根据RPi文档,此操作不适用于RPi 3或更高版本(包括零W)。通过/dev/serial0 或/dev/ttyS0 连接。

进入屏幕或minicom后,使用AT指令与ESP8266通讯。输入AT,然后按Enter,然后按Ctrl + J发送命令。您应该得到好的回应。可用的AT命令列表可在espressiff.com或此处找到。

将设备物理连接并相互交谈,我们就可以开始对RPi GPIO引脚进行编程,最后对ESP8266本身进行编程。

步骤3:软件设置(用于操作的Python和用于编程的Arduino IDE)

PART 1.使用python切换ESP8266模式

如上所述使用RPI的GPIO引脚切换ESP8266的操作模式非常方便。我编写了两个基本的python代码,将ESP8266置于常规或编程模式。

常规模式:要将微控制器置于常规操作模式,我们只需为其供电并通过上拉连接CH_PD电阻连接到VCC,但是要将MCU从编程模式切换到正常模式,我们需要对其进行重置(请考虑重启)。为此,我们将短暂拉低连接到ESP-01上RST引脚的RPi GPIO(默认情况下,我用于重置的RPi引脚设置为HIGH)。有多简短?对我来说,这是一个投机问题。您可以尝试不同的时间间隔,但我发现200-500毫秒的效果很好。如果您有更好的主意,请在评论中写。将代码另存为 reset.py 。

#!/usr/bin/python

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD) # sets GPIO identification by physical pin numbers

resetPin = 3 # identify RPi physical pin connected to ESP8266 RST pin

GPIO.setup(resetPin, GPIO.OUT) # set reset pin as output

GPIO.output(resetPin, GPIO.LOW) # drop voltage on RST pin

time.sleep(.2) # wait for .2 s

GPIO.output(resetPin, GPIO.HIGH) # restore voltage on RST pin

GPIO.cleanup() # reset pins on RPI to prevent future runtime warnings

编程模式:要将MCU置于编程模式,我们需要为ESP8266供电GPIO0接地,或者在引导时将其复位并接地GPIO0(再次,确切的电压降持续时间我不太清楚,因此请不要严格按照使用的值进行操作)。将代码另存为 flash.py 或在下面下载。动作的顺序如下:

上拉RST引脚

上拉GPIO0引脚

上拉RST引脚

上拉GPIO0 pin

#!/usr/bin/python

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BOARD) # sets GPIO identification by physical pin numbers

resetPin = 3 # identify RPi physical pin connected to ESP8266 RST pin

flashPin = 5 # identify RPi physical pin connected to ESP8266 GPIO0 pin

GPIO.setup(resetPin, GPIO.OUT) # set reset pin as output

GPIO.setup(flashPin, GPIO.OUT) # set flash pin as output

GPIO.output(resetPin, GPIO.LOW) # drop voltage on RST pin

time.sleep(.2) # need for this waiting is speculative

GPIO.output(flashPin, GPIO.LOW) # drop voltage on GPIO0

time.sleep(.2) # need for this waiting is speculative

GPIO.output(resetPin, GPIO.HIGH) # start booting ESP8266

time.sleep(.5) # wait for ESP8266 to boot

GPIO.ouput(flashPin.GPIO.HIGH) # restore voltage on

GPIO pinGPIO.cleanup() # reset pins on RPI to prevent future runtime warnings

在终端更改权限中:

$ sudo chmod +x flash.py

$ sudo chmod +x reset.py

从现在开始,只要您需要输入在终端上运行编程模式:

$ python /flash.py

上传代码以进入正常运行模式后运行:

$ python /reset.py

此时,您可能还需要更新ESP8266固件。有很多关于如何执行此操作的在线教程,因此我将不做详细介绍。

PART2。设置Arduino IDE

如果您已经安装了Arduino IDE,则可能仍要浏览本节,以确保您的IDE已为ESP8266准备就绪。

在Rapberry Pi上,您可以使用Arduino IDE来对ESP8266进行编程。有两种方法可以在RPi上安装IDE:

,使用apt-get install

从存储库通过命令行从arduino.cc下载并手动安装。

我强烈建议您走后一条路。仓库中的IDE版本似乎已过时,您一定要准备更多工作,才能开始对ESP8266进行编程。为避免麻烦,请转到Arduino.cc下载页面并下载Linux ARM版本。接下来解压缩并安装:如果下载文件的名称类似于 arduino-XYZ-linuxarm.tar.xz ,则在下载文件夹中运行:

$ tar -xvf arduino-X.Y.Z-linuxarm.tar.xz

这应将文件解压缩到 arduino-XYZ 文件夹。运行:

$ sudo 。/arduino-X.Y.Z/install.sh

这应该安装IDE。安装完成后,启动IDE。

从Arduino IDE转到 File》 Preferences 。在首选项窗口的底部查找“ 其他Board Manager URL ”。在“其他板管理器URL”字段中输入 http://arduino.esp8266.com/stable/package_esp8266com_index.json ,然后单击“确定”按钮。

转到工具》董事会:XXX》董事会经理。在窗口中使用搜索或向下滚动,选择ESP8266开发板菜单,然后单击安装。等待安装完成并关闭窗口。

再次转到工具》开发板:XXX ,然后寻找ESP8266开发板。选择通用ESP8266模块。

现在,IDE已准备好对ESP8266进行编程。输入所需的代码或将其粘贴到IDE窗口中并保存。点击上传。从终端运行 flash.py ,这应该使您的电路板进入编程模式。等待几分钟,以便IDE完成编译和上传(注意:ESP-01通常带有2个LED,在代码上传时蓝色LED会闪烁)并运行 reset.py 。现在您的ESP-01板就可以执行任务了。
责任编辑:wv

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

    关注

    88

    文章

    3618

    浏览量

    93769
  • ESP8266
    +关注

    关注

    50

    文章

    962

    浏览量

    45075
  • ESP-01
    +关注

    关注

    1

    文章

    18

    浏览量

    4853
收藏 人收藏

    评论

    相关推荐

    arduino(1)--ESP8266配置

    Module进行开发。 至此,ESP8266已经配置完毕。 代码 本文使用点亮LED来验证模块是否配置正确,点灯的代码如下所示。 上图可以得知LEDGPIO2
    发表于 09-06 11:00

    esp32和esp8266代码共用吗

    本文将介绍ESP32和ESP8266两款流行的微控制器代码共用性方面的可能性与差异性。 一、引言 随着物联网技术的飞速发展,越来越多的智能设备开始
    的头像 发表于 08-19 18:23 1180次阅读

    esp8266esp32区别是什么

    以下是关于ESP8266ESP32的主要区别: 处理和架构 : ESP8266 :使用一个Tensilica L106 80MHz的处理
    的头像 发表于 08-19 18:16 5473次阅读

    esp8266不烧录可以使用吗

    ESP8266是一款非常流行的Wi-Fi模块,广泛应用于物联网项目中。然而,如果不进行烧录,ESP8266将无法正常工作。 1. ESP8266
    的头像 发表于 08-19 17:28 842次阅读

    esp8266wifi模块怎么连接手机

    ESP8266 WiFi模块连接手机主要可以通过两种方式实现: 通过路由连接(STA模式)和直接作为热点连接(AP模式) 。以下是两种连接方式的步骤: 一、通过路由
    的头像 发表于 08-19 17:27 2955次阅读

    是否可以创建一个包含多个esp8266模块esp-01)的网状网络?

    我想知道是否可以创建一个包含多个 esp8266 模块esp-01)的网状网络。如果是这样,是否有任何指南/示例可以开始使用 esp8266
    发表于 07-19 08:31

    ESP-01固件更新下载/刷写后不工作了怎么解决?

    ESP-01 固件更新/下载/刷机后不工作 我正在开发使用 ESP-01 模块(小黑板)的产品。这些产品使用 PIC32MX 微控制器,目前我使用 PIC/
    发表于 07-19 08:15

    如何使用ESP-PROG编程器ESP-01无线模块(8 针)进行编程

    有没有人能够使用 ESP-PROG 编程器ESP-01 无线模块(8 针)进行编程? 我根本
    发表于 07-19 06:39

    ESP8266-01适合长时间使用吗?

    。由于某些寄存损坏,它似乎进入了挂起状态。(我无法验证寄存内容,这只是猜测) 目前唯一有效的解决方法是对 ESP 进行电源重置,这在我们的案例中是不可行的。 您能否告诉我们您对此
    发表于 07-18 06:45

    esp-01esp-12e实现串口转wifi桥接时的区别是什么?

    我正在有一个项目,我使用ESP8266作为串行到 wifi 桥接器。我从 windows7 运行的 python 代码串行发送数据到 esp82
    发表于 07-17 06:17

    如何在ESP8266逐步进行智能配置?

    我没有找到有关如何使用 at命令逐步配置智能配置的相关文档。 我正在使用外部微控制器ESP8266esp01 模块)通信。 我
    发表于 07-15 07:40

    如何配置ESP8266的I2S模块以接收来自外部微控制器的数据?

    如何配置 ESP8266 的 I2S 模块以接收来自外部微控制器的数据(例如,具有 I2S 接口的 STM32F303)? 我想通过 I2S 接口将数据从 STM32 连续传输到 ESP826
    发表于 07-12 14:08

    请问ESP8266为什么无法加入AP?

    我正在使用ESP8266最新的 SDK 版本 3.4。我编写了一个将加入 AP 的代码。代码 ESP8266 Devkit 运行,但不在 ESP
    发表于 07-08 08:24

    国产低成本Wi-Fi SoC解决方案芯片ESP8266ESP8285对比差异

    ESP8266ESP8285对比差异 ESP8285相当于ESP8266基础多加了1/2M
    的头像 发表于 05-17 11:44 1364次阅读
    国产低成本Wi-Fi SoC解决方案芯片<b class='flag-5'>ESP8266</b>与<b class='flag-5'>ESP</b>8285对比差异

    uart-wifi模块esp-01电后一直乱码咋回事

    ESP-01模块电后出现乱码的问题可能是由于多种原因造成的,以下是一些可能的原因及解决方法
    的头像 发表于 01-28 17:51 1990次阅读