MKR1000 到 ThingSpeak.com
组件和用品
![]() |
| × | 1 | |||
![]() |
| × | 1 |
关于这个项目
我已经为 ESP8266 12-E 开发了代码,让 DHT11 获取环境传感器数据,然后无线上传到 ThingSpeak 网站并绘制成图表。我只需要做一些小改动就可以让它与新的 Arduino MKR1000 配合使用。

第一步。
将 DHT 数据线连接到 MKR1000 Pin1(板背面标有 1)。

步骤 2. 从以下位置下载 WiFi101 库和 DHT 库:
https://github.com/arduino-libraries/WiFi101
https://learn.adafruit.com/dht
第 3 步。
转到 Arduino IDE 中的 Board Manager
工具-->看板-->看板管理器
搜索 Arduino SAMD 开发板(32 位 ARM Cortex M0+)
下载 1.6.3 版(我遇到了 1.6.4 版的问题,因为 MKR100 板没有安装)

第 4 步。
创建一个免费的 ThingSpeak.com 帐户,将字段标记为 Graph(湿度和温度),然后将您的 ThingSpeak“写入”API 密钥与您的 WiFi SSID 和 WiFI 密码一起粘贴到提供的草图中。
第五步。
选择合适的Com Port,寻找MKR1000,编译运行代码。
您应该会在串行窗口中看到发送到 ThingSpeak 的更新。
玩得开心!

代码
- MKR1000 到 DHT 到 ThingSpeak Wireless 基于云的环境传感器绘图
MKR1000 到 DHT 到 ThingSpeak 基于无线云的环境传感器图形Arduino
来自 AdaFruit、WiFi101 WebClient 和 ThingSpeak Arduino 模板的草图的组合。/*此草图是 ADAFruits DHT 草图、WiFi101 Webclient 和来自 ThingSpeakModified 的 arduino 示例的组合,由 Stephen Borsay 为 MKR1000,随意使用 */ #include//你不需要这个,因为我们不使用屏蔽芯片#include #include "DHT.h"#define DHTPIN 1 //我们是什么引脚连接到,pin1 是从末端开始的第 5 个引脚// 取消注释您使用的任何 DHT 传感器类型!#define DHTTYPE DHT11 // DHT 11//#define DHTTYPE DHT21 // DHT 21//#define DHTTYPE DHT22 // DHT 22DHT dht (DHTPIN,DHTTYPE);String apiKey ="YourApiKeyHere"; // 来自 ThingSpeakchar 的 api ssid[] ="YourSSIDHERE"; // 您的网络 SSID (name)char pass[] ="YourPasswordHere"; //您的网络密码int keyIndex =0; // 您的网络密钥索引号(仅 WEP 需要)//#define WEBSITE "api.thingspeak.com"int status =WL_IDLE_STATUS;// 如果您不想使用 DNS(并减小草图大小)//使用数字 IP 代替服务器名称://IPAddress server(74,125,232,128); // 谷歌的数字 IP(无 DNS)char server[] ="api.thingspeak.com"; // Google 的名称地址(使用 DNS)// 使用您要连接的服务器的 IP 地址和端口// 初始化以太网客户端库(端口 80 是 HTTP 的默认端口):WiFiClient 客户端;无效设置() { //初始化串口并等待端口打开:Serial.begin(9600); while (!Serial) {; // 等待串口连接。仅本地 USB 端口需要 } // 检查屏蔽是否存在: if (WiFi.status() ==WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // 不要继续:while (true); } // 尝试连接到 Wifi 网络:while (status !=WL_CONNECTED) { Serial.print("Attempting to connect to SSID:"); Serial.println(ssid); //连接到WPA/WPA2网络。如果使用open/WEP网络,请更改此行 status =WiFi.begin(ssid, pass); // 等待 10 秒连接:delay(10000); } Serial.println("连接到wifi");打印无线状态(); }void loop() { // 在测量之间等待几秒钟。延迟(2000); //更喜欢使用浮点数,但包大小或浮点数转换不起作用 //将来会使用字符串函数或浮点数转换函数进行修改 int h =dht.readHumidity(); // 读取摄氏温度(默认) int t =dht.readTemperature(); // 读取温度为华氏度 (isFahrenheit =true) int f =dht.readTemperature(true); // 检查是否有任何读取失败并提前退出(重试)。 if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("从 DHT 传感器读取失败!");返回; } // 计算华氏度的热指数(默认) int hif =dht.computeHeatIndex(f, h); // 计算摄氏温度指数 (isFahreheit =false) 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\n"); Serial.println("\n开始连接服务器..."); // 如果获得连接,则通过串行报告: if (client.connect(server, 80)) { Serial.println("connected to server"); client.print(F("POST")); client.print("/update?key=apiKey&field1=" + (String) h + "&field2=" +(String) t + "&field3=" +(String) f + "&field4=" +(String) hic + " &field5=" +(String) hif ); String tsData ="field1=" //需要给 ThingSpeak 的长度 + (String) h + "&field2=" +(String) t + "&field3=" +(String) f + "&field4=" +(String) hic + "&field5=" +(String) hif; client.print("POST /update HTTP/1.1\n"); client.print("主机:api.thingspeak.com\n"); client.print("连接:关闭\n"); client.print("X-THINGSPEAKAPIKEY:" + apiKey + "\n"); client.print("内容类型:应用程序/x-www-form-urlencoded\n"); client.print("内容长度:"); client.print(tsData.length()); //发送数据字符串legth给ts client.print("\n\n");客户端打印(tsData);客户端停止();延迟(1000); } }void printWifiStatus() { // 打印您连接的网络的 SSID:Serial.print("SSID:"); Serial.println(WiFi.SSID()); // 打印你的 WiFi 盾的 IP 地址:IPAddress ip =WiFi.localIP(); Serial.print("IP 地址:"); Serial.println(ip); // 打印接收到的信号强度:long rssi =WiFi.RSSI(); Serial.print("信号强度(RSSI):");串行打印(RSSI); Serial.println("dBm");}
GitHub 中的代码
相同的代码,但在 GitHub 上用于 MKR1000 https://github.com/sborsay/Arduino_Wireless/blob/master/MRK100_DHt_TS示意图
将 DHT 数据线连接到 MKR100 引脚 1(第 5 个引脚向上)将 5v 和地连接到 DHT 传感器,两者均由 MKR1000 提供

制造工艺
- 专家访谈:Philip Cotton,3Dfilemarket.com 的创始人
- RP 平台和 3Faktur 在 3Dprinting.com 上的特色
- Manhattan Skyline:带有 NXP i.MX 8MM 的紧凑型 ARM COM
- 控创:新的嵌入式计算标准 COM HPC
- 树莓派的 DHT Tiny Breakout
- ThingSpeak 温度监视器与 Raspberry Pi
- 使用 Raspberry Pi、DHT11 传感器和 Thingspeak 构建您的第一个物联网。
- Mkr1000 引脚分配:物联网项目的首选
- Parts.Cat.Com 的优势以及如何注册
- Shop.Cat.Com 指南
- My.Cat.com 入门
- ASTM A551 类 DHT 热处理