首页 > 其他分享 >Arduino实现温湿度传感器以及数据上传到云(乐维互联)

Arduino实现温湿度传感器以及数据上传到云(乐维互联)

时间:2024-06-18 22:54:34浏览次数:21  
标签:DebugSerial 乐维 Arduino 温湿度 wifi 引脚 ESP println Serial

0 准备材料

0.1 ESP-01S

image

引脚及定义

官方定义:
image

序号 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 芯片使能,高电平使能,低电平失能

产品实际图:

image

0.2 DHT11(温湿度传感器)

image

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

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

0.3 USB转ESP8386 WiFi模块

image

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

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

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

乐维平台地址
首先注册一个个人账户,然后进入管理菜单:
image

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

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

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

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

在这里填入刚刚生成的API
image

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

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

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

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

2 ESP-01S模块写入

2.1 写入前注意事项

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

使用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}]   //传感器换成自己的

如果返回image
,就说明测试成功,继续下一步。

组装

ESP

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

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

DHT

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

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

总体接线图

image

代码

这里附上可能会用到的库
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模块的时候遇到了上文讲述的错误,有尝试刷机,当刷机的时候接线入下。
image

注意3.3V要用Arduino供电

下载以下软件
https://pan.baidu.com/s/146Dl-XKCe61z312Dv1OWKg
提取码:1ls2

标签:DebugSerial,乐维,Arduino,温湿度,wifi,引脚,ESP,println,Serial
From: https://www.cnblogs.com/magicfat/p/18255347

相关文章

  • 基于51单片机的窗帘控制系统【温湿度,烟雾,红外,光照】(仿真)
    基于51单片机的窗帘控制系统【温湿度,烟雾,红外,光照】(仿真)给大家提供一些资料详细解释,有需要的自行提取,网盘地址我放在下面 链接:https://pan.baidu.com/s/1NigBeujDZTCFL0hdMiu7yg?pwd=syxp 提取码:syxp 分别利用温湿度传感器、烟雾传感器、光敏电阻、红外检测控制模块等......
  • Arduino单片机详解
    Arduino单片机详解Arduino是一款开源的电子原型平台,广泛应用于各种电子项目和物联网开发。它通过简单易用的硬件和软件,使得电子制造和编程变得更加容易。Arduino的核心是单片机(Microcontroller),它是一个集成了CPU、内存和外设的芯片。下面将详细介绍Arduino单片机的各个方面,包......
  • 【物联网】Arduino物联网实验(附带超详细代码注释)
    第1课:双色LED实验一、实验介绍双色发光二极管(LED)能够发出两种不同颜色的光,通常是红色和绿色,而不是仅有一种颜色。它采用3mm或5mm环氧树脂封装。它有3条线索;共阴极或共阳极可用。双色LED具有两个LED端子或引脚,以反平行方式排列在电路中并通过阴极/阳极连接。正电压......
  • Arduino实现温湿度传感器以及数据上传到云(乐维互联)
    本文首创于博客园,博客园作者也是我本人0准备材料0.1ESP-01S引脚及定义官方定义:序号pin功能1GND地线2IO0/GPIO0工作模式选择:①悬空:FlashBoot,工作模式②下拉:UARTDownLoad下载模式3IO2/GPIO2通用IO4RX/RXD数据接收端5TX/TXD谁发送端63V3/VCC3.3V,模块供电7RST1)外......
  • 基于ESP32+arduino+platformIO驱动小米模组接入米家app(以温湿度传感器为例)
    1.选择开发板以及开发环境1.ESP32-C3-DevKitC-02作为主控(以下称为ESP32模块)相关文档:ESP32-C3-DevKitC-02-ESP32-C3-—ESP-IDF编程指南latest文档https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32c3/hw-reference/esp32c3/user-guide-devkitc-02.ht......
  • Arduino UNO和Nano的区别
    ArduinoUNO和ArduinoNANO的区别ATmega328pUNO对于用过Arduino开发板的小伙伴来说应该是比较熟悉的了,主要说说NANO,UNO和NANO控制芯片同样用的ATmega328p,不同的是芯片封装不同,UNO是DIP28封装NANO是TQFP32封装(NANO比UNO多了4个引脚出来)图Arduino Uno图Arduino N......
  • 全新STC12C5A60S2单片机+LCD19264大屏万年历农历生肖节气节日显示+闹钟+温湿度+台灯
     资料下载地址:全新STC12C5A60S2单片机+LCD19264大屏万年历农历生肖节气节日显示+闹钟+温湿度+台灯这是旧版退役拆解了新版 与电路图所示共设置4个按键短按开关台灯加减键调光长按进入菜单1.台灯加入PCAPWM调光STC12C5A60S2的PCAPWM非常好用设置简单无极调节......
  • DHT11温湿度模块的简单使用与代码(江科大代码风格)
    目录模块接线测量范围模块代码DTH11.hDHT11.c模块接线测量范围相对湿度:5%~95%RH温度:-20~60℃模块代码DTH11.h#ifndef_DHT11_H_#define_DHT11_H_#include"stm32f10x.h"//Deviceheader//上电后等待1秒才调用函数......
  • 洁净房计量校准中,温湿度如何校准?需要注意哪些规范流程?
    洁净房是许多生产厂商,或者实验室常用的实验生产空间。比如常见的无尘车间,又或者是无尘实验室等等,它们都有相同的特点,那就是洁净无尘,基本上可以排除空间里尘埃微粒的影响,从而可以更好的对洁净房中的静电、温度、湿度等一系列数据进行规范控制,那么如果需要在洁净房中进行计量校准......
  • Arduino实现温湿度传感器以及数据上传到云(乐维互联)
    0准备材料0.1ESP-01S引脚及定义官方定义:序号pin功能1GND地线2IO0/GPIO0工作模式选择:①悬空:FlashBoot,工作模式②下拉:UARTDownLoad下载模式3IO2/GPIO2通用IO4RX/RXD数据接收端5TX/TXD谁发送端63V3/VCC3.3V,模块供电7RST1)外......