① 給控制板刷一套空的程序。

② 將Esp8266模塊連接到Bigfish擴展板上,并將擴展板插到控制板上。

③ 在arduino的Seiral Monitor中,輸入AT指令集,觀察模塊的相應應答。

3. 常用指令
① 基礎AT指令
② WiFi功能AT指令。
③ TCP/IP 工具箱 AT 命令。
Rssi三點定位算法。

3. 實驗操作
① 使用文末資料中的“ESP8266調試工具”將三個模塊設置為AP模式,并記錄其NAME,用于存儲在程序中,按照下面方法連接ESP8266模塊和Basra主控板。
② 使用“ESP8266調試工具”將與主控板連接的WiFi模塊設置為Statino模式,按照下面方法連接ESP8266模塊和BigFish主控板,OLED顯示屏使用四芯輸入排線與BigFish進行連接。
③ 將實驗例程(ESP8266RSSIPosition.ino)下載到主控板中。
/*------------------------------------------------------------------------------------版權說明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.https://opensource.org/licenses/MITDistributed under MIT license.See file LICENSE for detail or copy at by 機器譜 2023-09-12 https://www.robotway.com/#include------------------------------*/ /*將與主控板相連接的wifi模塊使用“esp8266調試工具軟件”設置為Station模式 將其余三個模塊設置為AP模式,并記錄其NAME,存儲在程序中*/ //#define DEBUG #define ESP_AP_NUMBER 3 #include #include #include SoftwareSerial myESP(2,3);RssiPositionComputer myPositionComputer;Point2D master_point; LCD_SSD1306 lcd;char esp_ap_name[ESP_AP_NUMBER][10] = {"ESP826601","ESP826602","ESP826603"};int rssi[ESP_AP_NUMBER]; float distance[ESP_AP_NUMBER]; void setup() { delay(1000); Serial.begin(115200);while(!myESP.available())myESP.begin(9600); #ifdef DEBUG Serial.println("begin"); #endif while(myESP.available()&&myESP.read()); { myESP.println("AT");lcd.clear();delay(1000); } while(myESP.available()&&myESP.read()); #ifdef DEBUG Serial.println("Resonse ok"); #endif lcd.begin();for(int i=0;ilcd.setCursor(30,4); lcd.print("Hello, world!"); } void loop() { int n = searchESPAP(esp_ap_name,rssi);=0) name_string[n] = in_char;if(n == 8) { n = -3;ap_n = nameToNumber(name_string,name);if(ap_n != -1) { state = 2; #ifdef DEBUGSerial.print("ap_n:");Serial.println(ap_n);Serial.print('\n'); #endif } else { state = 0; } } }if(n == 2)else if(state==2) { n++; if(n>=0) rssi_string[n] = in_char; {rs[ap_n] = atof(rssi_string); state = 0; search_result_number++; #ifdef DEBUG}Serial.print('\n'); Serial.print("rssi["+String(ap_n)+"]:");Serial.println(rs[ap_n]); #endif }dis = pow(10.0,((abs(rssi)-47)/10.0/2.212));} return(search_result_number); } float rssiToDistance(int rssi) { float dis = 0; return dis;}
④ 將不同模塊按照三點定位擺放開(在1m×1m的空間內),如下圖所示,觀察實驗效果。