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端发起 ...
随机推荐
- Python3使用线程
Python2标准库中提供了两个模块thread和threading支持多线程.thread有一些缺陷在Python3中弃用,为了兼容性,python3 将 thread 重命名为 "_th ...
- 一文解读DevOps工具链 (转)
在列出DevOps 工具链之前,介绍一下什么是DevOps,虽然DevOps这个概念现在还没有标准的定义,但我们可以追溯一下其过去九年的历史发展过程(从2009年-2017年),列出几个相对明确又有所 ...
- win10安装ubuntu系统出现的一些问题以及解决方案
前言 在win10系统进行安装新的ubuntu环境的时候遇到的一些问题,以及解决方案,供以后参考. 准备 从ubuntu官网下载最近版本的ubuntu系统,Ubuntu最新版本下载地址 操作系统:wi ...
- 如何使用DOM4j+xpath 解析
1.首先去dom4j官网下载一个对应版本的JAR包 XML的配置文件 导入一个config.xml文件 下面是dom4j+xpath解析XML文件
- c# 第37节 接口的实现与继承
本节内容: 1:接口继承注意 2:开发封闭原则: 3:实例解释接口的作用 1:接口继承注意 接口的继承: :类继承具有单根性,接口可多重继承: :接口继承多个接口的时候,派生接口名与父接口用冒号隔开, ...
- [C14] 总结(Conclusion)
总结(Conclusion) 总结和致谢(Summary and Thank You) 欢迎来到<机器学习>课的最后一段视频.我们已经一起学习很长一段时间了.在最后这段视频中,我想快速地回 ...
- RPM 包
RPM 包 RPM 包是由 Red Hat 公司所开发的包管理系统 RPM 经过编译,无法看到源码,但是安装速度会快很多 RPM 包管理 RPM 包命名规则 包名 - 版本号 - 发布版本号 . 软件 ...
- mysql 的基本命令
引子:Excel 最简单的数据库 Mysql:属于大型数据库 一.基本命令: 启动服务: 说明: 以管理员身份运行cmd 格式: net start 服务名称 实例: net start mysql ...
- Ubuntu命令行打开新终端并执行脚本
gnome-terminal -x bash -c "bash test.sh;exec bash;"
- java基础 Unsafe
参考文章: https://tech.meituan.com/2019/02/14/talk-about-java-magic-class-unsafe.html