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

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

    关注

    90

    文章

    3707

    浏览量

    96759
  • ESP8266
    +关注

    关注

    51

    文章

    966

    浏览量

    48999
  • ESP-01
    +关注

    关注

    1

    文章

    18

    浏览量

    5084
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) ESP8285/ESP8266芯片案例

    【应用】国产26MHz频率晶振应用于物联网WIFI物联网模块(串口转WiFi模块),Espressif(乐鑫)ESP8285/
    的头像 发表于 11-21 15:37 4043次阅读
    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) <b class='flag-5'>ESP</b>8285/<b class='flag-5'>ESP8266</b>芯片案例

    ESP8266ESP32开发板常见的2种下载方式

    ESP32和ESP8266是性价比很高而且使用较为广泛的的Wi-Fi模块物联网(IoT)领域的DIY项目中可以首先考虑这2款产品。 两款芯片都属于32位处理
    的头像 发表于 11-10 20:30 323次阅读
    <b class='flag-5'>ESP8266</b>和<b class='flag-5'>ESP</b>32开发板常见的2种下载方式

    蜂鸟处理进行RT-Thread+ESP8266 wifi模块开发

    本队伍编号CICC3042,本文介绍蜂鸟处理运行RT-Thread实时操作系统,并进行ESP8266wifi
    发表于 10-31 09:02

    ESP8266ESP32开发板常见的2种下载方式

    协议,完整的 TCP/IP 协议栈以及蓝牙协议栈。用户可以使用这两款模块为现有的设备添加WIFI联网功能或蓝牙(ESP32),轻松的构建独立的网络控制器和远程
    发表于 10-24 18:04

    请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗

    请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
    发表于 09-17 12:06

    ESP8266】进入透传模式后,数据间隔怎么调整,

    01.TCP客户端用ESP8266透传模式发送数据是10ms发送一次,(连续发送) 02.TCP服务接收到的数据是200ms左右接收一次,数据未丢失,但是更新不及时; 03.通过TCP调试助手已
    发表于 09-15 10:16

    STM32+esp8266连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码移植)

    代码,并通过手机APP进行设备控制。元器件准备开始之前,您需要准备以下硬件元器件:1.STM32开发板2.ESP8266Wi-Fi
    的头像 发表于 07-15 18:54 745次阅读
    STM32+<b class='flag-5'>esp8266</b>连接机智云,上传温湿度数据并<b class='flag-5'>控制</b>继电器开关(平台配置、代码生成、代码移植)

    单片机实例项目:ESP8266串口WIFI

    单片机实例项目:ESP8266串口WIFI,推荐下载!
    发表于 06-03 21:01

    【RA-Eco-RA4M2开发板评测】使用RA4M2和ESP8266实现MQTT协议上传传感数据到云服务并反向点灯控制

    马上就到RA4M2开发板评测的结尾了,今天给瑞萨论坛线上最具创意的一篇帖子,通过RA4M2开发板,和ESP8266 WIFI模块,然后通过手机上的MQTTOOL来实现手机控制RA4M2
    发表于 05-29 15:29

    ESP8266烧录与机智云一键配网教程

    ESP8266模块因其低成本和高性能,广泛应用于智能家居和工业自动化等领域。机智云平台提供了一键配网功能,简化了设备的联网过程。本教程将详细介绍如何使用ESP8266进行烧录,并通过机
    的头像 发表于 05-24 11:04 1549次阅读
    <b class='flag-5'>ESP8266</b>烧录与机智云一键配网教程

    零知开源——ESP8266+MPU6050 实现运动姿态检测

    零知ESP8266的I2C通信        在运动姿态检测、机器人平衡控制、VR头戴设备等应用中,MPU6050(三轴加速度计+三轴陀螺仪)是一个常见的姿态传感。而ESP8266
    的头像 发表于 02-20 17:54 2806次阅读
    零知开源——<b class='flag-5'>ESP8266</b>+MPU6050 实现运动姿态检测

    STM32和ESP32应该学哪个

    等等,市场占有率也很高。 ESP32相对年轻了不少,满打满算也不到 10 岁,他的前身,还得从 ESP8266 说起,都属于乐鑫科技的产品。 如果你用单片机做过一些物联网产品,那多多少少应该听过 ESP8266,这是一个非常常见
    的头像 发表于 02-18 09:52 1116次阅读

    CW32模块使用 ESP01S WIFI模块

    为现有的设备添加联网功能,也可以构建独立的网络控制器。即使不了解其原理的情况下,只要有一定的串口知识理解,那么就可以轻松上手该模块,进而实现手机WiFi操作。功能特点:基于
    的头像 发表于 01-23 13:08 1170次阅读
    CW32<b class='flag-5'>模块</b>使用 <b class='flag-5'>ESP01</b>S <b class='flag-5'>WIFI</b><b class='flag-5'>模块</b>

    ESP8266笔记-07.ESP8266ESP TOUCH

    可以从Smart Config的官方文档中可以看到ESP8266支持4种SmartConfig模式,其实是3种,有一种是混合的。 我们先采用第一种协议,也就是ESPTOUCH协议进行连接,具体的代码
    发表于 12-30 10:37

    ESP-12S规格书

    ESP-12s WiFi 模块是由安信可科技开发的,该模块核心处理 ESP8266
    发表于 12-23 15:10 3次下载