
將各節(jié)點用線連接起來,形成如下所示的流:
圖 20 最終的工作流


在所有節(jié)點都修改之后,點擊右上角的 Deploy 按鈕來部署此工作流。當屏幕中間彈出成功部署(Successfully deployed)時,說明此流已經(jīng)部署成功。
你也可以通過導入功能導入以上工作流。先找到菜單->導入->剪切板。
圖 21 Node-RED 的導入功能


然后把以下代碼粘貼到剪切板上,點擊 Ok 按鈕。當鼠標在畫布上點擊時,工作流即會落到畫布上,然后部署即可。
[{"id":"1b156a6f.f4bd96","type":"ibmiot","z":"2282255c.190b3a","name":"my
api key"},{"id":"1007c76.d968b39","type":"ibmiot
in","z":"2282255c.190b3a","authentication":"boundService","apiKey":"1b156a6f.f4bd96","inputType":"evt","deviceId":"","applicationId":"","deviceType":"+","eventType":"+","commandType":"","format":"json","name":"IBM
IoT","service":"registered","allDevices":true,"allApplications":"","allDeviceTypes":true,"allEvents":true,"allCommands":"","allFormats":true,"x":212,"y":139,"wires":[["ba7c7e78.984a9"]]},{"id":"ba7c7e78.984a9","type":"json","z":"2282255c.190b3a","name":"","x":334,"y":139.5,"wires":[["13ed7f07.efa891"]]},{"id":"13ed7f07.efa891","type":"function","z":"2282255c.190b3a","name":"Message","func":"var
message = JSON.parse(msg.payload).d
;\nmsg.payload=message.content;\nreturn
msg;","outputs":"1","noerr":0,"x":466.5,"y":140,"wires":[["1b7a992d.274b47","27c244f9.52993c"]]},{"id":"1b7a992d.274b47","type":"cloudant
out","z":"2282255c.190b3a","name":"","cloudant":"","database":"demodb","service":"iot-push-cloudantNoSQLDB","payonly":true,"operation":"insert","x":613.5,"y":165.5,"wires":[]},{"id":"27c244f9.52993c","type":"ibmpush","z":"2282255c.190b3a","name":"","ApplicationID":"","identifiers":"","notification":"ios","mode":"PRODUCTION","x":612,"y":115,"wires":[]}]
第七步:發(fā)送 MQTT 消息
我們用 Java 實現(xiàn)一段程序,以發(fā)送 MQTT 消息給 IoT 平臺。其中,我們引用了如下包:
com.ibm.iotf.client.2016.4.21.jar, gson-2.2.4.jar,httpclient-4.3.6.jar, httpcore-4.3.3.jar,
org.eclipse.paho.client.mqttv3-1.0.3-20150818.040635-202.jar
核心代碼及解析如下:
public class DeviceMessage {
DeviceClient deviceClient = null;
public DeviceMessage() {
//設置連接屬性,用我們已經(jīng)創(chuàng)建好的設備的憑證,連接到我們的 IoT 服務。
Properties options = new Properties();
options.setProperty("org", "6bnaci");
options.setProperty("type", "Type1");
options.setProperty("id", "Device1");
options.setProperty("auth-method", "token");
options.setProperty("auth-token", "12345678");
try {
deviceClient = new DeviceClient(options);
} catch (Exception e) {
e.printStackTrace();
}
try {
//連接到 IoT 服務,參數(shù)設成 false,如果連接失敗,不自動重新連接;如果設置成 true,那么程序會一直重試直到連接成功。
deviceClient.connect(false);
} catch (MqttException e) {
e.printStackTrace();
System.out.println("network connection error !");
}
}
public void sendMessage(String[] msg) {
//創(chuàng)建一個對象 event
JsonObject event = new JsonObject();
//如果此類被執(zhí)行時有一個參數(shù)傳入,我們即把它作為屬性賦給 event,否則即賦值“This is alt="物聯(lián)網(wǎng)" width="550" height="174" />
