arduino 编程esp8266

发布于:2024-03-12 ⋅ 阅读:(67) ⋅ 点赞:(0)

1.概述

        wifi连接,扫描WiFi连接json序列化,http.get和http.post。

2.添加arduino提供的库

    #include <ESP8266WiFi.h>//默认,加载WIFI头文件

    #include <Arduino_JSON.h> //加载解析文件库

    #include <ArduinoHttpClient.h>  //加载http客户端库

3.代码

      

    #include <ESP8266WiFi.h>//默认,加载WIFI头文件

    #include <Arduino_JSON.h> //加载解析文件库

    #include <ArduinoHttpClient.h>  //加载http客户端库
 
    WiFiClient espClient;
    
    const char * ssid="wifi_name";//wifi名称
    const chat * pwd="wifi_password";//WiFi 密码
   
    HttpClient http = HttpClient(espClient,"www.baidu.com",80);//定义一个http客户端
    String mes;
void setup(){
   WiFi.begin(ssid.pwd);//连接wifi
   if(WiFi.state()==3)
      printf("连接成功");
   delay(500);
  int n=WiFi.scanNetworks();//扫描附近wifi
  mes=JsonSerialization(n);  //将扫描出的WiFi信息json序列化
  printf(mes);//打印出扫描到的附近wifi
  delay(100);
}

  void loop(){
  String contentType="application/json"; //请求内容格式
  String url=""; //数据路径
  httpm.get(url);//发送get请求,所有的东西都在url中
  int mhttpCode = http.responseStatusCode();//阻塞响应,就是等待响应,一般10s超时跳过
  String mresponse = http.responseBody();  //获得响应数据
  JSONVar mtemp=JSON.parse(mresponse);//将字符串转成json格式
  if (JSON.typeof(mtemp) == "undefined") {
    Serial.println("Parsing input failed!");
    return;
  }
   delay(1000);
   String contentType="application/json";
   String url="";
   http.post(url, contentType, message);  //可以发现post和get还是比较像的,数据和url不在一起
   int httpCode = http.responseStatusCode();
   String response = http.responseBody();  
   printf(response);
   delay(1000);
   }

4.解析

       非常简单,基本上全部封装到位,只需要简单的调用填参数就行。http中的get和post本质没有区别,只不过在封装的时候考虑了标志,数据的位置,服务器的解析。


网站公告

今日签到

点亮在社区的每一天
去签到