1997浏览
查看: 1997|回复: 0

[用户分享] TinkerNode NB-IoT使用WIFI物联阿里云平台

[复制链接]
TinkerNode NB-IoT使用WIFI物联阿里云平台

阿里云平台配置参考https://mc.dfrobot.com.cn/thread-304131-1-1.html
TinkerNode NB-IoT使用WIFI物联阿里云平台图1

代码:
[mw_shl_code=java,false]/*!
* @file SmartWatering.ino
*
* @brief Connect the soil sensor.
* @brief Publish soil information to the platform.
* @brief Can handle other things based on information
*
* @copyright   Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
* @licence     The MIT License (MIT)
* @author      [Wuxiao](xiao.wu@dfrobot.com)
* @version  V1.0
* @date  2019-02-20
* @get from https://www.dfrobot.com
*/
#include <WiFi.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
#include "DFRobot_Iot.h"

#define SOIL_SENSOR_PIN  A0

/*Set WIFI name and password*/
const char * WIFI_SSID     = "**********";
const char * WIFI_PASSWORD = "**********";

/*Configure device certificate information*/
String ProductKey = "**********";
String ClientId = "12345";
String DeviceName = "**********";
String DeviceSecret = "**********";

/*Configure the domain name and port number*/
String ALIYUN_SERVER = "iot-as-mqtt.cn-shanghai.aliyuncs.com";
uint16_t PORT = 1883;

/*Product identifier that needs to be operated*/
String Identifier = "**********";

/*TOPIC that need to be published and subscribed*/
const char * pubTopic = "/sys/a1zZW8epm4h/ahVRqIyGJPXi2s5wPbqO/thing/event/property/post";//******post

DFRobot_Iot myIot;
WiFiClient espClient;
PubSubClient client(espClient);

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 ConnectCloud(){
  while(!client.connected()){
    Serial.print("Attempting MQTT connection...");
    /*A device connected to the cloud platform based on an automatically calculated username and password*/
    if(client.connect(myIot._clientId,myIot._username,myIot._password)){
      Serial.println("connected");
    }else{
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      delay(5000);
    }
  }
}
void setup(){
  Serial.begin(115200);
  
  /*Connect to WIFI*/
  connectWiFi();
  
  /*Initialize the configuration of Aliyun*/
  myIot.init(ALIYUN_SERVER,ProductKey,ClientId,DeviceName,DeviceSecret);
  
  client.setServer(myIot._mqttServer,PORT);
  
  /*Set the callback function to execute the callback function when receiving the subscription information*/
  client.setCallback(callback);
  
  /*Connect to the cloud platform*/
  ConnectCloud();
}

uint8_t tempTime = 0;
void loop(){
  if(!client.connected()){
    ConnectCloud();
  }
  /*Publish soil information twice a minute*/
  if(tempTime > 10){
    tempTime = 0;
    client.publish(pubTopic,("{\"id\":"+ClientId+",\"params\":{\""+Identifier+"\":"+random(9)+"},\"method\":\"thing.event.property.post\"}").c_str());
  }else{
    tempTime++;
    delay(300);
  }
  client.loop();
}[/mw_shl_code]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

硬件清单

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

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

mail