步驟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文章
3651瀏覽量
94368 -
ESP8266
+關注
關注
50文章
963瀏覽量
45901 -
ESP-01
+關注
關注
1文章
18瀏覽量
4882
發布評論請先 登錄
相關推薦
CW32模塊使用 ESP01S WIFI模塊

評論