查看: 850|回复: 0

[讨论交流] IoT套件测评:【二】温湿度传感器模块测试

[复制链接]
本帖最后由 DFSyBK4KmYN 于 2019-5-13 00:56 编辑

温湿度传感器测试:
按照示例教程进行配置,温湿度传感器按照教程配置也很顺利,产品创建步骤可以用之前led模块测评是创建的产品上添加属性来代替。
这边做了一点小偷懒,把灯光操作和温湿度传感器配置在同一个产品和app中进行控制。另外代码中的传感器上报是半分钟一次,我将其改为了5s一次。
微信图片_20190513002126.png
本来希望能将两段代码合并一下,做个根据温湿度数据进行报警的小示例,但是在连接温湿度传感器之后,灯的控制似乎也出现了问题;串口没法进行输出的情况下也不是很好进行调试,因此暂时还未成功。
(在没有上云的情况下本地调试,灯也没能亮起。由于开发经验较少,暂时还没能搞懂是哪里出了问题….)

代码如下:
[mw_shl_code=cpp,true]#include <WiFi.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
#include "DFRobot_Aliyun.h"
#include "DFRobot_DHT11.h"

#define DHT11_PIN  D2
#define BEDROOD_LIGHT  D7

/*配置WIFI名和密码*/
const char * WIFI_SSID     = "11111111";
const char * WIFI_PASSWORD = "11111111";

/*配置设备证书信息*/
String ProductKey = "a168bbrZwdr";
String ClientId = "12345";/*自定义ID*/
String DeviceName = "nnEZ5evyhV39V6TnnfxF";
String DeviceSecret = "sIlZ7d0fSqK3XrLDdpF3ffgC44Wvlu39";

/*配置域名和端口号*/
String ALIYUN_SERVER = "iot-as-mqtt.cn-shanghai.aliyuncs.com";
uint16_t PORT = 1883;

/*需要操作的产品标识符(温度和湿度两个标识符)*/
String TempIdentifier = "IndoorTemperature";
String HumiIdentifier = "Humidity";
String LightIdentifier = "light_stat";

/*需要上报和订阅的两个TOPIC*/
const char * subTopic = "/sys/a168bbrZwdr/nnEZ5evyhV39V6TnnfxF/thing/service/property/set";//****set
const char * pubTopic = "/sys/a168bbrZwdr/nnEZ5evyhV39V6TnnfxF/thing/event/property/post";//******post

DFRobot_Aliyun myAliyun;
WiFiClient espClient;
PubSubClient client(espClient);
DFRobot_DHT11 DHT;

static void openLight(){
  digitalWrite(BEDROOD_LIGHT, HIGH);
}

static void closeLight(){
  digitalWrite(BEDROOD_LIGHT, LOW);
}

void connectWiFi(){
  Serial.print("Connecting to ");
  Serial.println(WIFI_SSID);
  WiFi.begin(WIFI_SSID,WIFI_PASSWORD);
  while(WiFi.status() != WL_CONNECTED){
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.println("WiFi connected");
  Serial.print("IP Adderss: ");
  Serial.println(WiFi.localIP());
}

void callback(char * topic, byte * payload, unsigned int len){
  Serial.print("Recevice [");
  Serial.print(topic);
  Serial.print("] ");
  for (int i = 0; i < len; i++){
    Serial.print((char)payload);
  }
  Serial.println();
}

void ConnectAliyun(){
  while(!client.connected()){
    Serial.print("Attempting MQTT connection...");
    /*根据自动计算的用户名和密码连接到Alinyun的设备,不需要更改*/
    if(client.connect(myAliyun.client_id,myAliyun.username,myAliyun.password)){
      Serial.println("connected");
      client.subscribe(subTopic);
    }else{
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      delay(5000);
    }
  }
}

void setup(){
  Serial.begin(115200);
  
  /*连接WIFI*/
  connectWiFi();
  
  /*初始化Alinyun的配置,可自动计算用户名和密码*/
  myAliyun.init(ALIYUN_SERVER,ProductKey,ClientId,DeviceName,DeviceSecret);
  
  client.setServer(myAliyun.mqtt_server,PORT);
  
  /*设置回调函数,当收到订阅信息时会执行回调函数*/
  client.setCallback(callback);
  
  /*连接到Aliyun*/
  ConnectAliyun();

    /*开机先关灯*/
  closeLight();
  
  /*上报关灯信息*/
  client.publish(pubTopic,("{\"id\":"+ClientId+",\"params\":{\""+LightIdentifier+"\":0},\"method\":\"thing.event.property.post\"}").c_str());
}

uint8_t tempTime = 0;
void loop(){
  if(!client.connected()){
    ConnectAliyun();
  }
  if(tempTime > 3){
    tempTime = 0;
    DHT.read(DHT11_PIN);
    Serial.print("DHT.temperature=");
    Serial.println(DHT.temperature);
    Serial.print("DHT.humidity");
    Serial.println(DHT.humidity);
    client.publish(pubTopic,("{\"id\":"+ClientId+",\"params\":{\""+TempIdentifier+"\":"+DHT.temperature+",\""+HumiIdentifier+"\":"+DHT.humidity+"},\"method\":\"thing.event.property.post\"}").c_str());
  }else{
    //digitalWrite(LED_BUILTIN, HIGH);
    if(DHT.humidity>50 || DHT.temperature>30){
      int i=0;
      for(i=0;i<2;++i){
      openLight();   
      delay(400);   
      closeLight();
      delay(400);            
      }   
    }
     else{
     openLight();
    delay(1000);
    //digitalWrite(LED_BUILTIN, LOW);
     closeLight();
    delay(1000);
  }   
  tempTime++;
  client.loop();
  }
}
[/mw_shl_code]
套件来源DFRobot创客商城
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2021 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail