Arduino uno r3 使用 ESP8266 UART-WiFi 透傳模組

ejiyuan發表於2021-11-21

一、所需硬體材料

1.ESP8266:01s某寶上3、5塊錢

2.杜邦線:某寶幾塊錢一組40P,這裡只需要三根,用於連線 樹莓派與繼電器

  

3.燒錄器

二、ESP8266 AT韌體燒錄

ESP8266主要有兩種韌體,一種是AT韌體(一般出廠自帶)實現UART-WiFi 透傳模組,一種是IoT韌體,即我們自己編寫通過IDE燒錄的韌體,如果ESP8266中包含這種韌體無法通過AT命令實現透傳,需要從新燒錄AT韌體。

0,軟體準備:

1,連線燒錄器:

如果是ESP01s 直接插入燒錄器,然後插入電腦usb介面;如果是12E/F按陣腳對應接線,注意GPIO0、GPIO2必須接,模組CH_PC接燒錄器EN(網上說需要接10k電阻,我沒接)

 2,軟體燒錄

  • 在出現的視窗中, 選擇SPIDownload標籤頁(預設是這一頁)
  • 在韌體選擇欄中, 勾選需要寫入的行, 檔案和地址分別為
  •   boot_v1.7.bin 0x00000
  •   user1.1024.new.2.bin 0x01000
  •   esp_init_data_default_v08.bin 0xfc000
  •   blank.bin 0x7e000
  •   blank.bin 0xfe000
  • 檢查下面的引數配置: CrystalFreq 26M, SPI SPEED是40MHz, SPI MODE是DIO, FLASH SIZE是8Mbit
  • 介面右下方, 選擇正確的COM口, 波特率使用預設的115200
  • 點選START

三、連線到Arduino uno 到ESP8266

1,連線圖

2、程式碼

const int tx = 1;
const int rx = 0;
void setup() {
  pinMode(rx,INPUT_PULLUP);
  pinMode(tx,INPUT_PULLUP); 
}

void loop() {

}

以上連線的Arduino上的0和1是硬串列埠,也可使用軟串列埠比如設定arduino上的8號口為rx,9號口為tx。就需要把ESP8266 的rx連線到Arduino的9號口上,模組的tx連線Arduino的8號口上,程式碼如下:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); // RX, TX
void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
  delay(1000);
  Serial.println("Goodnight  moon2");
  mySerial.println("AT+GMR");
}
void loop() {
  while (mySerial.available()) {
    Serial.write(mySerial.read());
  }
}

3、除錯,開啟串列埠工具

 4,使用AT命令透傳

 

AT+GMR 檢視版本資訊 //查詢韌體版本資訊

四、AT 常用命令

AT+RST //重啟模組
AT+GMR //檢視版本資訊
AT+CIOBAUD=9600 //修改波特率
AT+CWMODE? //查詢工作模式 1.Station (客戶端模式)2.AP (接入點模式)3.Station+AP (兩種模式共存)
AT+CWMODE=1 //設定模組為STA模式。
AT+CWLAP //查詢附近 WIFI
AT+CWJAP="wifi名稱","wifi密碼" //連線路由器的 WIFI
AT+CIFSR //檢視路由器分配給模組的IP地址,例如 192.168.43.103
AT+CIPMUX=0 //設定單連線
AT+CIPMODE=1 //設定透傳模式
AT+CIPSTART="TCP","192.168.43.104",8899 //建立的TCP伺服器
AT+CIPSEND //開始傳送資料
>      //進入傳送模式
abc     //傳送資料
+++     //注意退出透傳,直接傳送。取消傳送新行

五、參考

  

相關文章