草庐IT

APP连接ESP8266——采用AT指令

樱之血落 2025-05-11 原文

1.主要实验设备及器材

1.1一块ESP8266(如图1)

图 1 ESP8266模块

1.2 一个USB转TTL模块(如图2)

图 2 USB转TTL模块

2.测试ESP8266模块 

2.1连接设备

        WIFI模块与USB转TTL模块进行连接,连接实物图如图3所示,硬件连线框图如图4所示。

图 3 连接实物图

图 4 硬件连接框图

2.2打开串口调试助手

        本次实验使用的软件是XCOM V2.3,默认波特率为115200,停止位为1,数据位为8,校验位为None(如图5)。

图 5 XCOM V2.3

2.3输入测试指令AT

        测试AT启动,返回OK (如图6)

图 6 AT测试

2.4复位指令AT+RST

        输入AT+RST对WiFi模块进行复位操作,若返回ready代表复位成功(如图7)。

图 7 AT+RST

2.5 设置连接模式

        输入AT+CWMODE=mode设置wifi应用模式,返回OK;

        mode: 1.Station模式

        2.AP模式

        3.AP+Station兼容模式

        备注,station:客户端,AP:服务器;

本次测试采用Station模式,输入AT+CWMODE=1指令(如图8)。

图 8 AT+CWMODE=1

2.6连接wifi

        这里输入AT+CWJAP=“BUNFLY loT studio”,“207207207”,返回OK(如图9)。

指令原型为:AT+CWJAP=<ssid>,<pwd> ,ssid就是wifi的名字,pwd就是wifi的密码。

图 9 AT+CWJAP

        完成以上操作,就可以对ESP8266进行AT指令操作。

3.ESP8266操作指令

3.1 ESP8266做服务器操作

        该操作是将ESP8266当做服务器,同手机或其他设备进行连接,操作步骤如下.

3.1.1设置多连接模式

        输入AT+CIPMUX=1,返回OK(如图10)。

图 10 AT+CIPMUX

3.1.2建立服务器

        建立服务器(如图11): AT+CIPSERVER=1,8899(8899是端口号,可以改)

图 11  AT+CIPSERVER

3.1.3查询地址

        输入AT+CIFSR获取ip地址(如图12),这里我们使用STAIP为该ESP8266的ip。

图 12 AT+CIFSR

3.1.4手机APP连接ESP8266

        将手机wifi连接上同ESP8266相同的局域网内,然后打开WIFI串口调试助手,输入IP地址和端口号(如图13),点击确定,当连接上以ESP8266服务器时,页面跳转(如图14),此时手机APP与ESP8266建立连接,进行接收/发送操作,我们通过手机APP向ESP8266发送16进制代码C4 E3 BA C3 D6 D0 B9 FA(你好中国)(如图15)。

图 13 WIFI串口调试助手

图 14 APP收发页面

图 15 串口调试助手接收到APP发送的数据

有关APP连接ESP8266——采用AT指令的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  3. ruby - 无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1 :7055) - 2

    我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类

  4. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  5. ruby-on-rails - 如何重命名或移动 Rails 的 README_FOR_APP - 2

    当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?

  6. ruby - 使用 postgres.app 在 rvm 下要求 pg 时出错 - 2

    我正在使用Postgres.app在OSX(10.8.3)上。我已经修改了我的PATH,以便应用程序的bin文件夹位于所有其他文件夹之前。Rammy:~phrogz$whichpg_config/Applications/Postgres.app/Contents/MacOS/bin/pg_config我已经安装了rvm并且可以毫无错误地安装pggem,但是当我需要它时我得到一个错误:Rammy:~phrogz$gem-v1.8.25Rammy:~phrogz$geminstallpgFetching:pg-0.15.1.gem(100%)Buildingnativeextension

  7. ruby - 导轨 4 : column reference "updated_at" is ambiguous with Postgres - 2

    我正在尝试使用“updated_at”字段的日期时间范围查询数据库。前端在JSON数组中发送查询:["2015-09-0100:00:00","2015-10-0223:00:00"]在RailsController中,我使用以下方法将两个字符串解析为DateTime:start_date=DateTime.parse(params[:date_range_arr][0])end_date=DateTime.parse(params[:date_range_arr][1])#...@events=@events.where('updated_atBETWEEN?AND?,start_d

  8. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  9. ruby-on-rails - 连接字符串时如何在 <%=%> block 内输出 html_safe? - 2

    考虑一下:现在这些情况:#output:http://domain.com/?foo=1&bar=2#output:http://domain.com/?foo=1&bar=2#output:http://domain.com/?foo=1&bar=2#output:http://domain.com/?foo=1&bar=2我需要用其他字符串输出URL。我如何保证&符号不会被转义?由于我无法控制的原因,我无法发送&。求助!把我的头发拉到这里:\编辑:为了澄清,我实际上有一个像这样的数组:@images=[{:id=>"fooid",:url=>"http://

  10. ruby - Faye WebSocket,关闭处理程序被触发后重新连接到套接字 - 2

    我有一个super简单的脚本,它几乎包含了FayeWebSocketGitHub页面上用于处理关闭连接的内容:ws=Faye::WebSocket::Client.new(url,nil,:headers=>headers)ws.on:opendo|event|p[:open]#sendpingcommand#sendtestcommand#ws.send({command:'test'}.to_json)endws.on:messagedo|event|#hereistheentrypointfordatacomingfromtheserver.pJSON.parse(event.d

随机推荐