0 准备材料

0.1 ESP-01S

引脚及定义

官方定义:

序号 pin 功能
1 GND 地线
2 IO0/GPIO0 工作模式选择:①悬空:Flash Boot,工作模式 ②下拉:UART DownLoad 下载模式
3 IO2/GPIO2 通用IO
4 RX/RXD 数据接收端
5 TX/TXD 谁发送端
6 3V3/VCC 3.3V,模块供电
7 RST 1)外部复位管交,低电平复位 2)可以悬空或者接外部MCU
8 EN/CH_PD 芯片使能,高电平使能,低电平失能

产品实际图:

0.2 DHT11(温湿度传感器)

比较简单,只有三个引脚从S端到-端依次为:

序号 pin 功能
1 s 数据端
2 3.3V电源端
3 - 地线

0.3 USB转ESP8386 WiFi模块

该模块实现对WiFi模块的转接功能,使用时仅需按照如图所示安装:

多说一嘴,由于USB供电本身问题,在实现对ESP的系统写入的时候(重置,或者重新刷包),仍然需要单独供电(可以用Arduino单独供电)。

1 云平台准备工作(乐维互联)

乐维平台地址

首先注册一个个人账户,然后进入管理菜单:

在我的设备中添加设备,这里要特别注意第一行的标识号,这是等下我们进行通讯的一个凭证

在我的账户中生成一个userkey,我已经生成完毕:

在我的物联->传感器与控制器中,有一些数据分类,由于刚刚创建我使用了模版,所以这里有如下的几个分类,如果需要别的可以创建新的分类。

进入乐维互联的API测试平台,在这里测试我们刚刚的操作是否有误。

在这里填入刚刚生成的API

在标中的地方换上刚刚添加设备时生成的设备号(不可以是设备名)

接下来就是POST的具体内容了,这里的H1,T1分别为,传感器和控制器那一栏中,的设备标识

request那一栏中的内容就是我们要通过ESP模块发送的内容模版,返回内容则为数据是否成功。如果False会显示错误内容。

乐为互联这一步就结束了,如果有更多问题可以查看官方API文档

2 ESP-01S模块写入

2.1 写入前注意事项

  • ESP-01S是有记忆功能的,即,就算断电重启,之前的指令也会生效。
  • 如果遇到下图这种情况,出现错误回复400,说明进入了透传模式AT+CIPSEND已经接收数据发送了,这时只需要测试一下发送POST消息,如果返回正确请继续。(这种情况不需要刷入新的数据)

使用USB转接器转接模块后,按照以下操作:

AT+RST                   //复位
AT+CIPMODE=1 //STA模式
AT+CIPMUX=0 //单连接模式
AT+CWMODE=1 //透传模式 AT+CWJAP="esp","88888888" //连接WiFi 这里是WiFi和密码 AT+CIPSTART="TCP","api.lewei50.com",80 //与乐联网建立TCP连接
AT+CIPSEND //进入透传开始发送数据 AT+SAVETRANSLINK=1,"api.lewei50.com",80,"TCP" //开机自动连接到乐维平台,请进行下面测试之后再使用该命令防止出错

现在使用如下格式测试ESP的功能:

POST /api/V1/gateway/Updatesensors/02 HTTP/1.1   //记得02换成自己的设备号
Host: open.lewei50.com
userkey:edbec438aa //API换成自己的
Content-Length: 52
Connection: close [{"Name":"T1","Value":29},{"Name":"H1","Value":89}] //传感器换成自己的

如果返回

,就说明测试成功,继续下一步。

组装

ESP

ESP只需要使用四个引脚,高,低数据位,电源,地线。

ESP引脚 Arduino引脚
GND GND
3V3 3.3V
RX 2
TX 3

DHT

上文已经说到,DHT11只有三个引脚,所以全部用上。正负极一定不要接反,接反就坏了

DHT引脚 Arduino引脚
S 6
- GND
5V

总体接线图

代码

这里附上可能会用到的库

leweiclient

esp8266

#include <LeweiClient.h>
#include <SPI.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); #include "DHT.h"
#define DHTPIN 6
#define DHTTYPE DHT11 #define SSID "esp"
#define PASSWORD "88888888"
#define APIKEY "edbec438aa"
#define server "api.lewei50.com"
#include "uartWIFI.h" #define POST_INTERVAL (30*1000)
WIFI wifi;
int i = 0;
DHT dht(DHTPIN, DHTTYPE); void setup() {
// put your setup code here, to run once:
// Serial.begin(9600);
// _cell.begin(9600);
// _cell.print("+++");
dht.begin();
Serial.begin(9600);
DebugSerial.begin(9600);
delay(3000); // wifi.begin();
// bool b = wifi.confMode(3);
// if (!b) Serial.println("mode error");
// wifi.begin();
// delay(2000);
//
// bool g = wifi.confJAP(SSID, PASSWORD);
// if (!g)Serial.println("Init error");
// else Serial.println("Init ok");
//
// bool h = wifi.confMux(0);
// if (!h) DebugSerial.println("single error");
// else DebugSerial.println("single ok"); // String ipstring = wifi.showIP();
// Serial.println(ipstring);
// if (wifi.newMux(TCP, server, 80)) Serial.println("connecting...");
// bool f= wifi.CIPMODE(1);
// if(!f)DebugSerial.println("touchuan error");
// else DebugSerial.println("touchuan ok");
//
// bool d= wifi.CIPSEND();
// if (!d)DebugSerial.println("touchuan start error");
// else DebugSerial.println("touchuan start ok");
//
// delay(2000);
} void loop() {
// put your main code here, to run repeatedly:
// String str;
// bool bflag = false;
// int count = 1;
// delay(5000);
Serial.println("Start post...");
Serial.println("AT+CIPSEND");
delay(2000);
float t = dht.readTemperature();
float h = dht.readHumidity();
static int cnt = 52;
String cmd("POST /api/V1/gateway/Updatesensors/02 HTTP/1.1\r\n"
"Host: open.lewei50.com \r\n"
"userkey: edbec438aa\r\n"
"Content-Length: 52 \r\n"
"Connection: close\r\n"
"\r\n"
"[{\"Name\":\"T1\",\"Value\":" + String((int)t) + "},"
"{\"Name\":\"H1\",\"Value\":" + String((int)h) + "}]\r\n");
DebugSerial.println(cmd);
Serial.println(cmd); // wifi.send(cmd + data);
// _cell.print(cmd);
// _cell.print(data);
// _cell.println();
Serial.println("post ok");
delay(POST_INTERVAL);
}

4 额外的知识

在配置ESP模块的时候遇到了上文讲述的错误,有尝试刷机,当刷机的时候接线入下。

注意3.3V要用Arduino供电

下载以下软件

https://pan.baidu.com/s/146Dl-XKCe61z312Dv1OWKg

提取码:1ls2

Arduino实现温湿度传感器以及数据上传到云(乐维互联)的更多相关文章

  1. 关于数据上传阿里云MaxCompute调研

    1.背景 当前的数据存储基于mysql库表存储形式,目前已经无法满足愈加增大的数据存储需求,新项目基于Maxcompute数据仓库架构,需要将统计日志上传Maxcompute,本文对Maxcomput ...

  2. 【AllJoyn专题】基于AllJoyn和Yeelink的传感器数据上传与指令下行的研究

    接触高通物联网框架AllJoyn不太久,但确是被深深地吸引了.在我看来,促进我深入学习的原因有三点:一.AllJoyn开源,对开源的软硬件总会有种莫名的喜爱,虽然或许不会都深入下去:二.顺应潮流,物联 ...

  3. Arduino UNO +ESP8266采集数据上传到贝壳网

    集成电路设计大赛赛程将至,我现在还是毫无头绪,然后又报了一个互联网+,比赛报了,东西就必须出来,时间很紧的情况下,所以选择了开源的arduino的进行完成.从开始接触Arduino到完成工程,前前后后 ...

  4. 云中树莓派(2):将传感器数据上传到 AWS IoT 并利用Kibana进行展示

    云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 1. 传感器安装及配置 1.1 DHT22 安装 DHT22 是一款温度与湿度传感器,它有3 ...

  5. OneNET麒麟座应用开发之四:数据上传测试

    已经测试过OneNET麒麟座开发板了,这次来尝试与OneNET的连接和数据上传.这也是我们测试这块开发办的主要原因,因为在十几种我们有这种将分散的采集点数据上传到后台的需求. 先看看麒麟座这块开发板, ...

  6. C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)

    目       录 工业物联网和集成系统解决方案的技术路线... 1 前言... 1 第一章           系统架构... 3 1.1           硬件构架图... 3 1.2      ...

  7. PDA手持扫描资产标签,盘点完成后将数据上传到PC端,固定资产系统查看盘点结果

    固定资产管理系统介绍: 致力于研发条码技术.集成条码系统的专业性公司,针对客户的不同需求,提供一站式的企业条码系统解决方案:包括功能强大的软件系统.安全可靠的无线网络.坚固耐用的硬件系统.灵活易用的管 ...

  8. 如何优化 FineUI 控件库的性能,减少 80% 的数据上传量!

    在开始正文之前,请帮忙为当前排名前 10 唯一的 .Net 开源软件 FineUI 投一票: 投票地址: https://code.csdn.net/2013OSSurvey/gitop/codevo ...

  9. Octopus系列之数据上传格式要求说明

    各个数据列要求 价格列:字符串类型[美元价格] 产品名字:可以支持"/"等字符 分类名字:去空格处理 不得包含"&"符号 主图:一定要有主图列 不为空 ...

  10. 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件

    [源码下载] 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件 作者:webabcd 介绍重新想象 Windows 8.1 Sto ...

随机推荐

  1. dotnet 使用 Newtonsoft.Json 输出枚举首字符小写

    本文告诉大家如何使用 Newtonsoft.Json 输出枚举首字符小写 实现方法是加上 JsonConverterAttribute 特性,传入 StringEnumConverter 转换器,再加 ...

  2. dotnet OpenXML 读取 PPT 内嵌 xlsx 格式 Excel 表格的信息

    在 Office 中,可以在 PPT 里面插入表格,插入表格有好多不同的方法,对应 OpenXML 文档存储的更多不同的方式.本文来介绍如何读取 PPT 内嵌 xlsx 格式的表格的方法 读取方法和 ...

  3. 从零开始写 Docker(十二)---实现 mydocker stop 停止容器

    本文为从零开始写 Docker 系列第十二篇,实现类似 docker stop 的功能,使得我们能够停止指定容器. 完整代码见:https://github.com/lixd/mydocker 欢迎 ...

  4. 超好用的 Redis GUI 工具,你值得拥有

    超好用的 Redis GUI 工具,你值得拥有 提供原生的性能,并且比使用 Electron 等 Web 技术开发的同等应用程序消耗的资源少得多. 下载地址:http://www.redisant.c ...

  5. games101-3 BRDF101

    BRDF101 概述 本文基于知乎Maple对brdf的文章,在此基础又收集了一些其它来源的关于brdf的文章,希望能够完全理解记忆相关知识 关于Jakub Boksansky的文章,看的过程中又去搜 ...

  6. ansible系列(34)--ansible实战之部署WEB集群架构(4)

    目录 1. 业务环境部署 1.1 wordpress-base编写 1.2 wordpress-web编写 1.3 wordpress-mysql编写 1.4 wordpress-proxy编写 1. ...

  7. Ubuntu更新源文件报错:E: 仓库 “http://ppa.launchpad.net/chris-lea/node.js/ubuntu bionic Release” 没有 Release 文件。

    E: 仓库 "http://ppa.launchpad.net/chris-lea/node.js/ubuntu bionic Release" 没有 Release 文件. 一条 ...

  8. kettle使用3-增量同步(插入的时候判断数据是否存在,存在就更新,不存在就插入)

    1.新建转换 2.在DB连接中,新建2个数据库连接 3.在输入中,新建:表输入 4.在输入中,新建:表输入 5.在输出中,新建:插入/更新 说明:更新字段: 是说更新目的表时候,哪些列更新,哪些不更新 ...

  9. JavaScript 实现前端文件下载

    A.download HTML5的A标签有一个download属性,可以告诉浏览器下载而非预览文件,很实用,参考链接:http://www.zhangxinxu.com/wordpress/2016/ ...

  10. Android 开发中脚本 提高效率工具

    在安卓开发中我们常常需要获取日志,通常我们可以通过adb logcat 命令获取日志.同样,我没有可以通过脚本获取.其实质也是通过adb命令实现,只是把命名写入bat文件中,在win系统中直接双击就可 ...