首页 > 解决方案 > Arduino Uno ESP8266-01 接收 UDP 数据

问题描述

嘿伙计们,我有一个 Arduino Uno,它连接了一个 ESP8266-01。现在我有一个连接到它的 Android 应用程序。我有两个变量传递给 ESP。以下代码是我发送数据包的 Android Studio 代码:

fun sendUDP(messageStr: String) {
        // Hack Prevent crash (sending should be done using an async task)
        val policy = StrictMode.ThreadPolicy.Builder().permitAll().build()
        StrictMode.setThreadPolicy(policy)
        try {
            //Open a port to send the package
            val socket = DatagramSocket()
            socket.broadcast = true
            val sendData = messageStr.toByteArray()
            val sendPacket = DatagramPacket(sendData, sendData.size, InetAddress.getByName(mySettings.RemoteHost), mySettings.RemotePort)
            socket.send(sendPacket)
        } catch (e: IOException) {
            //            Log.e(FragmentActivity.TAG, "IOException: " + e.message)
        }
    }

所以这个应用程序充当 UDP 客户端。ESP8266-01 被设置为服务器。我已经使用以下命令完成了此操作:

AT+CWMODE=3

OK
AT+CWJAP="AP_SSID","AP_PASSWORD"

OK
AT+CIPMUX=1

OK
AT+CIPSTART=0,"UDP","192.168.0.140",4445,4445,2
0,CONNECT

OK

+IPD,0,13:test from nc

OK
AT+CIPCLOSE=0
0,CLOSED

OK

现在我不知道如何编写 Arduino 草图以便接收和使用这些数据。我需要对 ESP 编程还是只对 Arduino 进行编程?我试图将示例代码上传到 ESP,但它给了我无法连接的错误。或者也许我只需要使用 AT 命令?如果有人可以帮助我,我会很高兴:)

谢谢

标签: arduinoudpesp8266arduino-unoarduino-esp8266

解决方案


只是想指出,您不需要 Arduino Uno 从 ESP8266 获取信息,可以对 ESP8266 进行编程以直接处理变量。

现在,您需要按如下所述连接 Arduino Uno,以便上传您想在 ESP8266 中使用的草图:

ESP8266:--------------> Arduino:

GND -------------------------- GND

GPIO-2 -------------------------- Not connected (open)

GPIO-0 -------------------------- GND

RXD -------------------------- RX

TXD -------------------------- TX

CHPD ------------------------ 3.3V

RST -------------------------- Not connected (open) *(Read Below Instruction)

VCC -------------------------- 3.3V

半秒后移除 RST(蓝色 LED 闪烁几毫秒)。

点击上传,蓝色闪烁一次,然后闪烁直到上传。

现在你们都完成了。

您可以按照此文档获取完整指南


推荐阅读