找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3751|回复: 2
打印 上一主题 下一主题
收起左侧

arduino之旅第七站_串口通讯

[复制链接]
跳转到指定楼层
楼主
ID:51269 发表于 2014-11-10 21:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
恶补了一个礼拜的51单片机课程,把大学计算机的基础课程复习了一圈,对单片机的原理有点感觉了,汇编虽然基本看不懂,但是单片机的程序基本是C语言,还算能看懂。经过不懈的努力,终于把WIFI-UART彻底搞明白了,很简单,就是一个wifi自动转发串口的外设。其实还有一个AP模式,就是wap口接互联网,然后可以作为AP,供手机/手提之类上网,以后出差,可以带上,在酒店里面用。
   今天,把DHT11和WIFI-UART模块整合在一起,现在可以通过电脑和手机端实时查询房间的温湿度信息了。然后尝试了openwrt的端口映射,通过互联网访问内网,失败了,不知道是不是运营商那边在使坏。下一步,准备研究在openwrt 上写守护进程,然后通过守护进程访问互联网服务器。



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;
// 定义参数数组的长度
public final int DATALENGTH = 200;
// 定义接受数据的长度
public final int RESULTLENGTH = 712;
// 定义字符型数组的长度
public final int CHARLENGTH = 100;
// 定义数字型数组的长度
public final int INTLENGTH = 4;
// 定义服务器ip地址
public final String serverIP = "192.168.1.100";
// 定义服务器端口号
public final int port = 8080;
// 发送参数
public void SendMessage(String msg) {
   try {
    socket = new Socket(serverIP, port);
    out = new DataOutputStream(socket.getOutputStream());
    // 将对象转换为数组
    byte[] r = msg.getBytes();
    System.out.println("length:"+r.length);
    for(int i = 0; i < r.length; i++) {
     System.out.println(r);
    }
   
    // 请求服务器端
    out.write(r);
   } catch (UnknownHostException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   }
}
// 接受数据
public void getMessage() {
   try {
    in = new DataInputStream(socket.getInputStream());
    // 定义存放接受的数据的字符数组
    byte result[] = new byte[RESULTLENGTH];
    // 接受数据
    in.read(result);
    // 分割各个返回的数据
    byte wel[] = new byte[50];
//    System.arraycopy(result, 0, wel, 0, 14);
    System.arraycopy(result, 0, wel, 0, 50);
   
    // 测试接收的结果
    System.out.println("返回结果是:" + new String(wel));
   } catch (IOException e) {
    e.printStackTrace();
   }
}
// 用于测试的主函数
public static void main(String arg[]) {
   VaasClient a = new VaasClient();
   a.SendMessage("[HLK]");
   a.getMessage();
}
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:62971 发表于 2015-8-26 15:32 | 只看该作者
文不对题嘛
回复

使用道具 举报

板凳
ID:91197 发表于 2015-9-28 07:57 | 只看该作者
怎么不是Arduino的内容呢、?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表