我是靠谱客的博主 彩色万宝路,最近开发中收集的这篇文章主要介绍ESP8266 NodeMcu 连接onenet 保姆级教学ESP8266 nodemcu模块使用Arduino IDE 连接onenet示例前言一、onenet平台设置二、ESP8266 nodeMcu程序 以arduino IDE为例总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ESP8266 nodemcu模块使用Arduino IDE 连接onenet示例

文章目录

目录

ESP8266 nodemcu模块使用Arduino IDE 连接onenet示例

文章目录

前言

一、onenet平台设置

二、ESP8266 nodeMcu程序 以arduino IDE为例

1.程序

2.修改API和产品ID

总结



前言

很多同学在设计毕设的时候总会用到esp8266这个模块,本文用简单的方法教你快速使用

一、onenet平台设置

        1、注册onenet平台,这里就不多说了。

        2、点击控制台 --> 全部产品服务 --> 多米协议接入 --> HTTP(这里我们使用HTTP协议)—> 添加产品

         3、创建添加产品

                 这里就随便添加个产品就可以了。

                

        4、进入刚才创建的Test_HTTP,添加新设备

                

               

         5、打开设备详情,添加APIkey(这个APIkey非常重要)

二、ESP8266 nodeMcu程序 以arduino IDE为例

1.程序

注意:程序中需要修改wifi的名字和密码,wifi不要使用5G的,测试中发现5G好像连接不上

程序引用Arduino IDE 开发ESP8266 以HTTP方式连接onenet_淮南草的博客-CSDN博客_arduino http onenet

#include <ESP8266WiFi.h>
 
const char *ssid     = "Xiaomi";//这里写入网络的ssid 
const char *password = "88886666";//wifi密码
const char *host = "183.230.40.33";//修改为Server服务端的IP,即你电脑的IP,确保在同一网络之下。
 
WiFiClient client;
const int tcpPort = 80;//修改为你建立的Server服务端的端口号,此端口号是创建服务器时指定的。
 
 
void setup()
{
    Serial.begin(115200);    
    pinMode(LED_BUILTIN,OUTPUT);
    delay(10);
    Serial.println();
    Serial.print("Connecting to ");//会通过usb转tll模块发送到电脑,通过ide集成的串口监视器可以获取数据。
    Serial.println(ssid);
 
    WiFi.begin(ssid, password);//启动
 
     //在这里检测是否成功连接到目标网络,未连接则阻塞。
    while (WiFi.status() != WL_CONNECTED)
    {
        delay(500);
    }
 
 //几句提示
    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
    
}
 
 
void loop()
{
    while (!client.connected())//若未连接到服务端,则客户端进行连接。
    {
        if (!client.connect(host, tcpPort))//实际上这一步就在连接服务端,如果连接上,该函数返回true
        {
            Serial.println("connection....");
            delay(500);
 
        }
    }
    digitalWrite(LED_BUILTIN, HIGH);    
    delay(1000);                      // Wait for a second
    digitalWrite(LED_BUILTIN,LOW );
    
    if (client.connected()) {              //若连接成功,就发送POST 请求上报数据
    String url = "http://api.heclouds.com/devices/927732558/datapoints?type=3";  //参数type=3表示用 简洁数据格式,592465545是你在移动OneNET上创建的设备ID 不是产品的ID!!!! 一定要记住
    client.print(String("POST ")+url+" HTTP/1.1rn");                                                 //使用HTTP/1.1协议
    client.print(String("api-key: ")+"w0P44TtUerqICXnRaQTptfBHwbk=rn");             //一定要改为设备的API key,不是产品的API key!!!! 一定要记住
    client.print(String("Host: ")+"api.heclouds.comrn");
    client.print("Connection: closern");
//    client.print("Content-Length:23rnrn");
//    client.print(String("{"SoilHUM":12"));
//    client.print(String(","TEM":30}"));
 
//    client.print(String("{"SoilHUM":69,"TEM":25}"));
//    client.print(String("{'SoilHUM':10,'TEM':10}"));
      uint8_t tem= 5;
      uint8_t hum= 6;
      String data = "{'SoilHUM':" + String(hum) + ",'TEM':"+  String(tem) + "}";
//      Serial.write(data);
      Serial.write("data:");
      Serial.print(data);
      Serial.print(String(data.length()));
      Serial.print("Content-Length:"+ String(data.length()) + "rnrn");
      client.print("Content-Length:"+ String(data.length()) + "rnrn");
      client.print(data);
  }
  client.stop();                     //关闭HTTP客户端
  delay(10000);   
    while (client.available())//available()表示是否可以获取到数据
    {
      //控制led
//        char val = client.read();//read()表示从网络中读取数据。
//        if(val=='a'){//pc端发送a和b来控制
//           digitalWrite(led, LOW);
//        }
//        if(val=='b')
//        {
//            digitalWrite(led, HIGH);
//        }
 
      //透传数据
      uint8_t c = client.read();
      Serial.write(c);
 
    }
 if (Serial.available())//串口读取到的转发到wifi,因为串口是一位一位的发送所以在这里缓存完再发送
  {
      delay(50);//加50ms延迟 保证串口字符接收完毕
      size_t counti = Serial.available();//串口缓冲器 返回的是缓冲区准确的可读字节数
      uint8_t sbuf[counti];
      Serial.readBytes(sbuf, counti);//从串口读取指定长度counti的字符到缓存数组sbuf。
      delay(50);//加50ms延迟 保证缓存完毕
      client.write(sbuf, counti);
 
  }
 
 
 
}
 

2.修改API和产品ID

代码如下(示例):

String url = "http://api.heclouds.com/devices/927732558/datapoints?type=3";  //参数type=3表示用 简洁数据格式,592465545是你在移动OneNET上创建的设备ID 不是产品的ID!!!! 一定要记住
    client.print(String("POST ")+url+" HTTP/1.1rn");                                                 //使用HTTP/1.1协议
    client.print(String("api-key: ")+"w0P44TtUerqICXnRaQTptfBHwbk=rn");  

标出颜色的两个位置需要修改,第一处是设备ID 第二处是上文提到的APIkey,修改成自己的即可


总结

 查看数据在数据流里查看就行了。本人小白,欢迎指出错误,一起共同努力。

最后

以上就是彩色万宝路为你收集整理的ESP8266 NodeMcu 连接onenet 保姆级教学ESP8266 nodemcu模块使用Arduino IDE 连接onenet示例前言一、onenet平台设置二、ESP8266 nodeMcu程序 以arduino IDE为例总结的全部内容,希望文章能够帮你解决ESP8266 NodeMcu 连接onenet 保姆级教学ESP8266 nodemcu模块使用Arduino IDE 连接onenet示例前言一、onenet平台设置二、ESP8266 nodeMcu程序 以arduino IDE为例总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部