找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3998|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

arduino之旅第七站_串口通訊

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:51269 發(fā)表于 2014-11-10 21:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
惡補了一個禮拜的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();
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:62971 發(fā)表于 2015-8-26 15:32 | 只看該作者
文不對題嘛
回復(fù)

使用道具 舉報

板凳
ID:91197 發(fā)表于 2015-9-28 07:57 | 只看該作者
怎么不是Arduino的內(nèi)容呢、?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表