最后更新:2022-06-16 15:37:17 手机定位技术交流文章
视频网址: https://www.bilibili.com/video/BV1L7411c7jw?p=13&spm_id_from=333.880.my_history.page.click&vd_source=b91967c499b23106586d7aa35af46413
程序网址: http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/esp8266-client-sends-iot-data-to-esp8266-server/
硬件要求:一个ESP8226开发板作为客户端和一个ESP8226开发板作为服务器。
实现功能:在这个例子中,ESP8266客户端将通过HTTP协议向ESP8266服务器发送信息。在运行过程中,ESP8266客户端将实时检查板上的关键状态,然后将按钮状态发送到服务器上。服务器收到客户端的键状态后,服务器端子上的LED灯可以根据客户端的键状态开关或关闭。最终实现的效果是,我们可以通过客户ESP8266开发板上的键来打开和关闭远程服务器上的LED。
注意,在实例中的服务器端的ESP8266和客户端ESP8266必须连接到相同的WiFi网络来进行数据通信。
需要规定通信要求:
客户端向服务器发送三个变量,其中一个是内式测试数据,另一个是浮动式测试数据,另一个是关键状态值。
客户端如何向服务器发送数据?
在预客户端程序注释中,有一个发送 http 消息的描述:
这个声明是客户端发送给服务器请求时发送的地址信息。
这个地址信息包括服务器端的 ip 地址,/update 是通过请求这个地址页面信息,目的是让服务器调用函数 handleUpdate ,问号后面的内容是三个参数数值(通过 & 进行分隔的)。
最后,需要补充关于HTTP协议的知识。
在客户端中,GET用于向服务器发送请求信息,这可能导致问题,当客户端想要从服务器获取信息时,我们使用GET,这里是发送信息给服务器,为什么发送信息和获取信息都使用GET?
事实上,在 http 协议中,没有非常严格的要求说哪种操作必须以哪种方式进行。 GET可以从服务器中获取信息或发送到服务器。
实现功能:
1 – 收到客户端的 http 请求,并分析信息中的数据信息
2 – 显示通过串联显示器分析的数据信息,供用户查看
3 –使用分析客户的关键状态信息来控制服务器端子上的LED的照明和熄灭
下面, 让我们看看下面的运行效果.
当开发板连接到路由器时,路由器通常动态地分配一个IP地址给开发板,而这个地址不是固定的。
在程序中,设置了四个IPAddress类型对象,
通常,IP地址由一个小点分开, 这里是一个逗号.
然后在 program.config下使用WiFi来配置网络信息。
这里只使用3个,并且缺少dns对象,因为dns是一个选项参数,有或没有选项。
然后尝试WiFi连接。 连接到WiFi后,输出连接信息。
也就是说,当客户端请求开发板/更新页面信息时,我们允许它执行 handleUpdate函数。
下面分析了函数 handleUpdate.
首先定义三个变量,然后使用服务器。 方法 arg用于分析和处理(数据类型转换)。
之后,
向客户端返回响应状态代码,然后向客户端返回“收到”响应消息。
然后根据分析的关键状态值控制端(服务器端)的灯光。
最后, 通过串联显示器输出得到的变量值.
上述运行结果如下,
您可以使用浏览器模拟此操作。
输入浏览器地址栏
按下回车后,
同时,在服务器端有一个小灯会被点亮。
程序链接: http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/esp8266-client-gets-iot-data-from-esp8266-server/
注: 分析数据需要等待时间.
那有什么解决办法?
这让我们知道JSON的内容。
本文由 在线网速测试 整理编辑,转载请注明出处。