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. 具体CAS操作实现(无锁算法)

    具体CAS操作 上一篇讲述了CAS机制,这篇讲解CAS具体操作. 什么是悲观锁.乐观锁?在java语言里,总有一些名词看语义跟本不明白是啥玩意儿,也就总有部分面试官拿着这样的词来忽悠面试者,以此来找优 ...

  2. [转] Mac下 快速写博客的软件 MarsEdit

    正文 marsedit最好. 这东西还是收费的,这里, 我给个注册码: Name: The Blade SN: RSME3-DA4KUN-3EL6Y-MXD2X-LYMT9-6KGX8-4 ~~~~~ ...

  3. Docker compose 与 Docker swarm

    安装 docker :https://www.cnblogs.com/klvchen/p/8468855.html 安装 docker-compose : https://www.cnblogs.co ...

  4. Python 练习: 简单角色游戏程序

    要求: 1.创建三个游戏人物,分别是: 苍井井,女,18,初始战斗力1000 东尼木木,男,20,初始战斗力1800 波多多,女,19,初始战斗力2500 2.游戏场景,分别: 草丛战斗,消耗200战 ...

  5. 进程&线程&协程

    进程  一.基本概念 进程是系统资源分配的最小单位, 程序隔离的边界系统由一个个进程(程序)组成.一般情况下,包括文本区域(text region).数据区域(data region)和堆栈(stac ...

  6. sql server:Monty Hall problem (蒙提霍尔问题)

    --------------------------------------------------------------------- -- Auxiliry Table of Numbers 数 ...

  7. element-ui Carousel 走马灯源码分析整理笔记(十一)

    Carousel 走马灯源码分析整理笔记,这篇写的不详细,后面有空补充 main.vue <template> <!--走马灯的最外层包裹div--> <div clas ...

  8. 【读书笔记】iOS-设计简单的Frenzic式益智游戏

    如果你决定用UIView动画或Core Animation,一定要编写一些测试用例,模拟游戏可能遇到的要求最高的动画,另外不要忘记播放声音.不要等到最后才增加声音,因为在iPhone上播放音乐和音效确 ...

  9. eclipse显示代码行数

    最近做的手机APP正在进行最后一部分了,在一个类中估计要写上千行代码,来回的拉动滚动条太麻烦了,于是发现为什么我得eclipse不显示代码行数呢  其他C什么的编译器都显示的. 于是百度了一下,一下子 ...

  10. 你不可不知的Java引用类型之——软引用

    定义 软引用是使用SoftReference创建的引用,强度弱于强引用,被其引用的对象在内存不足的时候会被回收,不会产生内存溢出. 说明 软引用,顾名思义就是比较"软"一点的引用. ...