2017年9月13日 星期三

ARDUINO與ESP8266 ESP01 WIFI 使用AT通訊紀錄2

AT指令:

1. AP模式

1-1.AP指令

(1)重啟模塊 : AT+RST
(2)設置模塊 :AT+CWMODE=<mode>
<mode>:1.Station模式 2.AP模式 3.AP+Station模式
指令:AT+CWMODE=2 or AT+CWMODE=3
附註:需重啟模塊後生效
(3)配置AP參數 :AT+ CWSAP= <ssid>,<pwd>,<chl>, <ecn>
(only AP模式使用)
<ssid>:字串,接入點名稱
<pwd>:字串,密碼最長64Bytes
<chl>:通到號
<ecn>:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK
(4)查看以接入設備IP:AT+CWLIF
(5)查詢本機IP:AT+CIFSR
AP模式禁用,可能當機

1-2.Server傳送

(1)開啟多連接模式:AT+CIPMUX=<mode>
<mode>:0.單路連結模式 1.多路連結模式
指令:AT+CIPMUX=1
(2)創建伺服器:AT+CIPSERVER=<mode>[,<port>]
<mode>:0.關閉server模式 1.開啟server模式
<port>:端口號,預設值:333
指令:AT+CIPSERVER=1,8080
附註:
1)AT+CIPMUX=1時才可開啟伺服器,關閉server模式需重啟
2)開啟server後自動建立監聽,當有client接入會自動按順序暫用一個連接

(3)設置服務器愈時時間:AT_CIPSTO=<time>
<time>:服務器愈時時間 0~2880
(4)建立客戶端
下載測試軟體USR-TCP232-Test
http://www.usriot.com/usr-tcp-test-testing-software/

















TCP Client已連線192.168.2.105,8080

(5)查看當前連接:AT+CIPSTATUS
(6)向某個連結發送數據:AT+CIPSEND=<id>,<length>
<id>接收端的id
<length>發送數據的長度
指令:AT+CIPSEND=0,10
顯示">"後可輸入傳送字串"HAPPY TIME"
Receive AS HEX:需取消勾選,才可顯示字串

1-3.Client傳送

(1)關閉server服務:AT+CIPSERVER=0 
(2)重啟模塊:AT+RST

(3)建立Server端,使用軟體USR-TCP232

(4)開啟多連接模式:AT+CIPMUX=1
(5)建立TCP連接:AT+CIPSTART=0,"TCP","192.168.2.104",8080  
備註:
<id>:0-4,連接的id號
<type>:字串參數,連接類型,”TCP”-建立TCP連接,”UDP”-建立UDP連接
<addr>:字串參數,遠程服務器IP地址
<port>:遠程服務器端口號
(6)向某個連結發送數據:AT+CIPSEND=0,10

指令輸入完成後

接收數據"HAPPY TIME"

ARDUINO與ESP8266 ESP01 WIFI 使用AT通訊紀錄1

目的

使Arduino UNO R3與ESP8266-ESP01建立AT通訊

使用主要元件:

  • Arduino UNO R3
  • ESP8266-ESP01 WIFI模塊



接線圖


使用Arduino下達AT命令

1.以下為Arduino MEGA 2560與ESP8266 通訊

/*
* Arduino MEGA2560與ESP8266 AT通訊
*/
void setup() {
Serial1.begin(9600); //RX1/TX1,即 Pin18 及 Pin19
Serial.begin(9600); //RX0/TX0
}

void loop() {
if (Serial1.available()) {
Serial.write(Serial1.read());
}

if (Serial.available()) {
char chars = Serial.read();
Serial1.write(chars);
}

2.以下為Arduino Uno 與ESP8266 通訊

/*
* Arduino UNO與ESP8266 AT通訊
*/
#include <SoftwareSerial.h>
SoftwareSerial WIFI(4,5);// make RX Arduino line is pin 4, make TX Arduino line is pin 5.
void setup() {
WIFI.begin(9600); //RX1 TX1,軟體模擬通訊
Serial.begin(9600); //RX0/TX0

}

void loop() {
if (WIFI.available()) {
Serial.write(WIFI.read());
}

if (Serial.available()) {
char chars = Serial.read();
WIFI.write(chars);
}
}


通訊連線測試

(1)輸入"AT"
(2)回應"OK"
通訊成功狀態

Arduino LCD1602練習筆記

LCD 1602顯示元件 目的 輸入字串顯示在LCD 元件 1.Arduino UNO 2.LCD1602+LCM1602IIC 線路圖 /*  * LCD練習  */ #include <LiquidCrystal_I2C.h> LiquidCryst...