|
惡補了一個禮拜的51單片機課程,把大學(xué)計算機的基礎(chǔ)課程復(fù)習(xí)了一圈,對單片機的原理有點感覺了,匯編雖然基本看不懂,但是單片機的程序基本是C語言,還算能看懂。經(jīng)過不懈的努力,終于把WIFI-UART徹底搞明白了,很簡單,就是一個wifi自動轉(zhuǎn)發(fā)串口的外設(shè)。其實還有一個AP模式,就是wap口接互聯(lián)網(wǎng),然后可以作為AP,供手機/手提之類上網(wǎng),以后出差,可以帶上,在酒店里面用。
今天,把DHT11和WIFI-UART模塊整合在一起,現(xiàn)在可以通過電腦和手機端實時查詢房間的溫濕度信息了。然后嘗試了openwrt的端口映射,通過互聯(lián)網(wǎng)訪問內(nèi)網(wǎng),失敗了,不知道是不是運營商那邊在使壞。下一步,準備研究在openwrt 上寫守護進程,然后通過守護進程訪問互聯(lián)網(wǎng)服務(wù)器。

Java socket client模式:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class VaasClient {
Socket socket;
DataInputStream in;
DataOutputStream out;
// 定義參數(shù)數(shù)組的長度
public final int DATALENGTH = 200;
// 定義接受數(shù)據(jù)的長度
public final int RESULTLENGTH = 712;
// 定義字符型數(shù)組的長度
public final int CHARLENGTH = 100;
// 定義數(shù)字型數(shù)組的長度
public final int INTLENGTH = 4;
// 定義服務(wù)器ip地址
public final String serverIP = "192.168.1.100";
// 定義服務(wù)器端口號
public final int port = 8080;
// 發(fā)送參數(shù)
public void SendMessage(String msg) {
try {
socket = new Socket(serverIP, port);
out = new DataOutputStream(socket.getOutputStream());
// 將對象轉(zhuǎn)換為數(shù)組
byte[] r = msg.getBytes();
System.out.println("length:"+r.length);
for(int i = 0; i < r.length; i++) {
System.out.println(r);
}
// 請求服務(wù)器端
out.write(r);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 接受數(shù)據(jù)
public void getMessage() {
try {
in = new DataInputStream(socket.getInputStream());
// 定義存放接受的數(shù)據(jù)的字符數(shù)組
byte result[] = new byte[RESULTLENGTH];
// 接受數(shù)據(jù)
in.read(result);
// 分割各個返回的數(shù)據(jù)
byte wel[] = new byte[50];
// System.arraycopy(result, 0, wel, 0, 14);
System.arraycopy(result, 0, wel, 0, 50);
// 測試接收的結(jié)果
System.out.println("返回結(jié)果是:" + new String(wel));
} catch (IOException e) {
e.printStackTrace();
}
}
// 用于測試的主函數(shù)
public static void main(String arg[]) {
VaasClient a = new VaasClient();
a.SendMessage("[HLK]");
a.getMessage();
}
}
|
|