ESP8266-NodeMCU远程通信

具体步骤
一、Arduino IDE的安装
二、Arduino IDE的配置
三、了解网络通信的基本原理
四、TCP工具包的下载安装
五、编写、烧写程序
六、测试

一、Arduino IDE的安装
1、下载地址
window用户 百度网盘 :
https://pan.baidu.com/s/1Oj-geuFCsf6ubsvtSv1A0w
提取码:beia(此地址转太极创客的网站中提供的下载地址)

苹果电脑Mac OSX 百度网盘https://pan.baidu.com/s/15REzzseXXW6Sc8frxxkbew
提取码:gh7t(此地址转太极创客的网站中提供的下载地址)
2、安装过程一路按照提示进行即可,若遇到是否捐费,则选择否。

二、Arduino IDE的配置
此部分可以参照b战上面的视频或太极创客的视频进行配置,有视频可能效果会更好。

三、了解网络通信的基本原理
这个实验需要了解的网络通信原理不是很多。这里只要知道某个设备要在网络上与另一个设备通信,就必须要知道那个设备的访问路径,即设备的IP地址。在局域网中,我们可以通过直接访问设备的IP地址,但要实现远程通信,必须借助物联网平台,通过在物联网平台上建立一个服务器,使得esp8266能够通过IP地址连接这个服务器,手机端的tcplp工具包作为客户端通过相同的IP和端口连接到服务器。于是物联网平台为ESP8266和手机tcplp
建立了在互联网上的通信纽带。当手机发送数据给物联网平台,物联网平台会将数据发送给其他客户端设备。

此部分可以参考太极创客esp8266的b战视频。

四、TCP工具包的下载安装
建议tcplp工具包,到手机应用商店直接下载即可。

五、编写、烧写程序

以下是代码部分:
(部分代码出自太极创客提供的代码)

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <string.h>
#define pin D3
ESP8266WiFiMulti wifiMulti;           // 建立ESP8266WiFiMulti对象

const char* server_IP = "115.29.109.104"; // Doit.am远程信息转发服务器的IP,打开 
                                            // 这个网址http://tcp.doit.am/  便可获得IP和端口
const int server_Port = 6539;              //端口80
 
void setup(){


  pinMode(LED_BUILTIN, OUTPUT); //上拉模式
  digitalWrite(LED_BUILTIN, HIGH);//初始高电平
  Serial.begin(9600);      //启动串口通讯    
  Serial.println("");
    
  wifiMulti.addAP("His Majesty", "12345678"); // 将需要连接的一系列WiFi ID和密码输入这里
  wifiMulti.addAP("FLX", "tgkugnflx"); // ESP8266-NodeMCU再启动后会扫描当前网络
  wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3"); // 环境查找是否有这里列出的WiFi ID。如果有
  Serial.println("Connecting ..."); 
 
  // 尝试进行wifi连接。
  int i = 0;  
  while (wifiMulti.run() != WL_CONNECTED) { 
    delay(1000);
    Serial.print(i++); Serial.print(' ');
  }
  
  // WiFi连接成功后将通过串口监视器输出连接成功信息 
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(WiFi.SSID());              // WiFi名称
  Serial.print("IP address:\t");
  Serial.println(WiFi.localIP());           // IP
}
 
void loop(){
  if(wifiMulti.run() != WL_CONNECTED) //防止wifi断了
  {
    setup();
  }
  receive_data();
}

void receive_data()
{
   int  status_1;
   int  status_2;
  // 建立WiFi客户端对象,对象名称client
  WiFiClient client;    
  // 通过串口输出连接服务器名称以便查阅连接服务器的网址                      
  Serial.print("Connecting to "); 
  Serial.print(server_IP); 
  if (client.connect(server_IP, server_Port))
  { 
    Serial.println(" Success server!");        // 连接成功后串口输出“Success”信息
   //client.connected()是client客户端连接服务器,成功返回Ture; client.available()是有数据发送给client客户端,有返回Ture
    while (client.connected() || client.available())
    { 
      if (client.available())
      {
        status_1 = client.parseInt();   //服务器发送给client客户端数据,数据会存放在client对象中。
                                      // client.parseInt()函数是从客户端的数据中提取int数据,因为手机端发送给服务器的是字符串
       
        Serial.print(status_1);Serial.print(" :");
      
      
             if(status_1 == 0)                         //根据status的值开关灯,0开灯,1关灯
             {
                 digitalWrite(LED_BUILTIN,LOW);
                 Serial.println("open the led success!");
             }
        
             if(status_1 == 1)
             {
                 digitalWrite(LED_BUILTIN,HIGH);
                 Serial.println("close the led success!");
             }
             status_2 = client.parseInt();//清除缓存   不知道为什么手机TCP发送一个数据后,ESP8266会接受到2个数据。多出来的数据是0,
      }
    }
  }
    else
    {    // 如果连接不成功则通过串口输出“连接失败”信息
                  Serial.println(" connection failed!");
                   client.stop();
    }
  
}

六、测试
让ESP8266开发板链接wifi,手机端使用移动数据,保证两个网络不在同一个局域网内,打开手机tcplp工具包,选择TCP客户端模式,输入Doit.am所建立好的服务器的IP和端口号。发送0 - > 低电平点灯 ; 1 -> 高电平熄灯;

实践:广州 < – > 珠海 每次发送0、1数据间隔6秒,则响应无延时

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WLAN是英文WirelessLAN的缩写,就是无线局域网的意思。无线以太网技术是一种基于无线传输的局域网技术,与有线网络技术相比,具有灵活、建网迅速、个人化等特点。将这一技术应用于电信网的接入网领域,能够方便、灵活地为用户提供网络接入,适合于用户流动性较大、有数据业务需求的公共场所、高端的企业及家庭用户、需要临时建网的场合以及难以采用有线接入方式的环境等 作为全球公认的局域网权威,IEEE802工作组建立的标准在过去二十年内在局域网领域独领风骚。这些协议包括了802.3Ethernet协议、802.5TokenRing协议、802.3z100BASE-T快速以太网协议。在1997年,经过了7年的工作以后,IEEE发布了802.11协议,这也是在无线局域网领域内的第一个国际上被认可的协议。  在1999年9月,他们又提出了802.11b"HighRate"协议,用来对802.11协议进行补充,802.11b在802.11的1Mbps和2Mbps速率下又增加了5.5Mbps和11Mbps两个新的网络吞吐速率。利用802.11b,移动用户能够获得同Ethernet一样的性能、网络吞吐率、可用性。这个基于标准的技术使得管理员可以根据环境选择合适的局域网技术来构造自己的网络,满足他们的商业用户和其他用户的需求。802.11协议主要工作在ISO协议的最低两层上,并在物理层上进行了一些改动,加入了高速数字传输的特性和连接的稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值