QQ 咨询
喝杯饮料
微信交流
wx公众号
432

如何让 ESP8266 板子像 APP 开发一样轻松
如何文章对你有用的话,就点击左边悬浮按钮,请小编喝杯饮料吧
时间: 2022-05-18 16:35:45  作者:北桥苏  阅读:(26)


前言:

        众所周知,在 APP 开发中,C/S 是基本的开发结构。客户端负责应用的展示,交互与网络请求等,服务端负责数据的传输,处理,存储,输出等等。而物联网除了之前介绍的 MQTT 实现 H5 实时控制舵机旋转角度来完成开关外,同样也可以通过 HTTP 的请求方式来和任何一门语言的服务端进行交互。

        所以,在这里 ESP8266 可以理解为客户端了。当然,ESP8266 请求接口既可以可以用来输出到外接的 oLED 或音响等设备,也可以通过传感器收集的数据通过接口的方式传到服务端进行存储,服务端再清洗过滤,计算分析,可以玩的东西就更多一些了。以下只是好早以前用 PHP 测试写的接口,ESP8266 就请求打印一下的简单例子。

 

环境:


     Arduino

    ArduinoJson 库

    HTTPClient 库

 

安装:


       在推荐使用以上两个库外,我之前使用的 ESP8266WiFi,请求成功后,通过 JON 库怎么也解析不成功,在经过一些踩坑和折腾后换成 HTTPClient 就可以了。以上两个库分别用来作为请求和 JSON 解析,在网上自行搜索哦,如果实在找不到可以在小编公众号留言,免费提供下载,安装方式是:将下载好的包复制到 Arduino 的 libraries 目录中即可。

代码演示:



#include 
#include 
#include 
#include 
 
ESP8266WiFiMulti wifiMulti;           // 建立ESP8266WiFiMulti对象

void setup() {
  
  Serial.begin(9600);          
  Serial.println("");
  
  // 设置开发板LED引脚
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, HIGH);
 
  wifiMulti.addAP("TP-LINK_D12E", "ZFC3598300"); // 将需要连接的一系列WiFi ID和密码输入这里
  wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2"); // ESP8266-NodeMCU再启动后会扫描当前网络
  wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3"); // 环境查找是否有这里列出的WiFi ID。如果有
  Serial.println("Connecting ..."); 
 
  int i = 0;  
  while (wifiMulti.run() != WL_CONNECTED) { // 尝试进行wifi连接。
    delay(1000);
    Serial.print(i++); Serial.print(' ');
  }
  
  // WiFi连接成功后将通过串口监视器输出连接成功信息 
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(WiFi.SSID());              // WiFi名称
  Serial.print("IP address:\t");
  Serial.println(WiFi.localIP());           // IP
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    http.begin("http://xy.zerofc.cn/");
    int httpCode = http.GET();
    if (httpCode > 0) {
      String Request_result = http.getString();
      //Serial.println(Request_result);
      
      DynamicJsonBuffer jsonBuffer;
      JsonObject& root = jsonBuffer.parseObject(Request_result);
      String json1 = root["results"][0];
      Serial.println(json1);
      
      DynamicJsonBuffer jsonBuffer1;
      JsonObject& root1 = jsonBuffer1.parseObject(json1);
      String json2 = root1["location"];
      Serial.println(json2);

      DynamicJsonBuffer jsonBuffer2;
      JsonObject& root2 = jsonBuffer2.parseObject(json2);
      String json3 = root2["id"];
      Serial.println(json3);

      Serial.println("");
    }
    else {
      Serial.println("Invalid response!");
    }
    http.end();
  }
  delay(5000);

}

打印效果:


 

交流学习:



上一篇:没有了

下一篇:没有了




用户登录


     QQ登录

我的标签


随机文章

  • 解决使用宝塔安装的swoole扩展,运行项目出现的3个常见问题测试性的启动一下。php easyswool…… 查看详情
  • 【物联网篇】PHP通过Modbus Tcp实时获取设备数据 最近接触了一个关于PLC工控的小项目,大概…… 查看详情
  • PHP实现单人多人聊天源码免费分享 | 电脑报修系统1. 简易版登陆式聊天源码。 2. 电脑报…… 查看详情

友情链接





Copyright© 2016-2021 北桥苏 & 版权所有    赣ICP备16002525号-1
如有侵权、不妥之处,请联系站长的客服并出示版权证明以便删除。敬请谅解! 站长客服联系方式:QQ2652364582