之前做了一個小的APP,可以與原子的ESP8266通信,實現發送字符串,如果你也恰好想要用到這類功能,希望這篇帖子能夠幫助到你。
準備條件:
1.自身條件:
(1)有一點點Java基礎,不會也沒太大關系。
2.硬件條件
(1)一臺電腦 安裝好Android studio 與 串口調試助手
(2) 兩部手機(一部手機也可以,但需要路由器)
(3) USB轉TTL模塊
好了,條件就這么多。
本文使用的是Socket通信,也就是套接字,具體概念有興趣可以自行百度,本文不在介紹,因為沒什么實際用處。我們只需要知道它可以與ESP8266 WIFI 通信,其他的先不管
Socket有兩個主要參數 IP 和 PORT,也就是目標設備(ESP8266)在局域網下的 IP地址 和開放的端口,注意,IP地址由路由器或者手機熱點分配,端口地址由模塊 AT指令配置。
主要內容是這樣的:
Socket mSocket;//新建了一個 socket 對象,但是沒有分配內存等等,不可以使用
mSocket = new Socket(Ip,port);//分配了實體,此后可以由輸出流輸入流 寫入 和讀出待發送(接收)的數據
out = new PrintStream(mSocket .getOutputStream());//獲得輸出流
out .write(("hello world!" + ' \n ' ).getBytes("utf-8" ));//寫入輸出流
out .flush();//發送數據好了,主要內容就這么多,是不是很簡單,快去試試吧。
注意有一個小坑,就是 new Socket(Ip,port); 這種與Socket有關的操作是不可以放在主線程之中的,因為Android規定了這些操作是會阻塞主線程的,解決辦法就是放在一個子線
程之中操作,就可以了。
|