ESP8266 Android与Arduino通信

功能描述:

1 Arduino上电,它通过软串口(Arduino的 2号和3号脚)发送命令,配置espson8266为 AP模式,wifi名 DDD 密码 123456

通过硬串口向电脑打印调试信息,以及espson8266收到指令后发出的信息。

2 等待Esp8266初始化成功,Arduino不断监听软和硬串口

  1. 监听电脑从硬串口发来的命令,转发给软串口让Esp8266通过WIFI发送出去。
  • 电脑向硬串口发送命令没什么格式,但是通过串口命令让esp8266向wifi发命令,特定格式
  • AT+CIPSEND=0,15  //  申请向第0 个TCP链接,发送15个字符

    //收到OK,出现 > 输入要发的 15个字符
    OK
    >
    Recv 15 bytes

    SEND OK

3 手机连接wifi,打开调试软件,输入地址 192.168.4.1,端口 6000 ,发送命令,格式随意。反之接收来自电脑发来的命令。

手机端           电脑端   

特别说明:

1 arduino软串口读取ESP8266命令,出现乱码,只要重新设置下其波特率。AT+UART=9600,8,1,0,0

2 我目前使用的IDE,虽然程序里设置串口波特率是 9600,但是,实际运行只有,4800. 所以,需要设置为9600*2=19200. 更换IDE可能会解决这个问题。

  • 但是IDE串口调试设置为9600就是9600

3 esp8266从串口收到数据格式结尾应该添加 “\r\n”    样例;

  • sendCommand("AT+CWMODE=2\r\n",2000,DEBUG);
  • String s="AT+CWSAP=\"DDD\",\"12345678\",11,0\r\n";
    sendCommand(s,2000,DEBUG);

4 为何做这个实验。 其实单独手机连接WIFI直接就通信了,为何中间加一个arduino单片机? 浪费成本和中转的复杂性?

因为,我目前不想费精力使用esp8266的专用SDK开发这个单片机,时间和精力成本不值得。

我目前需要的功能,用Arduino当控制板,esp8266低成本的wifi转发命令,这样把开发又转回arduino,

目前针对 esp8266使用arduino ide 开发的 esp-12f板,已经出现,我已经购买,正在路上,以后可以直接使用arduino ide开发esp8266。

http://blog.csdn.net/gnf_cc/article/details/53667312

ARuino程序烧录:

#include <SoftwareSerial.h>

#define DEBUG true

SoftwareSerial esp8266(2,3); // make RX Arduino line is pin 2, make TX Arduino line is pin 3.
// This means that you need to connect the TX line from the esp to the Arduino's pin 2
// and the RX line from the esp to the Arduino's pin 3
void setup()
{
Serial.begin(19200);
esp8266.begin(19200); // your esp's baud rate might be different sendCommand("AT+CWMODE=2\r\n",2000,DEBUG); // reset module
// delay(20000);
String s="AT+CWSAP=\"DDD\",\"12345678\",11,0\r\n";
sendCommand(s,2000,DEBUG);// reset module
Serial.println("1");
// delay(30000);
sendCommand("AT+RST\r\n",2000,DEBUG); // reset module
delay(3000);
sendCommand("AT+CIPMUX=1\r\n",1000,DEBUG); // configure for multiple connections
// delay(20000);
sendCommand("AT+CIPSERVER=1,6000\r\n",1000,DEBUG); // turn on server on port 80
Serial.println("Server Ready");
} void loop() { // run over and over
if (esp8266.available()) {
Serial.write(esp8266.read());
}
if (Serial.available()) {
esp8266.write(Serial.read());
}
}
String sendCommand(String command, const int timeout, boolean debug)
{
String response = ""; esp8266.print(command); // send the read character to the esp8266 long int time = millis(); while( (time+timeout) > millis())
{
while(esp8266.available())
{ // The esp has data so display its output to the serial window
char c = esp8266.read(); // read the next character.
response+=c;
}
} if(debug)
{
Serial.print(response);
} return response;
}

  

  

esp8266(1) 手机+Arduino+esp8266通信的更多相关文章

  1. 【Arduino】、Arduino+ESP8266上传至oneNet云

    一.硬件简介 1. Arudino 是一种开源的电子平台,该平台最初主要基于AVR单片机的微控制器和相应的开发软件,包含硬件(各种型号的Arduino板)和软件(Arduino IDE). 2. ES ...

  2. Mac Arduino ESP8266 ESP32 搭建开发环境

    目录 1.安装Arduino 2.搭建开发板管理器 3.可能出现的错误 1.安装Arduino Arduino下载. 官方下载地址:Arduino官方网站 Arduino中文社区:下载地址 安装方式: ...

  3. 移动支付之智能IC卡与Android手机进行NFC通信

    本文来自http://blog.csdn.net/hellogv/ .引用必须注明出处.        眼下常见的智能IC卡执行着JavaCard虚拟机.智能IC卡上能够执行由精简后的Java语言编写 ...

  4. ESP8266文档阅读ESP8266 SDK 入门指南

    ESP8266 SDK  入门指南 1.概述 1.2.ESP8266 HDK 1.3.ESP8266 SDK 1.4.ESP8266 FW 1.5.ESP8266 工具集 2.1.开发板方案 3.软件 ...

  5. blinker语音控制Arduino/esp8266开关灯-滑动条使用-文本框交互

    总链接:  https://www.arduino.cn/thread-78393-1-1.html 语音控制:https://doc.blinker.app/?file=005-App%E4%BD% ...

  6. Arduino ESP8266编程深入要点

    Arduino for ESP8266的话,如果不修改代码,默认没有办法进入轻睡眠的省电模式,只能进入Modem Sleep,也就是说Wifi可以暂时睡眠但是CPU没法睡,Modem Sleep最低功 ...

  7. 10-51单片机ESP8266学习-AT指令(ESP8266连接路由器,建立TCP服务器,分别和C#TCP客户端和AndroidTCP客户端通信+花生壳远程通信)

    http://www.cnblogs.com/yangfengwu/p/8871464.html 先把源码和资料链接放到这里 源码链接:https://pan.baidu.com/s/1wT8KAOI ...

  8. 11-51单片机ESP8266学习-AT指令(ESP8266作为TCP客户端,连接TCP服务器,用串口调试助手和手机TCP调试助手测试)

    写完题目刚想起来一件事情,如果手机作为客户端(不连接路由器的情况下),手机连接模块的无线会分配一个IP地址,,,这个IP地址事先我也不知道....我先看看AT指令里面有没有一个指令可以打印一下连接自己 ...

  9. 基于Air800+Arduino+ESP8266的混合物联网开发

    流程图如下:

随机推荐

  1. Contest2073 - 湖南多校对抗赛(2015.04.06)

    Contest2073 - 湖南多校对抗赛(2015.04.06) Problem A: (More) Multiplication Time Limit: 1 Sec  Memory Limit:  ...

  2. 使用git push命令如何忽略不想提交的文件夹或者文件

    如下场景是在window下的操作. 在使用node的时候有个node_modules文件夹很大,一般情况下不想提交,忽略的办法如: 方法一(来自评论区):直接在仓库根目录:执行命令echo 'node ...

  3. python 中文件输入输出及os模块对文件系统的操作

    整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作. 文件输入输出 1.内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象. 2. ...

  4. 2017-12-05 JavaScript实现ZLOGO子集: 前进+转向

    在前文中文编程语言之Z语言初尝试: ZLOGO 4与相关讨论后, 萌生了用JavaScript编写类似语言以便在线编程的想法. 于是使用 @TKT2016 (知乎账号)的ZLOGO语法设计, 在编程语 ...

  5. 从零开始学习html(八)CSS选择器——下

    六.子选择器 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" ...

  6. IDEA项目搭建六——使用Eureka和Ribbon进行项目服务化

    一.Eureka的作用 这里先简单说明使用eureka进行业务层隔离,实现项目服务化也可以理解为微服务,我一直崇尚先实现代码再学习理论,先简单上手进行操作,eureka使用分为三块,1是服务注册中心, ...

  7. Installing Language Tool in TexStudio

    This is a recent and more detailed solution for Windows users. Make sure the last version of TeXstud ...

  8. Android FileUtils 文件操作类

    系统路径 Context.getPackageName(); // 用于获取APP的所在包目录 Context.getPackageCodePath(); //来获得当前应用程序对应的apk文件的路径 ...

  9. SDK Manager

    dx.bat :将所有的.class文件变成一个.dex文件. aapt:Android Application package tools 安卓应用的打包工具. adb:Android Debug ...

  10. springcloud 入门 8 (config配置中心)

    Spring Cloud Config: 配置中心为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件,它就是Spring Cloud Config. 在分布式系统中,由于服务数量巨多, ...