怎样使用ESP8266进行Wifi远程控制

电子说

1.2w人已加入

描述

步骤1:Arduino控制器

WIFI

要将nunchuk粘贴到Wifi,我们使用了Arduino。该代码是针对Arduino Mega的,因此我们可以有两个串行端口(Rx和Tx引脚),一个用于对Arduino编程,而另一个用于Wifi(ESP8266)。这是一种非常简单的方法。

在最终产品中,您可以将ESP8266分别连接到任何Arduino上的Tx和Rx,例如UNO或低成本的Pro Mini(请确保正确地插入新产品中的针脚)码)。但是,这样做有点吓人,因为您可能会使Arduino无法从USB端口访问以进行重新编程,因为程序在运行时将接管编程端口。有一些软件串行库会使用其他数字引脚作为Tx和Rx,但它们可能无法以ESP8266的速度运行。有些人对ESP8266进行了重新编程,使其以较低的速度运行,但这对初学者来说是一个挑战。使用MEGA或具有多个Hardware Tx Rx端口的任何Arduino都可以轻松做到这一点。

这种更复杂方法的一个很好的例子是:

https://www。 Instructionsables.com/id/ESP8266-Wifi-Temperature-Logger/

步骤2:连接ESP8266 Wifi模块

有有很多网站向您展示如何连接ESP8266。我们选择如下图所示进行连接。颜色代码如下:

红色=电源3.3 V

黑色= GND 0V

棕色= 3.3V(启用芯片)

白色=转到MEGA上的RX1(是ESP8266 TX)

灰色=指向MEGA上的TX1(是ESP8266 RX)

Step 3:连接双节棍

您可以购买可以在面包板上访问双节棍销的插头,但是如果您手边没有这些插头,您可以通过将跨接线插入主插头孔旁每个插针的插槽中,轻松地进行连接。双节棍使用i2c通信,并且大多数Arduino都内置有i2c总线。只需按图所示连接电源即可。双节棍可以在3.3v或5v电压下工作,因此无论您使用哪个电压都无关紧要。将SDA连接到模拟引脚4,将SCK连接到模拟引脚5,或者,如果您使用的是Arduino Mega,请将SDA和SCK连接到Mega的相应端口。

请注意,只有Nintendo品牌双节棍才有效。不要购买非品牌的双节棍!

步骤4:设置服务器

我们在达勒姆(Durham)的朋友Shaw Terwilliger Splatspace Maker Space编写了一个非常不错的Python程序,该程序将PC变成ESP8266s或任何互联网设备的中继,可以相当安全地相互通信。该程序的作用是让两个或多个ascii串行通信设备登录到运行该代码的PC。如果他们使用相同的端口,即192.168.1.132:54321,并从发送相同的字符串“例如,任何ascii字符串”开始。之后,任何发送到PC的内容都将转发给其他人。

Shaw已将代码放置在Github网站上,并从此处的版本开始对其进行了更新。此指令中发布的代码是我们使用的版本。您必须在计算机上安装Python 2.7才能运行该程序。它在终端窗口中运行,并在建立和删除链接时报告所有活动。

我们使用Windows上的Putty之类的telnet程序对其进行了测试。该程序允许两个telnet会话相互通信,就像ESP8266一样。

https://github.com/splatspace/esprelay/

步骤5 :设置接收ESP8266

WIFI

此处的图和照片显示了我们如何连接接收ESP8266。此设置用于诊断ESP是否正确接收。我们使用FTD芯片模块将串行数据连接到USB端口,以便可以使用计算机上的终端程序对其进行检查。

由于我们的FTDI模块没有非常强大的电源,因此无法始终运行ESP8266。由于ESP8266似乎可以正常工作,但仍会造成一些混乱,因此会不断重置。添加电源,如图所示的LiPo升压电路,可以解决此问题并使接收器电池工作!

如果您希望使用控制器来控制某些东西,则可以用诸如Arduino,并解释nunchuk数据以控制任何东西。如果您非常精明,可以对ESP8266重新编程以执行所需的任务。它具有GPIO端口,可以通过Arduino IDE进行编程。

步骤6:在Windows上通过终端接收数据

WIFI

在PC上,我们使用YAT终端程序查看了双节棍的串行字符串已到达。

要设置ESP8266,请输入以下命令:

AT + RST

AT + CWJAP =“您的Wifi的SSID”,“您的Wifi密码”

AT + CIPCLOSE

要开始与nunchuk发送器通信,类型:

AT + CIPSTART =“ TCP”,“ esprelay服务器的IP地址,例如192.168.1.132” ,54321

AT + CIPSEND = n

无引号的ascii字符串 r n

AT + CIPCLOSE

如果需要帮助,ESP8266的AT命令的在线资源数量。引号“是必需的。AT + CIPSEND = n告诉ESP接下来是n个ascii字符。例如,如果您使用“ hi”,则n = 2,如果您使用“ hi there”,则n =8。

在显示YAT屏幕的图中,我们为每条串行线添加了时间戳,您可以看到我们大约每100毫秒或大约每秒10条获得一个串行字符串,这是通过我们的家用路由器进行的,因此由于距离非常低。

第7步:控制事物

这足够快,可以用于飞机无线电控制,但仅50毫秒就可以了最好是10毫秒(典型值),也许有人可以改善我们的结果!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分