亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

使用 Arduino MKR1000 将 DHT11 传感器数据上传至 ThingSpeak

组件与材料

DHT11 温湿度传感器(4 引脚) ×1
Arduino MKR1000 ×1

项目简介

我之前已为 ESP8266-12E 编写代码,通过 DHT11 采集环境数据并无线上传至 ThingSpeak 绘图。本项目仅需微调即可适配 Arduino MKR1000。

使用 Arduino MKR1000 将 DHT11 传感器数据上传至 ThingSpeak

步骤 1:硬件连接

将 DHT11 数据引脚连接到 MKR1000 的 Pin 1(板背面标记为 1 的引脚,即第 5 个引脚)。

使用 Arduino MKR1000 将 DHT11 传感器数据上传至 ThingSpeak

步骤 2:安装库文件

步骤 3:安装 SAMD 核心板支持

在 Arduino IDE 中:工具 → 开发板 → 开发板管理器,搜索 Arduino SAMD Boards (32-bits ARM Cortex M0+),安装 1.6.3 版本(1.6.4 版本可能导致 MKR1000 板卡未正确安装)。

使用 Arduino MKR1000 将 DHT11 传感器数据上传至 ThingSpeak

步骤 4:配置 ThingSpeak

  1. 注册免费 ThingSpeak 账号
  2. 创建通道,设置字段:Field 1 = 湿度,Field 2 = 摄氏度,Field 3 = 华氏度,Field 4 = 体感温度(℃),Field 5 = 体感温度(℉)
  3. 复制 Write API Key、WiFi SSID 与密码到下方代码中

步骤 5:上传与运行

选择正确的 COM 端口(MKR1000),编译上传。串口监视器将显示数据上传状态。

使用 Arduino MKR1000 将 DHT11 传感器数据上传至 ThingSpeak

完整代码

/* 结合 Adafruit DHT 示例、WiFi101 WebClient 与 ThingSpeak 官方模板
 * 适配 MKR1000,作者:Stephen Borsay
 */
#include <SPI.h>
#include <WiFi101.h>
#include <DHT.h>

#define DHTPIN 1        // 数据引脚
#define DHTTYPE DHT11   // DHT11
//#define DHTTYPE DHT21 // DHT21
//#define DHTTYPE DHT22 // DHT22

DHT dht(DHTPIN, DHTTYPE);

String apiKey = "YourApiKeyHere";  // ThingSpeak Write API Key
char ssid[] = "YourSSIDHERE";      // WiFi 名称
char pass[] = "YourPasswordHere";  // WiFi 密码
int keyIndex = 0;                  // 仅 WEP 需要

char server[] = "api.thingspeak.com";
WiFiClient client;

void setup() {
  Serial.begin(9600);
  while (!Serial) { ; }

  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi 模块未检测到");
    while (true);
  }

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print("连接中: ");
    Serial.println(ssid);
    WiFi.begin(ssid, pass);
    delay(10000);
  }
  Serial.println("WiFi 已连接");
  printWifiStatus();
}

void loop() {
  delay(2000);

  int h = dht.readHumidity();
  int t = dht.readTemperature();       // 摄氏度
  int f = dht.readTemperature(true);   // 华氏度

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("DHT 读取失败!");
    return;
  }

  int hif = dht.computeHeatIndex(f, h);
  int hic = dht.computeHeatIndex(t, h, false);

  Serial.print("湿度: "); Serial.print(h); Serial.print(" %\t");
  Serial.print("温度: "); Serial.print(t); Serial.print(" *C ");
  Serial.print(f); Serial.print(" *F\t");
  Serial.print("体感: "); Serial.print(hic); Serial.print(" *C ");
  Serial.print(hif); Serial.println(" *F");

  Serial.println("\n连接服务器...");
  if (client.connect(server, 80)) {
    Serial.println("已连接");
    String tsData = "field1=" + String(h) + "&field2=" + String(t) +
                    "&field3=" + String(f) + "&field4=" + String(hic) +
                    "&field5=" + String(hif);

    client.print("POST /update HTTP/1.1\r\n");
    client.print("Host: api.thingspeak.com\r\n");
    client.print("Connection: close\r\n");
    client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\r\n");
    client.print("Content-Type: application/x-www-form-urlencoded\r\n");
    client.print("Content-Length: " + String(tsData.length()) + "\r\n\r\n");
    client.print(tsData);
    client.stop();
    delay(1000);
  }
}

void printWifiStatus() {
  Serial.print("SSID: "); Serial.println(WiFi.SSID());
  IPAddress ip = WiFi.localIP();
  Serial.print("IP: "); Serial.println(ip);
  long rssi = WiFi.RSSI();
  Serial.print("信号强度: "); Serial.print(rssi); Serial.println(" dBm");
}

GitHub 仓库

代码同步托管于:GitHub

原理图

DHT 数据线 → MKR1000 Pin 1(第 5 脚);VCC 和 GND 由 MKR1000 供电。

使用 Arduino MKR1000 将 DHT11 传感器数据上传至 ThingSpeak

制造工艺

  1. Parts.Cat.Com如何简化配件采购,为您省时省钱
  2. Shop.Cat.Com:工程装备、附件、工具一站式采购平台
  3. 优化Cat®机械:My.Cat.com终极指南
  4. 树莓派紧凑型 DHT 温湿度扩展板:ATtiny85 + DHT22/DHT11
  5. 树莓派与 BrickPi 构建 ThingSpeak 温度监测系统
  6. 树莓派 + DHT11 + ThingSpeak:打造你的第一个物联网项目
  7. 专访Philip Cotton:3Dfilemarket.com创始人、英国3D打印教育专家
  8. RP Platform与3Faktur登上3Dprinting.com:推进建筑3D打印
  9. Arduino MKR1000 开发板详解:引脚定义、Wi-Fi/加密芯片、供电方式与上手指南
  10. PicoCoreMX8MM:基于 NXP i.MX 8M Mini 的超紧凑 ARM 模块
  11. Kontron 发布 COM HPC:新一代高性能嵌入式计算标准
  12. ASTM A551 DHT级热处理钢:关键性能与表现