风筝
发表于: 2019-1-29 09:45:34 | 显示全部楼层

了解如何使用ThingSpeak开发物联网应用程序!在本篇文章中,我们制作了一个温度传感器。


在本篇文章中,我们使用ESP8266模块将LM35温度传感器的数据发送到ThingSpeak。 ThingSpeak是一个IOT平台,它允许我们将数据存储在云中并开发物联网(IOT)应用程序。

我们将在ThingSpeak上创建一个频道,在将ESP8266连接到Wi-Fi网络后,我们会使用API密钥将数据发送到ThingSpeak IP地址。


所需的组件

●    Arduino开发板

●    ESP-01适配器

●    ESP-01模块

●    LM35温度传感器

●    面包板


电路原理图

为了将ESP8266与Arduino连接,我们使用了ESP-01适配器,使连接更加容易。使用此适配器,我们不需要分压器电路或任何外部电源,因为此适配器具有内置电压调节器。


将ESP-01适配器的VCC连接到Arduino的5V,将适配器的GND连接到Arduino的GND。然后将适配器的TX连接到Arduino的引脚2,将适配器的RX连接到Arduino的引脚3。

Circuit Diagram.png


之后,将LM35温度传感器与Arduino连接。LM35温度传感器与Arduino的连接如下:

●    LM35的左侧引脚连接到Arduino的5V

●    LM35的中间引脚连接到Arduino的A0

●    LM35的右引脚连接到Arduino的GND


在ThingSpeak上创建频道

首先,访问ThingSpeak.com,然后点击“Get Started for Free”。

Get Started for Free.png

然后会出现一个注册表格。输入所需信息并注册ThingSpeak。

ThingSpeak.png

之后,单击“New Channel”创建一个频道来存储信息。

New Channel.png

然后输入有关新频道的信息,如下所示,并留空其他信息。

the other information.png

之后,转到API keys部分并复制您的写API密钥。您需要在下面的代码中输入。

API key.png


代码说明

首先,您需要包含软件串口库。软件串口将允许其他Arduino引脚上的串行通信。 Arduino的默认串行通信引脚为0和1。

  1. #include <SoftwareSerial.h>
  2. SoftwareSerial esp(2,3);
复制代码

然后我们需要定义ThingSpeak IP地址。你不需要改变它,因为它对每个人都是一样的。然后我们将之前创建的通道的API密钥存储在字符串中。在下面的代码中,使用之前保存的API密钥更改“W7Q4FCJXJSX0BN5T”。这将是我们要发送数据的渠道API密钥。

  1. #define IP "184.106.153.149"// thingspeak.com ip
  2. String Api_key = "GET /update?key=W7Q4FCJXJSX0BN5T"; //change it with your api key like "GET /update?key=Your Api Key"
复制代码

setup()函数中,我们将模块设置为站模式并将其与Wi-Fi地址连接。在以下代码中输入您的Wi-Fi名称和密码。如果ESP8266与Wi-Fi网络的连接成功,则在串行监视器将显示“Connected”。

  1. send_command("AT+RST\r\n", 2000, DEBUG); //reset module
  2. send_command("AT+CWMODE=1\r\n", 1000, DEBUG); //set station mode
  3. send_command("AT+CWJAP="Your wifi address","Your password"\r\n", 2000, DEBUG); //connect wifi network
  4. while(!esp.find("OK")) { //wait for connection
  5. Serial.println("Connected");}
复制代码

update()函数中,我们将命令发送到ESP8266,以便在我们之前存储的IP地址和端口80处发送数据。然后给出API密钥,以便将数据存储在该通道中。现在,ThingSpeak将根据时间为数据制作图表。


如果它无法将数据发送到ThingSpeak,则“AT + CIPClOSE”将显示在串行监视器上,这意味着它将关闭连接并再次重试。如果您无法向ThingSpeak发送数据,请重新检查您的API密钥,Wi-Fi名称和密码。

  1.   String command = "AT+CIPSTART="TCP","";
  2.   command += IP;
  3.   command += "",80";
  4.   Serial.println(command);
  5.   esp.println(command);
  6.   delay(2000);
  7.   if(esp.find("Error")){
  8.     return;
  9.   }
  10.   command = Api_key ;
  11.   command += "&field1=";   
  12.   command += temp;
  13.   command += "\r\n";
  14.   Serial.print("AT+CIPSEND=");
  15.   esp.print("AT+CIPSEND=");
  16.   Serial.println(command.length());
  17.   esp.println(command.length());
  18.   if(esp.find(">")){
  19.     Serial.print(command);
  20.     esp.print(command);
  21.   }
复制代码

如果它无法将数据发送到ThingSpeak,则在串行监视器将显示“AT + CIPClOSE”,这意味着它将关闭连接并再次重试。如果您无法向ThingSpeak发送数据,请重新检查您的API密钥、Wi-Fi名称和密码。

  1. else{
  2.    
  3.    Serial.println("AT+CIPCLOSE");
  4.    esp.println("AT+CIPCLOSE");
  5.     //Resend...
  6.     error=1;
  7.   }
  8.   }
复制代码

本文使用的完整代码如下所示: main.rar (963 Bytes, 下载次数: 74)

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 714 | 回复: 1501



手机版|

GMT+8, 2024-12-22 20:59 , Processed in 0.038201 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表