【12864】【ESP8266】用12864来显示WiFi模块接收到的透传数据
arduino吧
全部回复
仅看楼主
level 7
2017年02月05日 14点02分 1
level 7
WiFi透传。
手机通过TCP协议 向我手里的ESP8266 WiFi模块发信息 WiFi模块从串口发给arduino arduino从SPI发给显示屏 显示出来
超过5人回帖我就详细讲[哈哈]
2017年02月05日 14点02分 2
level 12
快江啊,我要看
2017年02月05日 15点02分 3
已更
2017年02月11日 06点02分
level 2
加一
2017年02月05日 16点02分 5
已更
2017年02月11日 06点02分
level 7

2017年02月06日 02点02分 8
已更
2017年02月11日 06点02分
level 8

2017年02月07日 15点02分 9
已更
2017年02月11日 06点02分
level 9

2017年02月08日 13点02分 11
已更
2017年02月11日 06点02分
level 7
建议大家先看看手册 了解一下AT指令
http://wenku.baidu.com/link?url=BBL2h0wmzA-QTEOPRcPde4YxA4IN_o45Q9hEl67VsQS9klCt12T9TcoRo-gA28aB3N8BmOpZZHgbPaEZtZxgvQ5cgLzhBW-TDKfBXTf1Ar7用 USB转TTL模块 可以用pc通过串口跟ESP8266通信 直接发AT指令很方便。
然而我手头并没有、、、
只能用UNO跟ESP8266通信。
如果用UNO硬件串口跟ESP8266通信 那就没法跟pc通信了 这样调试代码会很费劲。所以我要用UNO软串口跟ESP8266通信。
问题又来了 ESP8266波特率115200 我调了半天 UNO软串口根本没法稳定工作在这波特率 所以要用硬件串口发AT指令给ESP8266来修改波特率
再说供电 ESP8266工作电压3.3v 但是我发现接UNO的3.3v 会很不稳定 我就接了5v 有点烫手但没烧[阴险]
先给UNO 写一小段代码来给ESP8266修改波特率
void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.println("AT+UART=9600,8,1,0,0");
}
我的接线是
ESP8266 UNO
VCC-----------5V
GND----------GND
CH_PD-------5V
UTXD---------RX
URXD---------TX
不出意外的话 ESP8266下次上电就会工作在9600波特率了[哈哈]
未完待续 敬请期待
2017年02月08日 15点02分 12
level 6
加油
2017年02月10日 02点02分 15
更了
2017年02月11日 06点02分
level 7
12864采用SPI接口 也就是串行接法 参考这篇
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=91
接线
LCD Arduino
PIN1 = GND
PIN2 = 5V
RS(CS) = 8;
RW(SID)= 9;
E(CLK) = 3;
PSB = GND;
如果什么都不显示 那很可能是因为对比度太低 把12864的3脚接vcc可以达到最高对比度
android手机安装网络调试助手
https://www.oschina.net/question/76709_51714
代码的思路是先发送【AT+RST】重启ESP8266
然后发送【AT+CWMODE=1】把WiFi应用模式设置为Station模式
然后发送【AT+CWJAP="路由器的SSID","路由器的密码"】连接你的路由器
然后检验是否连上
然后发送【AT+CIPMUX=0】设置单链连模式
然后用你的手机创建一个TCP服务器 需要知道手机的ip地址 设置特定端口号 写进代码
然后发送【AT+CIPSTART="TCP","IP地址",端口号】
检验是否连接
然后发送【AT+CIPMODE=1】试着位透传模式
然后发送【AT+CIPSEND】开启透传
最后进入死循环 把串口收到的数据发送给12864
2017年02月11日 06点02分 17
level 7
代码写进arduino 连着电脑运行 你能从串口监视器看到ESP8266给你发的话
最后用手机 通过TCP向客户端发信息 就可以显示在12864上了[吐舌]
如果发中文会显示乱码
代码写的很水 完全体现了面向过程编程的思想[滑稽]
readString()函数就是用1秒钟的时间监听串口 然后把收到的数据输出为字符串
indexOf()函数是检验前面那个字符串是否包含后面那个字符串 如果是 就返回后面字符串在前面字符串中的位置 如果否 就返回 -1
这些函数 各种中文手册中都没写 只能去看官方reference
https://www.arduino.cc/en/Reference/HomePage
最骚的那一行代码 不要问我啥意思了 我自己都不知道咋敲出来的[阴险]
就是把data字符串输出给12864了 从第一行第三个格开始显示
2017年02月11日 06点02分 19
level 1
esp8266要烧写固件吗,怎么弄
2017年02月19日 18点02分 23
level 1
看看厉害了支持一下
2021年01月10日 11点01分 25
1