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,再发送到电脑)
String string = "";
void setup() {
Serial.begin();//电脑与arduino间通信
Serial1.begin();//arduino与esp8266间通信
}
void loop() {
while (Serial1.available() > )
{
char c = Serial1.read();
string += c;
if (Serial1.available() == )
{
Serial.print(string);//打印esp8266反馈的信息
string = "";
}
delay();
}
while (Serial.available() > )
{
char c = Serial.read();
string += c;
if (Serial.available() == )
{
Serial1.print(string);//向esp8266发送指令
string = "";
}
delay();
}
}
上传后打开右上角的串口监视器

测试AT指令

效果如图所示则为正常工作
然后就可以在此发送指令,让esp8266作服务端,手机APP作客户端连接实现APP与arduino的通信
APP通过esp8266控制Arduino
省去电脑手动设置指令,arduino通过串口通信直接发送指令到esp8266,上传以下程序,可实现arduino在上电启动时就自动设置,然后arduino在收到手机特定数据的时候会做出相应操作
String string = "";
void setup() {
Serial.begin();//电脑与arduino间通信
Serial1.begin();//arduino与esp8266间通信
delay();
Serial1.print("AT+CIPMUX=1\r\n");
delay();
Serial1.print("AT+CIPSERVER=1,8080\r\n");
}
void loop() {
while (Serial1.available() > )
{
char c = Serial1.read();
string += c;
if (Serial1.available() == )
{
if (string.indexOf("hello") >=)
{
Serial.print("do something...");
}
Serial.print(string);//打印esp8266反馈的信息
string = "";
}
delay();
}
while (Serial.available() > )
{
char c = Serial.read();
string += c;
if (Serial.available() == )
{
Serial1.print(string);//向esp8266发送指令
string = "";
}
delay();
}
}
若是之前串口监视器没关,就能看到以下信息,说明自动设置完成,若是关了,则先打开串口监视器,然后重新拔插arduino,重新上电

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

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

Arduino leonardo+esp8266-01作服务端与APP进行数据通信的更多相关文章
- 项目ITP(三) 玩玩 服务端 到 app端
前言 系列文章:[传送门] 泡泡脚,写写博客,规律生活,睡个好觉,待会看会书. 正文 上面讲了二维码生成,及 手机端扫一扫,大家有兴趣去看看. 今天我们讲一下,百度云推送平台. 每天想着问题,问题只会 ...
- PHP 服务端 和 APP 客户端 实现 RSA+AES 双向加密解密
目的:服务端和移动端双向加密解密 共有七个文件 其中包括三个类文件 lib_aes.php aes对称加密解密类 server_rsa_crypt.php 服务端RSA公钥私钥非对称加密解密类 cli ...
- 网站的优化----首页优化---app调取服务端数据
高并发经常会发生在有大活跃用户量来访问网站的某个点,例如用户高聚集的业务场景中,如:抢购,促销等.为了让用户流畅的访问网站,来根据自己的业务设计适合系统的处理方案. //对于APP网站首页数据,通常是 ...
- nodejs服务端开发学习笔记
正在学习中,不断改错... 学习了一段时间nodejs,对其中的很多东西还不是很理解,在网上看过很多的例子,希望通过自己的一些总结让自己了解的更全面些,同时也作为学习笔记留存备忘. 准备工作 node ...
- React 在服务端渲染的实现
原文地址:Server-Side React Rendering 原文作者:Roger Jin 译者:牧云云 React 在服务端渲染的实现 React是最受欢迎的客户端 JavaScript 框架, ...
- 实现ssr服务端渲染
前言 前段时间寻思做个个人网站,然后就立马行动了. 个人网站如何实现选择什么技术方案,自己可以自由决定. 刚好之前有大致想过服务端渲染,加载速度快,还有 SEO 挺适合个人网站的. 所以就自己造 ...
- 项目ITP(四) javaweb http json 交互 in action (服务端 spring 手机端 提供各种工具类)勿喷!
前言 系列文章:[传送门] 洗了个澡,准备写篇博客.然后看书了.时间 3 7 分.我慢慢规律生活,向目标靠近. 很喜欢珍惜时间像叮当猫一样 正文 慢慢地,二维码实现签到将要落幕了.下篇文章出二维码实 ...
- [译]React 在服务端渲染的实现
原文地址:Server-Side React Rendering 原文作者:Roger Jin React 在服务端渲染的实现 React是最受欢迎的客户端 JavaScript 框架,但你知道吗(可 ...
- 支付宝app支付服务端流程
支付宝APP支付服务端详解 前面接了微信支付,相比微信支付,支付宝APP支付提供了支付封装类,下面将实现支付宝APP支付.订单查询.支付结果异步通知.APP支付申请参数说明,以及服务端返回APP端发起 ...
随机推荐
- java读取文本文件内容
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/128 java读取文本文件内容 今天写代码写着要调试一个很 ...
- MAC TXT文本
Mac系统下.txt格式的纯文本怎么保存? 作者:佚名 字体:[增加 减小] 来源:互联网 时间:06-02 14:29:23 我要评论 Mac系统下.txt格式的纯文本怎么保存?.txt是个用途广泛 ...
- [b0035] python 归纳 (二十)_多进程数据共享和同步_共享内存Value & Array
1. Code # -*- coding: utf-8 -*- """ 多进程 数据共享 共享变量 Value,Array 逻辑: 2个进程,对同一份数据,一个做加法,一 ...
- Fundebug录屏插件更新至0.6.0
摘要: 录屏插件的性能进一步优化,传输的数据体积大幅度减少. 录屏功能介绍 Fundebug提供专业的异常监控服务,当线上应用出现 BUG 的时候,我们可以第一时间报警,帮助开发者及时发现 BUG,提 ...
- Python数值类型和序列类型
int.float.bool这三个数值类型和常用序列类型的定义和使用 数值类型的基本计算 序列类型的索引取值.切片.成员运算等序列类型的通用操作 complex(复数).decimal(定点数).ma ...
- [Go] gocron源码阅读-go语言中数组和切片的字面值初始化语法
源码中有这么一句,这个函数要求返回的是[]cli.Command,cli.Command类型的切片,这个地方直接使用字面值初始化了一个切片返回去了 return []cli.Command{comma ...
- 解压 Android 系统中的 system.img
本篇文章讲解 system.img 是什么东西,以及它的打包和解包方式 system.img 是什么 system.img 是 Android 系统中用来存放系统文件的镜像 (image) ,文件格式 ...
- prometheus数据可视化
一.prometheus自带简单的web可视化页面: http://192.168.1.28:9090/graph 二.grafana是一套开源的分析监视平台,支持prometheus等数据源:UI非 ...
- 【转】java爬虫,爬取当当网数据
背景:女票快毕业了(没错!我是有女票的!!!),写论文,主题是儿童性教育,查看儿童性教育绘本数据死活找不到,没办法,就去当当网查询下数据,但是数据怎么弄下来呢,首先想到用Python,但是不会!!百 ...
- C++ class外的 << 重载,输出流,重载示例。不应该定义类内的<<重载
#include <iostream> // overloading "operator << " outside class // << 应该 ...