ESP8266 NodeMcu 连接onenet 保姆级教学
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 保姆级教学相关推荐
- IDEA连接mysql保姆级教学
目录
- Java EE系列(九)——Java EE连接Mysql数据库(JDBC保姆级教学)
最近几天,peter xiao所在的项目小组也逐渐开始进行做最后的Java web课程大作业了,我们组所做的是运动会报名服务系统,其中涉及到很多数据的增删查改,所以需要依靠Mysql数据库来解决这些问 ...
- 保姆级教学——集群环境搭建及创建集群
保姆级教学--集群环境搭建及创建集群 新建虚拟机 一些默认,加载镜像开启虚拟机,在安装位置选择自己目录,然后建立分区,首先添加 挂载点,类型标准分区,文件系统ext4 加载分区,期望给2G, 类型标准 ...
- 「保姆级教学」入门级java程序——薪资转换器
往期「保姆级教学」目录 「保姆级教学」iOS下JDK环境配置 文章目录 往期「保姆级教学」目录 前言 第二日任务 1.java基础语法 2.掌握java基本输入输出 3.掌握java基本数据类型和变量 ...
- Fortran保姆级教学——考试所有知识点看这一篇就够了
Fortran保姆级教学--考试所有知识点看这一篇就够了 临近期末本人复习的同时将整个fortran课堂知识整理了下来,希望学弟学妹们今后学这门课的时候不至于在csdn找不到系统的教程,也希望能帮到需 ...
- 【量化回测必看!】Backtrader保姆级教学+免费行情源 SMA策略
前言 想开始量化学习不知道如何入手?市面上的学习资料太多不知道该怎么看? 博主将从零基础讲解回测框架,一步步完成量化数据源的搭建,让你10天内成为量化高手 博主同时将视频课程内容在B站更新,可以关注& ...
- 英伟达的Nerf:instant_ngp在Windows10下的配置和使用--保姆级教学
英伟达的Nerf:instant_ngp在Windows10下的配置和使用–保姆级教学 1.前言 Nerf的原理和厉害之处在这里就不做详细介绍了,本文主要是针对小白在Windows10环境下配置ins ...
- 手把手教你使用Hugo搭建个人博客网站|保姆级教学
搭建个人博客网上目前用的比较多的博客框架是Hexo.Hugo.Jekyll.本文详细介绍利用最新的Hugo(基于Go语言的博客框架)在windows上搭建个人博客网站,从域名注册到后期维护,全程保姆级 ...
- 利用Anaconda安装pytorch和paddle深度学习环境+pycharm安装---免额外安装CUDA和cudnn(适合小白的保姆级教学)
系列文章目录 深度学习原理-----线性回归+梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络 深度学习原理-----卷积神经网络 深度 ...
最新文章
- pstools中如何绕过协议提示
- 操作符*或者-的重载
- Linux的bc命令计算π的值预估系统算力
- 程序员解决20年前的加密问题
- struts配置访问后缀为.do,.action,.*
- python的shelve库
- 前嗅ForeSpider教程:采集图片/视频/资源文件
- Caffe傻瓜系列(8):命令行解析
- 计算机网络 五层网络协议各司其职,一次讲清楚
- MAC读写NTFS移动硬盘的解决办法
- 会议 | 百度首席科学家吴华图灵大会演讲:NLP技术的演变与发展
- 09、Non-Black-Box ZK(Barak‘s protocol)--Alon Rosen
- 如何检测页面是否允许访问Cookie
- 工作3年进阿里,取得P7职位,需要怎样的技术能力?(面试题附答案)
- Flash XSS 漏洞实例
- 用u盘给服务器装win7系统,用U盘装系统装Win7图文教程
- java中pack什么意思_java – .pack()做什么?
- vim 配置文件 ,高亮+自动缩进+行号+折叠+优化
- 一入编码深似海,在达观数据做程序员是怎样一种体验?
- 个股短、中线技术形态判定
热门文章
- 《Cracking the Coding Interview》——第6章:智力题——题目6
- 4.2.11 Flink-流处理框架-Table API 与 SQL-函数(Functions)之用户自定义函数 UDF
- 简单的通过华为云平台去模拟NB-IOT的智慧路灯
- 计算机硬件音频,浅析计算机硬件基础 第9章(音频和视频设备).ppt
- 国标28181:国标编码
- vue下拉触底,判断上滑下滑
- 终于,可以在Excel中直接使用Python!
- hydra暴力破解ssh密码
- VB6.0代码中,有关字符串
- 一、Git介绍、以及原理