与Openwrt(WiFi模块)的通信

一、WiFi模块单独使用(不连外网)

电脑连接WiFi模块发出的WiFi,或者直接用网线直接连接电脑和WiFi模块,就可以给WiFi模块发数据了。
一:WiFi模块上电后长按Reset键初始化
与Openwrt(WiFi模块)的通信_第1张图片

二:断开电脑与其它的网络连接,用网线连接上WiFi模块和电脑
与Openwrt(WiFi模块)的通信_第2张图片

三:打开浏览器,输入192.168.1.1进入WiFi配置页面,密码:123456登录。然后刷入固件:16M-V2-升级固件(初始是英文页面,没有中文包,刷固件后就有了,我的已经刷过了是中文)
与Openwrt(WiFi模块)的通信_第3张图片
与Openwrt(WiFi模块)的通信_第4张图片与Openwrt(WiFi模块)的通信_第5张图片与Openwrt(WiFi模块)的通信_第6张图片
点击浏览,找到固件
与Openwrt(WiFi模块)的通信_第7张图片
与Openwrt(WiFi模块)的通信_第8张图片

然后点击刷写固件

与Openwrt(WiFi模块)的通信_第9张图片

进入后点击执行,等待一段时间后刷好了自动跳回登录界面。重新登录
然后拔掉网线,连接WiFi模块的WiFi-robot,(直接不拔网线用网线连接也可以)
在这里插入图片描述

打开串口调试软件,修改两边对应的参数(串口在电脑上查看,波特率115200,打开电脑串口,然后修改右边网络协议类型,开始监听就可以测试了)(电脑一定要连WiFi模块发出的网络)
与Openwrt(WiFi模块)的通信_第10张图片

验证:(串口线别接错)然后就可以通过WiFi模块控制单片机了
与Openwrt(WiFi模块)的通信_第11张图片
单片机控制的话直接写单片机串口程序就好了,设置波特率,串口接收发送。我写的是ardino程序控制小灯泡验证。

#include 
int led = 2;
char kk;
void setup() {
  // put your setup code here, to run once:
  pinMode(led,OUTPUT);
  Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
  while(Serial.available()>1){Serial.read();}
  kk = Serial.read();
  if(kk=='a'){
    digitalWrite(led,HIGH); 
  }
  if(kk=='b'){
    digitalWrite(led,LOW);
  }
}

还有可以用java程序给WiFi模块发数据。(还是需要电脑连模块WiFi)
打开串口显示WiFI模块接收的数据,右边的连接关掉,不然端口占用接收不到。
与Openwrt(WiFi模块)的通信_第12张图片运行java程序,分别发送三个数据,上面有显示接收。

与Openwrt(WiFi模块)的通信_第13张图片
java代码如下

package CLP;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

public class CUP {
    public static void main(String[] args) throws IOException {
        Socket socket = new Socket("192.168.1.1",2001);
        OutputStream os = socket.getOutputStream();
        Scanner sc = new Scanner(System.in);
        while(true){
            String name = sc.nextLine();
            os.write(name.getBytes());
        }
    }
}

老板让写个手机app控制,没学过,搞了两天没搞出来,暂时先放弃了,后面搞出来了再加。。。。。。。
二、WiFi模块桥接路由器
WiFi模块发出的WIFi距离比较短,如果想扩大距离,可以桥接路由器和WiFi模块,然后电脑或手机连接同一局域网下也可以给WiFi模块发数据。

电脑连接路由器A的无线网络,打开网页输入tplogin.cn。进入路由器配置页面,在lan口设置里先把IP地址手动设置为192.168.3.1。然后找到WAN口设置(有些路由器叫上网设置),把DNS地址复制下来。

与Openwrt(WiFi模块)的通信_第14张图片与Openwrt(WiFi模块)的通信_第15张图片我的DNS:192.168.1.2

断开电脑与其它的网络连接,用网线连接上WiFi模块和电脑
与Openwrt(WiFi模块)的通信_第16张图片
打开网页,输入192.168.1.1.。进入wifi模块配置页面。。如果已经有无线网络存在 ,先把无线网络删除。
与Openwrt(WiFi模块)的通信_第17张图片

在这里插入图片描述
与Openwrt(WiFi模块)的通信_第18张图片
然后点击“网络”中的“接口”,找到WWAN,点击修改。基本设置中把协议选为静态地址,切换协议。在IPV4地址里输入192.168.3.66。子网掩码输入255.255.255.0。IPV4网关输入192.168.3.1。然后在DNS服务器一栏中把之前复制路由器的DNS地址粘贴上去。最后点击保存应用。
与Openwrt(WiFi模块)的通信_第19张图片然后点击网络,点击防火墙。点击Port forwards。添加两个端口分别为8081和2001的新Port forwards。具体设置如图所示。
与Openwrt(WiFi模块)的通信_第20张图片与Openwrt(WiFi模块)的通信_第21张图片添加完之后如下
与Openwrt(WiFi模块)的通信_第22张图片
然后保存应用

然后在防火墙的基本设置中,把各个选项设置成下图所示,修改里面都弄成accept就好了,然后点击保存应用。

与Openwrt(WiFi模块)的通信_第23张图片接下来断开wifi模块与电脑的连接。用电脑连接路由器的wifi信号,输入tplogin.cn进入路由器配置页面。在应用管理里找到虚拟服务器,添加如下图所示的配置的两个虚拟服务器。
与Openwrt(WiFi模块)的通信_第24张图片
到此wifi模块已经与路由器桥接成功了,可以通过电脑或手机连接路由器,然后与wifi模块通信。(此时已经搜不到之前那个WiFi-root了,因为刚才把它删了)

测试,用电脑连接路由器,打开串口网络调试助手,在网络设置一栏里,把协议类型选为TCP Client,服务器IP地址改为192.168.3.66.服务器端口号为2001。然后用USB转TTL串口线连接wifi模块与电脑USB口(需要安装串口转USB驱动)。选择对应的COM口,波特率设置为115200。设置如下图所示:
与Openwrt(WiFi模块)的通信_第25张图片(服务器IP地址要改,要改,要改。。。)
写app的话也要改呢
这一个设置只能在同一局域网内使用!!!!!

三、用外网连接

(之前测试过可以,现在不知道为啥一直ping不通)
在路由器管理页面应用管理里找到DDNS
与Openwrt(WiFi模块)的通信_第26张图片
进入后注册一个花生壳域名,有免费的,然后回来登录,(可能是白嫖的不香,经常ping不通,不知道为啥)

与Openwrt(WiFi模块)的通信_第27张图片
然后在电脑的控制端 ping 域名:将得到一个IP地址
在这里插入图片描述
与Openwrt(WiFi模块)的通信_第28张图片
然后打开调试助手,填入信息:
与Openwrt(WiFi模块)的通信_第29张图片
我直接连接校园网(不是路由器发出的网络),能相互通信(之前的不行),我换成手机热点,具体可以还是不可以忘了,这次测试一直没ping通,也测试不了。。。。

后面看看有没有时间来搞一下,搞个app

串口调试软件和固件:
链接:https://pan.baidu.com/s/1YHartBUeJpV4U811mkMLPA
提取码:plr2

你可能感兴趣的:(Openwrt)