- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 WiFi 模块 (ESP8266) 连接到“funduino”开发板 (Arduino Nano),但没有成功。由于我尝试了在互联网上找到的有关它们两个之间连接的大量原理图,因此我在此请问是否有人成功“配对”这两个设备。我要求提供原理图和功能源代码。
问候
最佳答案
ESP-01 默认附带通过 AT 命令进行通信的非操作系统 SDK 引导加载程序,您可以从 Expressif here 找到完整的命令集。 。这是专为 MCU(如 Arduino Nano)设计的,纯粹将其用作 WiFi 模块,而不是将其用作独立的 MCU(为此需要 NodeMCU SDK)。
如果您将 Arduino 草图上传到 ESP-01,它将删除 AT 命令固件。
假设您的 ESP-01 仍然具有 AT 命令固件。 @Ben 提供的是一个草图,允许您通过串行监视器输入 AT 命令来与 ESP-01 交互,它是手动的,并且适合测试 ESP-01 是否正常工作(您输入 AT
并在串行监视器上按回车键,ESP-01 将确认Ok
),但作为真正的应用程序并不实用。下面列出了与 ESP-01 建立 WiFi 连接所需的最少命令。
AT+CIPMUX=1 - Enable single (0) or multiple connection (1) to the web server.
Multiple connection is a good option if you are repeatedly sending
out or reading data from the Internet.
AT+CWMODE=3 - Set WiFi mode: 1 is station mode (ESP8266 is client), 2 is AP mode
(ESP8266 acts like a WiFi router where your phone or PC can connect),
3 is AP+station mode (make the ESP8266 do both)
AT+CWJAP=“<your-ssid>”,”<your-pw>” - Connect to your WiFi. Provide your SSID name
and password inside the double qoutes.
AT+CIFSR - This returns the IP address of the module, indicating that it has
successfully connected to your WiFi router.
建立 WiFi 连接后,您可以通过该连接与 ESP-01 进一步通信,例如访问网站:
AT+CIPSTART=0,"TCP", "www.example.com","80” - Start TCP or UDP connection. The
0 is the id of the connection.
AT+CIPSEND=0,16 - Command to tell the module data is ready to be sent. 0 is the
connection id, and 16 is the length of the data to be sent.
After this command, the ESP8266 will reply with the “>”
character to tell us that it will be waiting for the data to be
sent. If successful, the module will reply with “SEND OK”
GET / HTTP/1.1 - Send the http header, and other data, etc...
一旦您了解了建立 WiFi 连接所需的 AT 命令,您就可以编写自己的草图来自动执行这些 AT 命令,以便与 ESP-01 进行交互。
我个人发现以下两个资源非常有用,除了连接 WiFi 之外,它们还可以做更多的事情。
STM32-ESP-01 Web Server - 虽然这是为了与 STM32 连接,但主要区别在于引脚分配,因此您应该能够轻松移植到 Arduino。
关于硬件接口(interface),请注意@Ben提供的原则上是正确的,但需要注意ESP-01(准确地说是ESP8266)是3V3 MCU,所以连接取决于哪种MCU您正在使用的主板。如果您使用 Arduino Uno/Nano,两者都有 5V MCU,您将需要一个分压器(在连接到 ESP-01 之前将两个电阻器将电压降至 3v3)或至少对于 ESP-01 需要一个电平转换器芯片Rx 引脚以避免对 ESP-01 造成潜在损坏。
关于arduino - ESP8266 与 Arduino Nano 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59738680/
回车和有什么区别 push ebp mov ebp, esp sub esp, imm 说明?有性能差异吗?如果是这样,哪个更快,为什么编译器总是使用后者? 与离开和类似 mov esp, eb
我有以下 NASM 汇编程序,运行时间约为 9.5 秒: section .text global _start _start: mov eax, 0 mov ebx, 8 loop:
根据互联网上的许多教程,据说您可以找到以下结构的命令行参数: 然而,在花一些时间测试我为 NASM 编写的汇编代码后,我发现 ESP 的值是一些数字,例如: -144807325 实际参数计数存储在更
1. 设备烧录的程序rainmaker自带gpio示例 2. swaggerapis登录账户 3. 调用Rainmaker封装好的py
文章结构: 项目概述 成品预览 项目框架 硬件资料,代码 项目槽点 -项目
我是一个学习汇编的初学者,在函数调用之前保留 ESP 寄存器时,通过加法或减法来实现是否重要?很难解释,请考虑以下内容 mov esi, esp sub esp, 12 // on 32bit OS
我反汇编了一个小程序,该程序询问用户的姓名,然后输出“Hello + [user's_name]” 这是反汇编的输出: 主要功能: 打招呼功能: 我注意到,对于 main() 函数,ESP 寄存器递减
我正在从事 Visual Studio 项目项目 A(在编译时生成静态库) 有课 using namespace mynamespace; class projectAclass { virtua
从上图中可以看出,函数setAttribute 时发生了错误。从它的调用返回。 有谁知道如何解决图中显示的这个错误?我知道这是调用约定之间的错误,但是如何找出 setAttribute 的调用约定是什
我用 QT 制作了一个 .dll 文件并将其加载到我的应用程序中。当它即将从一个函数返回时,我收到: The value of ESP was not properly saved across a
我找不到答案。从我读到的 %ebp 有 32 位,将 %esp 移动到 %ebp 你仍然有 32 位,然后减去 70 到 32,我不明白其余的。我对此很陌生,所以我不是很精通。请给出详细的解释。谢谢!
我有一个从 c 程序调用的简单汇编函数,我必须使用需要内存操作数的指令( FIDIV )。 将值移动到 [esp - 2] 是否安全并在下一条指令中使用它,或者以这种方式使用堆栈永远不会安全? 我知道
以下陈述有什么区别? mov %eax,%esp mov %eax,(%esp) 我正在努力散布一个二元炸弹,但在处理一些 mov 时遇到了问题。和 leal在程序集的早期命令。 最佳答案 这会将 %
我使用 duinotech XC-3800 在 ESP32 芯片上使用 ESP IDF 测试运行裸机代码,并在图像大小方面获得以下结果。 ESP32 的分析二进制大小 文件夹结构 温度/ 主要的/ C
我正在 OS X(32 位)上执行系统调用,如下所示: push 123 mov eax, 1 sub esp, 4 int 0x80 而且我不太明白 sub esp, 4 间隙。 我在某处读到,BS
当我在 gdb 中反汇编 main() 时,它会重新调整此结果: 0x0804854c : push ebp 0x0804854d : mov ebp,esp 0x0804
我目前正在学习英特尔处理器的汇编。既然堆栈“向下增长”,为什么我们必须添加才能访问特定元素 [ebp + 8] ;; This will access the first param 我知道我们必须跳
我试图了解如何将堆栈与程序集一起使用,在我尝试时,我在 SO 中的一个问题中遇到了以下代码,即: push ecx mov eax, 4 mov ebx, 1 mov ecx, result m
我有这个 C 代码部分: #include void main() { int n, array[1000], c, d, t, e; char step; puts("Enter a number
我不太明白为什么 gcc 在调用函数之前要先将 esp 减去 12。 pushl %ebp movl %esp,%ebp sub $12,%esp socke
我是一名优秀的程序员,十分优秀!