一、所需硬體材料
1.ESP8266:01s某寶上3、5塊錢
2.杜邦線:某寶幾塊錢一組40P,這裡只需要三根,用於連線 樹莓派與繼電器
3.燒錄器
二、ESP8266 AT韌體燒錄
ESP8266主要有兩種韌體,一種是AT韌體(一般出廠自帶)實現UART-WiFi 透傳模組,一種是IoT韌體,即我們自己編寫通過IDE燒錄的韌體,如果ESP8266中包含這種韌體無法通過AT命令實現透傳,需要從新燒錄AT韌體。
0,軟體準備:
- Flash下載工具 flash_download_tools, 樂鑫官網下載地址 https://www.espressif.com/zh-hans/support/download/other-tools
- ESP8266 AT韌體, 樂鑫官網下載地址 https://www.espressif.com/zh-hans/support/download/at
我選的是 ESP8266 NonOS AT Bin V1.7.4
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 傳送資料
+++ 注意退出透傳,直接傳送。取消傳送新行