首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

探索一种适合 Maximo 的互联资产的架构(2)

探索一种适合 Maximo 的互联资产的架构(2)

加载设备和传感器的库
每种类型的传感器可能都有特定的库。例如,数字传感器通常有一个数据引脚,用于发送需要由一个库解释的编码数据。对于我们的示例应用程序,需要加载以下库:
  • ESP8266 库,用于我们的 NodeMCU 电路板(确认已为我们的电路板加载此库)
  • DHT 传感器库,用于我们的温度传感器
  • PubSubClient 库,用来与 Bluemix 云平台进行通信
要加载这些库,需要对上述每个库完成以下步骤:
  • 在 Arduino 软件中,选择 Sketch > Include Library > Manage          Libraries
  • 在搜索栏,搜索该库。
  • 在搜索结果中,选择要安装的库。
4

将        Watson IoT Platform 代码加载到您的 Arduino 软件中

我们现在已准备好将第一段代码载入 Arduino 软件中。暂时不要执行该程序,因为我们需要根据您的 IoT 设置和 WiFi 设置来修改一些参数。
  • 在 Arduino 软件中,创建一个新草图(sketch)。草图(sketch) 是一个上传到 Arduino 电路板并运行的程序或代码单元。
  • 将以下代码行复制并粘贴到此草图中。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    /** Sensor for Maximo IoT Nov 2016
    *
    * Author: IBM
    * License: Apache License v2
    */
    #include <ESP8266WiFi.h>
    #include <ubSubClient.h> //
    #include <DHT.h>
    #define DHT11_PIN D1
    #define DHTTYPE DHT22
    //-------- Customize these values -----------
    const char* ssid = "YOUR SSID";
    const char* password = "YOUR PASSWORD";
    #define ORG "YOUR ORGID"
    #define DEVICE_TYPE "YOUR DEVICE TYPE"
    #define DEVICE_ID "YOUR DEVICE ID"
    #define TOKEN "YOUR TOKEN"
    //-------- Customize the above values --------
    DHT dht(DHT11_PIN, DHTTYPE);
    char server[] = ORG ".messaging.internetofthings.ibmcloud.com";
    char topic[] = "iot-2/evt/status/fmt/json";
    char authMethod[] = "use-token-auth";
    char token[] = TOKEN;
    char clientId[] = "d:" ORG ":" DEVICE_TYPE ":" DEVICE_ID;
    WiFiClient wifiClient;
      
    PubSubClient client(server, 1883, NULL, wifiClient);
    void setup() {
      
    Serial.begin(115200);
    Serial.println();
    Serial.print("Connecting to "); Serial.print(ssid);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
       delay(1000);
       Serial.print(".");
    }
    Serial.println("");
    Serial.print("WiFi connected, IP address: "); Serial.println(WiFi.localIP());
    }
    void loop() {     
    if (!!!client.connected()) {
      Serial.print("Reconnecting client to ");
      Serial.println(server);
      while (!!!client.connect(clientId, authMethod, token)) {
        Serial.print(".");
        Serial.println();
      }
    }
    // in the string below, where you see quotation marks followed by a backslash, this means the
    quotation marks should be included in the final payload.
      
    String payload = "{\"d\":{\"SensorXX\":\"Usage\""; //Name this anything you like. Just
    make sure to keep the quotation marks in place.
    payload += ",\"Temperature\":";
    payload += dht.readTemperature();
    payload += ",\"Humidity\":";
    payload += dht.readHumidity();
    payload += "}}";
    Serial.print("Sending payload: ");
    Serial.println(payload);
      
    if (client.publish(topic, (char*) payload.c_str())) {
    Serial.println("ublish ok");
    } else {
    Serial.println("ublish failed");
    }
    delay(20000);
    }

  • 修改 12 - 13 行中的值来配置您的 WiFi 网络。对于 SSID 和密码,请指定您的无线网络的凭证。在本教程后面,我们将在 14 - 17 行中配置 Watson            IoT Platform 值(ORG、device_type、device_ID 和 token)。
此草图仅发送来自 DHT22 传感器的温度和湿度值。可以使用此代码作为示例,了解如何扩展此草图来添加更多传感器,比如光线传感器或流量传感器。
5

将 DHT22 传感器连接到 NodeMCU 电路板

如果想知道此引脚分配的细节,可以查阅此 Arduino GitHub 存储库中的这部分帮助信息:


在普通的 Arduino 草图中,分配的引脚布局始终使用特定编号来引用。在 NodeMCU 上,也可以使用 D1 名称(表示 Digital 1)进行更明确地指定。nodeMCU        的普通草图中的引脚 1 不同于 D1。(否则就太容易了!)所以,请始终使用 Dx 引脚分配命名约定,这样就不会出错。不是所有兼容 Arduino 的电路板都会使用此方法,但该方法适用于        NodeMCU 系列。如果使用具有不同芯片的其他任何类型的电路板,可能需要研究该电路板的文档,以便了解它们的引脚布局,以及该布局与草图中的引脚布局的关系。
  • 在草图的第 10 行上,提供了 DHT22 传感器连接到的数据引脚的定义。选择 D1 或 D2(不是所有 D 引脚均可用,因为一些引脚有共享的功能)。
  • DHT22 传感器有 3 个引脚。因为不同的传感器有不同的引脚布局,所以在将传感器连接到电路板时需要小心。如果将连接混淆,可能损坏传感器或电路板,或者将二者都损坏(最多损失 6          美元)。将 PLUS 引脚连接到 NodeMCU 电路板上的 3.3 V 引脚。然后,将 MINUS 引脚连接到 NodeMCU 电路板上的 GND。
  • 如果您还购买了一个电路试验板或母板,请确保 NodeMCU 电路板的放置方向是正确的,将母板上的 WiFi 符号与 NodeMCU 电路板上的 WiFi            对齐。然后,就可以使用与前一步中相同的引脚,但这一次是在母板上。
在本教程的后面,我们将使用 microUSB 数据线给电路板供电。如果选择使用一个单独的电源,可以将任何 5 V 电源连接到 Vin 引脚,或者将任何 3.3 V 电源连接到        microUSB 端口附近的 3.3 V 输入。如果使用母板或电路试验板,它可能提供 12 V 电源。
返回列表