• Arduino leonardo+esp8266-01作服务端与APP进行数据通信


    esp8266-01调试


    一、硬件设备

    1.USB转TTL

    2.esp8266-01

    3.杜邦线

    4.电脑

    二、接线

    ESP8266 TTL-USB
    VCC VCC(最好选择3.3V)
    CH_PD VCC(最好选择3.3V)
    GND GND
    URXD TXD
    UTXD RXD

    按表格接好线如下

    三、调试

    把usb转ttl模块插入电脑,在 此电脑-管理-设备管理器 中查看该设备端口号

    若是出现上图的黄色箭头警告,就卸载原usb转ttl驱动,重新下载ft232r,安装其中的

    驱动下载:https://dl.pconline.com.cn/download/845836-1.html

    正常后应该是这样的

    打开串口调试软件,选择相应的串口号,esp8266波特率一般都是115200,所以这里设置为115200,勾选上发送新行,最后点击打开串口

    串口调试软件下载:http://www.ouyaoxiazai.com/soft/yyrj/135/12447.html

    测试一条esp8266的重启指令AT-RST,如果和下图一样说明设备工作正常

    总结下大概会用到的指令:

    详细指令见:https://www.cnblogs.com/lifan3a/articles/7070028.html

    重启:AT+RST

    设置模式:AT+CWMODE = <mode>  //此设置需要重启生效

         <mode>:1 Station模式 2 AP模式 3 AP+Station模式

         /*AP可以理解为发出热点信息的路由器,而station则是连接热点的设备*/

    设置是否多连接:AT+CIPMUX=<mode>

            1 多连接模式   0 单连接模式

    创建服务器:AT+CIPSERVER=<mode>[,port] 

           mode:0-关闭server模式,1-开启server模式  ,port:端口号,缺省值为333

    查询IP:AT+CIFSR

    在串口调试工具里依次执行

    AT+CWMODE=3

    AT+RST

    AT+CIPMUX=1

    AT+CIPSERVER=1,8080

    AT+CIFSR

    然后手机打开wifi,应该就能搜索到该esp8266发出的热点信息

     esp8266-01与手机APP通信


     手机上下载一个名为网络调试助手的软件

    点击TCP Clien,然后点击右上角的+号,最后按照之前设定的端口,和esp8266的ip填写信息

      

    若是正常,则可以在串口调试工具中看到esp8266反馈的信息

    然后在app中的编辑框输入内容,点击发送,esp8266就能收到信息并通过串口通信显示在串口工具中

    esp8266-01连接Arduino leonardo


     一、硬件设备

    1.esp8266

    2.arduino leonardo

     

    3.电脑

    二、接线

    ESP8266 arduino leonardo
    VCC 3.3v
    CH_PD 3.3v
    GND GND
    URXD TX
    UTXD RX

    三、测试

    连接电脑, 在Arduino IDE中选择相应板子型号和端口

    上传以下程序
    (这段程序可以让arduino作为一个串口调试工具与esp8266交互,电脑上通过串口通信向arduino发送指令,arduino再发给esp8266,而反馈的信息也由esp8266发给arduino,再发送到电脑)

     1 String string = "";
     2 
     3 void setup() {
     4   Serial.begin(115200);//电脑与arduino间通信
     5   Serial1.begin(115200);//arduino与esp8266间通信
     6 }
     7 
     8 void loop() {
     9   while (Serial1.available() > 0)
    10   {
    11     char c = Serial1.read();
    12     string += c;
    13     if (Serial1.available() == 0)
    14     {
    15       Serial.print(string);//打印esp8266反馈的信息
    16       string = "";
    17     }
    18     delay(10);
    19   }
    20 
    21   while (Serial.available() > 0)
    22   {
    23     char c = Serial.read();
    24     string += c;
    25     if (Serial.available() == 0)
    26     {
    27       Serial1.print(string);//向esp8266发送指令
    28       string = "";
    29     }
    30     delay(10);
    31   }
    32   
    33 }

    上传后打开右上角的串口监视器

    测试AT指令

    效果如图所示则为正常工作

    然后就可以在此发送指令,让esp8266作服务端,手机APP作客户端连接实现APP与arduino的通信

    APP通过esp8266控制Arduino


     省去电脑手动设置指令,arduino通过串口通信直接发送指令到esp8266,上传以下程序,可实现arduino在上电启动时就自动设置,然后arduino在收到手机特定数据的时候会做出相应操作

     1 String string = "";
     2 
     3 void setup() {
     4   Serial.begin(115200);//电脑与arduino间通信
     5   Serial1.begin(115200);//arduino与esp8266间通信
     6 
     7   delay(1000);
     8   Serial1.print("AT+CIPMUX=1
    ");
     9   delay(1000);
    10   Serial1.print("AT+CIPSERVER=1,8080
    ");
    11 }
    12 
    13 void loop() {
    14   while (Serial1.available() > 0)
    15   {
    16     char c = Serial1.read();
    17     string += c;
    18     if (Serial1.available() == 0)
    19     {
    20 
    21 
    22       if (string.indexOf("hello") >=0)
    23       {
    24         Serial.print("do something...");
    25       }
    26       
    27       Serial.print(string);//打印esp8266反馈的信息
    28       string = "";
    29     }
    30     delay(10);
    31   }
    32 
    33   while (Serial.available() > 0)
    34   {
    35     char c = Serial.read();
    36     string += c;
    37     if (Serial.available() == 0)
    38     {
    39       Serial1.print(string);//向esp8266发送指令
    40       string = "";
    41     }
    42     delay(10);
    43   }
    44   
    45 }

    若是之前串口监视器没关,就能看到以下信息,说明自动设置完成,若是关了,则先打开串口监视器,然后重新拔插arduino,重新上电

    接着手机照之前的步骤连接wifi,再作为 TCP Client 连接服务端,然后发送一句 hello 测试

    可以看到esp8266显示已经有客户连接,而且Arduino接收到了hello并作出了相应的操作(这里只是打印了 do something)

  • 相关阅读:
    获取网络时间,减轻自己服务器的请求压力
    mysql学习记录(windows)
    Docker 部署本地pip源
    npm : 无法加载文件 D:vueProject odejs ode_global pm.ps1
    微信小程序没有找到可构建的npm包
    vue 记录 mode:history 模式 踩过的坑
    Linux学习笔记
    kafka监控 Kafka-eagle-web
    vi 分屏 --(visual 可视模式)
    [安卓网络入门] 获取天气
  • 原文地址:https://www.cnblogs.com/leixiao-/p/9906131.html
Copyright © 2020-2023  润新知