zoukankan      html  css  js  c++  java
  • Arduino uno r3 使用 ESP8266 UARTWiFi 透传模块

    一、所需硬件材料

    1.ESP8266:01s某宝上3、5块钱

    2.杜邦线:某宝几块钱一组40P,这里只需要三根,用于连接 树莓派与继电器

      

    3.烧录器

    二、ESP8266 AT固件烧录

    ESP8266主要有两种固件,一种是AT固件(一般出厂自带)实现UART-WiFi 透传模块,一种是IoT固件,即我们自己编写通过IDE烧录的固件,如果ESP8266中包含这种固件无法通过AT命令实现透传,需要从新烧录AT固件。

    0,软件准备:

    1,连接烧录器:

    如果是ESP01s 直接插入烧录器,然后插入电脑usb接口;如果是12E/F按阵脚对应接线,注意GPIO0、REST必须接,模块CH_PC接烧录器EN(网上说需要接10k电阻,我没接)

     2,软件烧录

    • 在出现的窗口中, 选择SPIDownload标签页(默认是这一页)
    • 在固件选择栏中, 勾选需要写入的行, 文件和地址分别为
    •   boot_v1.7.bin 0x00000
    •   user1.1024.new.2.bin 0x01000
    •   esp_init_data_default_v08.bin 0xfc000
    •   blank.bin 0x7e000
    •   blank.bin 0xfe000
    • 检查下面的参数配置: CrystalFreq 26M, SPI SPEED是40MHz, SPI MODE是DIO, FLASH SIZE是8Mbit
    • 界面右下方, 选择正确的COM口, 波特率使用默认的115200
    • 点击START

    三、连接到Arduino uno 到ESP8266

    1,连线图

    2、代码

    const int tx = 1;
    const int rx = 0;
    void setup() {
      pinMode(rx,INPUT_PULLUP);
      pinMode(tx,INPUT_PULLUP); 
    }
    
    void loop() {
    
    }

    以上连接的Arduino上的0和1是硬串口,也可使用软串口比如设置arduino上的8号口为rx,9号口为tx。就需要把ESP8266 的rx连接到Arduino的9号口上,模块的tx连接Arduino的8号口上,代码如下:

    #include <SoftwareSerial.h>
    SoftwareSerial mySerial(8, 9); // RX, TX
    void setup() {
      Serial.begin(9600);
      mySerial.begin(9600);
      delay(1000);
      Serial.println("Goodnight  moon2");
      mySerial.println("AT+GMR");
    }
    void loop() {
      while (mySerial.available()) {
        Serial.write(mySerial.read());
      }
    }

    3、调试,打开串口工具

     4,使用AT命令透传

     

    AT+GMR 查看版本信息 //查询固件版本信息
    

    四、AT 常用命令

    AT+RST //重启模块
    AT+GMR //查看版本信息
    AT+CIOBAUD=9600 //修改波特率
    AT+CWMODE? //查询工作模式 1.Station (客户端模式)2.AP (接入点模式)3.Station+AP (两种模式共存)
    AT+CWMODE=1 //设置模组为STA模式。
    AT+CWLAP //查询附近 WIFI
    AT+CWJAP="wifi名称","wifi密码" //连接路由器的 WIFI
    AT+CIFSR //查看路由器分配给模组的IP地址,例如 192.168.43.103
    AT+CIPMUX=0 //设置单连接
    AT+CIPMODE=1 //设置透传模式
    AT+CIPSTART="TCP","192.168.43.104",8899 //建立的TCP服务器
    AT+CIPSEND //开始发送数据
    >      //进入发送模式
    abc     //发送数据
    +++     //注意退出透传,直接发送。取消发送新行

    五、参考

      

  • 相关阅读:
    JSON 序列化类 南京酷得软件
    哈哈哈哈哈哈 找回记忆
    Presto
    (转)在Total Commander下使用SVN
    在ubuntu12.04,64位中安装lnmp一键包mysql的问题
    阿里云服务器上搭建php环境+redis
    在ubuntu12.04,64位中安装nginx+php+redis+mysql
    Redis篇:单线程I/O模型
    工具篇:apachehttpClient 和 jdk11HttpClient的使用
    技能篇:关于缓存数据的一致性探讨
  • 原文地址:https://www.cnblogs.com/ejiyuan/p/15585982.html
Copyright © 2011-2022 走看看