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 seconddigitalWrite(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.1\r\n");                                                 //使用HTTP/1.1协议client.print(String("api-key: ")+"w0P44TtUerqICXnRaQTptfBHwbk=\r\n");             //一定要改为设备的API key,不是产品的API key!!!! 一定要记住client.print(String("Host: ")+"api.heclouds.com\r\n");client.print("Connection: close\r\n");
//    client.print("Content-Length:23\r\n\r\n");
//    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()) + "\r\n\r\n");client.print("Content-Length:"+ String(data.length()) + "\r\n\r\n");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.1\r\n");                                                 //使用HTTP/1.1协议client.print(String("api-key: ")+"w0P44TtUerqICXnRaQTptfBHwbk=\r\n");  

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


总结

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

ESP8266 NodeMcu 连接onenet 保姆级教学相关推荐

  1. IDEA连接mysql保姆级教学

                                                                      目录

  2. Java EE系列(九)——Java EE连接Mysql数据库(JDBC保姆级教学)

    最近几天,peter xiao所在的项目小组也逐渐开始进行做最后的Java web课程大作业了,我们组所做的是运动会报名服务系统,其中涉及到很多数据的增删查改,所以需要依靠Mysql数据库来解决这些问 ...

  3. 保姆级教学——集群环境搭建及创建集群

    保姆级教学--集群环境搭建及创建集群 新建虚拟机 一些默认,加载镜像开启虚拟机,在安装位置选择自己目录,然后建立分区,首先添加 挂载点,类型标准分区,文件系统ext4 加载分区,期望给2G, 类型标准 ...

  4. 「保姆级教学」入门级java程序——薪资转换器

    往期「保姆级教学」目录 「保姆级教学」iOS下JDK环境配置 文章目录 往期「保姆级教学」目录 前言 第二日任务 1.java基础语法 2.掌握java基本输入输出 3.掌握java基本数据类型和变量 ...

  5. Fortran保姆级教学——考试所有知识点看这一篇就够了

    Fortran保姆级教学--考试所有知识点看这一篇就够了 临近期末本人复习的同时将整个fortran课堂知识整理了下来,希望学弟学妹们今后学这门课的时候不至于在csdn找不到系统的教程,也希望能帮到需 ...

  6. 【量化回测必看!】Backtrader保姆级教学+免费行情源 SMA策略

    前言 想开始量化学习不知道如何入手?市面上的学习资料太多不知道该怎么看? 博主将从零基础讲解回测框架,一步步完成量化数据源的搭建,让你10天内成为量化高手 博主同时将视频课程内容在B站更新,可以关注& ...

  7. 英伟达的Nerf:instant_ngp在Windows10下的配置和使用--保姆级教学

    英伟达的Nerf:instant_ngp在Windows10下的配置和使用–保姆级教学 1.前言 Nerf的原理和厉害之处在这里就不做详细介绍了,本文主要是针对小白在Windows10环境下配置ins ...

  8. 手把手教你使用Hugo搭建个人博客网站|保姆级教学

    搭建个人博客网上目前用的比较多的博客框架是Hexo.Hugo.Jekyll.本文详细介绍利用最新的Hugo(基于Go语言的博客框架)在windows上搭建个人博客网站,从域名注册到后期维护,全程保姆级 ...

  9. 利用Anaconda安装pytorch和paddle深度学习环境+pycharm安装---免额外安装CUDA和cudnn(适合小白的保姆级教学)

    系列文章目录 ​​​​​​​深度学习原理-----线性回归+梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络​​​​​​​ 深度学习原理-----卷积神经网络 深度 ...

最新文章

  1. pstools中如何绕过协议提示
  2. 操作符*或者-的重载
  3. Linux的bc命令计算π的值预估系统算力
  4. 程序员解决20年前的加密问题
  5. struts配置访问后缀为.do,.action,.*
  6. python的shelve库
  7. 前嗅ForeSpider教程:采集图片/视频/资源文件
  8. Caffe傻瓜系列(8):命令行解析
  9. 计算机网络 五层网络协议各司其职,一次讲清楚
  10. MAC读写NTFS移动硬盘的解决办法
  11. 会议 | 百度首席科学家吴华图灵大会演讲:NLP技术的演变与发展
  12. 09、Non-Black-Box ZK(Barak‘s protocol)--Alon Rosen
  13. 如何检测页面是否允许访问Cookie
  14. 工作3年进阿里,取得P7职位,需要怎样的技术能力?(面试题附答案)
  15. Flash XSS 漏洞实例
  16. 用u盘给服务器装win7系统,用U盘装系统装Win7图文教程
  17. java中pack什么意思_java – .pack()做什么?
  18. vim 配置文件 ,高亮+自动缩进+行号+折叠+优化
  19. 一入编码深似海,在达观数据做程序员是怎样一种体验?
  20. 个股短、中线技术形态判定

热门文章

  1. 《Cracking the Coding Interview》——第6章:智力题——题目6
  2. 4.2.11 Flink-流处理框架-Table API 与 SQL-函数(Functions)之用户自定义函数 UDF
  3. 简单的通过华为云平台去模拟NB-IOT的智慧路灯
  4. 计算机硬件音频,浅析计算机硬件基础 第9章(音频和视频设备).ppt
  5. 国标28181:国标编码
  6. vue下拉触底,判断上滑下滑
  7. 终于,可以在Excel中直接使用Python!
  8. hydra暴力破解ssh密码
  9. VB6.0代码中,有关字符串
  10. 一、Git介绍、以及原理