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端发起 ...
随机推荐
- 解决iOS地图持续定位耗电问题
地图位置刷新的代理didUpdateLocations会持续调用,手机非常耗电 但是在实际开发中,有一些APP确实需要用到持续定位的功能,比如:运动类, 导航类, 天气类等等 如何进行持续定位呢?保证 ...
- Linux—管理用户、用户组及权限
管理用户 添加用户 [root@localhost ~]# useradd myuser [root@localhost ~]# useradd -m myuser # -d 目录:指定用户主目录,如 ...
- Shell—三剑客(grep、sed、awk)
grep命令详解 文本搜索工具,根据用户指定的“模式(pattern)”对目标文本进行过滤,显示被模式匹配到的行. 命令格式:grep [options] pattern filename.gr ...
- Linux下环境变量(.bash_profile和.bashrc的区别)
在linux系统下,如果下载并安装了应用程序,在启动时很有可能在键入它的名称时出现"command not found"的提示内容.如果每次都到安装目标文件夹内,找到可执行文件来进 ...
- 基于tiny4412的Linux内核移植 --- aliases节点解析【转】
转自:https://www.cnblogs.com/pengdonglin137/p/5252348.html 阅读目录(Content) 作者信息 平台简介 正文 回到顶部(go to top) ...
- mongoDB的安全相关
开启认证: 在配置文件里新增一行 auth = true 创建用户: 1.创建语法:createUser 2.{user:"<name>", pwd:"& ...
- 03-flex-wrap是否换行
flex-wrap:运用到父元素上 结合 display: flex; flex-wrap: wrap; 换行 flex-wrap: nowrap; 不换行 #main { width: 300px ...
- 蓝桥杯dfs搜索专题
2018激光样式 #include<bits/stdc++.h> using namespace std; /* dfs(i) 第i个激光机器 有两种选择:vis[i-1] == 0 时 ...
- Linux上发布E卡通项目
Linux上发布E卡通项目 使用的命令 ps -ef | grep java kill -9 22314 nohup java -jar smartcard-ms-0.0.1-SNAPSHOT.jar ...
- go 接收发送文件
package main import ( "fmt" "os" "net" "io" ) //发送文件内容 func ...