ESP8266 学习 十 客户端向服务器发送数据信息

客户端向服务器发送数据信息

  • 在之前的课程中,我们曾经学习了如何使用ESP8266来建立网络服务器。在本节课程中,我们一起学习如何让ESP8266开发板以网络客户端的角色向服务器发送HTTP请求,并且获取何处理服务器响应信息。通过这一操作,我们可以实现ESP8266开发板间的物联网数据通信。
  • 此时就需要有两个esp8266开发板进行处理一个客户端 一个服务器端

    • 第一个实验 使用ESP8266客户端向ESP8266服务器发送数据 :控制目的 通过http协议 通过客户端的板子按键 控制服务端的LED亮灭 注意,下示例中的服务器端和客户端ESP8266必须连接同一WiFi网络,方可实现数据通讯。
    • 服务器端程序:
    • – 接收客户端发来的http请求并且解析信息中的数据信息
    • – 将解析的数据信息通过串口监视器显示供用户查看
    • 将解析的客户端按键状态信息用于控制服务器端板上LED的点亮和熄灭
      • 代码解析: 设置开放板联网信息 可以设置联网后的ip 网关的ip 子网掩码 局域网的DNS IP 除了开发板的IP地址可以自行设置外 网关IP地址一定要根据自己所在的路由环境进行修改使用

       

       

      • 开发板网络环境配置函数 config 配置 可以看见缺少了DNS在此运用时没有用到DNS服务器配置需求

       

      • 服务器获取客户端按键状态的变量 前面两个是测试用的

       

    • 重点:如何找到网络地址IP win+r 打开命令提示符输入 ipcomfig---------同时 DNS与网关IP地址通常要保持一致。 设置ESP8266-NodeMCU联网后的IP前三位也要一制 而且开发板的ip地址在同一个局域网中的IP地址是唯一的

     

    • 客户端程序:
    • – 客户端通过HTTP协议向服务器发送信息
    • – 信息中包含客户端按键开关引脚状态用于控制服务器板上LED的点亮和熄灭
    • – 信息中还包含测试数据以便我们更好的了解如何使用ESP8266发送和接收物联网数据信息

     

    • 代码解析 : 首先是客户端发送的目的地也就是 服务器端的IP地址 然后是&号分割的数值信息 float=1.5&int=2&button=0 回想服务器端的获取的三个变量就是如此 float floatValue = server.arg("float").toFloat(); // 获取客户端发送HTTP信息中的浮点数值 通过查询有没有名为float的变量有就将获取到的变量转换为float 并且赋值给 floatValue
    • 然后 通过读取特定引脚的电平变化来判断按键是否按下 重点代码讲解 : 将浮点型变量连接为字符串 并连接形成一个完整的请求URL 信息 此时会将URL放在请求信息之后

     

     

  • 错误 分析: 当一直在failed 时就要检查IP配置是否正确 服务器端启动成功 客户端启动成功

    • 服务器端检查测到电平变化 客服端 没有按下式为1 按下时为0

     

     

  • 然后1我们结合以前的请求 回忆可知 客户端向服务端获取信息为get 但是此示例中发送信息也用get 所以总结就是在http 请求中get 这些方法其实是不固定的get也能用于发送信息

  • 客户端向服务器请求数据信息

    • 其实·就是·将刚才的实验反过来 就是通过服务器端的按键控制客户端的LED灯
      • 服务器端程序:
      • – 实时获取服务器端开发板上按钮引脚状态
      • – 当有客户端向ESP8266服务器的/update发送请求时,将服务器的按键引脚状态通过响应信息回复给客户端

        • 通过 send 请求 发送按键状态 客户端读取之后 判断并点亮LED灯
      • 客户端程序:
      • – 定时向服务器发送请求,从而获取服务器开发板上按钮状态
      • – 将服务器端发来的按钮引脚电平状态解析为数字量,并且用该数字量控制板上LED点亮和熄灭

    • if(client.find("buttonState:")) { buttonState = client.parseInt();} find 函数是查找buttonState 之后的整数就是find函数会让指针偏移 在流stream 有讲解 但是对于少量数据可以stream解析的方式进行 但是stream解析特别特别浪费时间 因此我们开始学习json
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值