No Code AI(肉寇)AI自動化兩日精通|實體6小時+線上6小時
|

【Tutorial】使用Linkit 7697上傳數據至MCS

   

作者:Ches拔(Sco Lin

因為想用聯發科的MCS來Debug,發現MCS(MediaTek Cloud Sandbox)其實做的還不錯,可以玩的跟ThingSpeak有得拚,這篇是從MTK官網這篇專案文章延伸而來。

首先呢!需要註冊一個帳號,如果你已經有了,那就直接輸入吧!

 

然後選prototypeCreate:

 

想先試一下從遠端控制Linkit7697:


選擇Controller:


再選擇Create test device:


就會得到了DeviceidDevicekeychannel ID:

完整的Code

#include <LWiFi.h>

#include “MCS.h”

char _lwifi_ssid[] =”家用AP的帳號”;

char _lwifi_pass[] =”家用AP的密碼”;

MCSDevice mcs(“Deviceid”, “Devicekey”);

MCSControllerOnOff MySwitch(“channel id”);

void setup()

{

Serial.begin(9600);

mcs.addChannel(MySwitch);

Serial.println(“Wi-Fi Start Connecting…”);

while (WiFi.begin(_lwifi_ssid, _lwifi_pass) != WL_CONNECTED) { delay(1000); }

Serial.println(“Wi-Fi Connect Success”);

while(!mcs.connected()) { mcs.connect(); }

Serial.println(“MCS Connect Success”);

Serial.begin(9600);

pinMode(LED_BUILTIN, OUTPUT);

}

void loop()

{

while (!mcs.connected()) {

mcs.connect();

if (mcs.connected()) { Serial.println(“MCS Reconnect”); }

}

mcs.process(100);

if (MySwitch.updated()) {

Serial.print(“Channel Update :”);

Serial.println(MySwitch.value());

if (MySwitch.value()) {

digitalWrite(LED_BUILTIN, HIGH);

} else {

digitalWrite(LED_BUILTIN, LOW);

}

}

delay(1000);

}

當Switch變化的時候,Linkit7697會收到一個”1”:

這樣就變成”0”了:

相當的容易。這可以做什麼呢?可以應用在 Smart Home Security、Smart Plug或Smart Bulb Light!想到的遠端控制系列全都可以做!接下來就是主題了,這裡做Serial輸入整數上傳至MCS:

選擇Add:

使用Display:

在Data Type的部份,MTK包山包海,還能送Video Stream,這樣讓我想做Video Doolbell!

最後我是選others,因為還想丟其他資料試試:

抄下DeviceidDevicekeychannel ID:

太有趣啦~就這麼成功了!但因為沒有溫度感測器,所以我們就手動輸入吧!

完整的Code

#include <LWiFi.h>

#include “MCS.h”

#include “DHT.h”

int t;

int h;

char _lwifi_ssid[] = “家用AP的帳號”;

char _lwifi_pass[] = “家用AP的密碼”;

MCSDevice mcs(“Deviceid”, “Devicekey”);

MCSDisplayInteger Devicechannel(“Devicechannel “);

void setup()

{

Serial.begin(9600);

mcs.addChannel(temp);

Serial.println(“Wi-Fi Start Connecting…”);

while (WiFi.begin(_lwifi_ssid, _lwifi_pass) != WL_CONNECTED) { delay(1000); }

Serial.println(“Wi-Fi Connect Success”);

while(!mcs.connected()) { mcs.connect(); }

Serial.println(“MCS Connect Success”);

Serial.begin(9600);

}

void loop()

{

int switchStatus = digitalRead(2);

String s = “”;

 

while (Serial.available()) {

char c = (char) Serial.read();

if(c!=’\n’)

{

s += c;

}

delay(1);

}

 

while (!mcs.connected()) {

mcs.connect();

if (mcs.connected()) { Serial.println(“MCS Reconnect”); }

}

mcs.process(100);

temp.set(s.toInt());

Serial.print(“input value : “);

Serial.println(s.toInt());

delay(1000);

}

沒有溫度感測器也能玩MCS~ 再修改一下Code(如下),看Library最快能到多快的時間就丟一串資料:

完整Code

#include <LWiFi.h>

#include “MCS.h”

#include “DHT.h”

int t;

int h;

char _lwifi_ssid[] = “家用AP的帳號”;

char _lwifi_pass[] = “家用AP的密碼”;

MCSDevice mcs(“Deviceid”, “Devicekey”);

MCSDisplayInteger Devicechannel(“Devicechannel “);

void setup()

{

Serial.begin(9600);

mcs.addChannel(temp);

Serial.println(“Wi-Fi Start Connecting…”);

while (WiFi.begin(_lwifi_ssid, _lwifi_pass) != WL_CONNECTED) { delay(1000); }

Serial.println(“Wi-Fi Connect Success”);

while(!mcs.connected()) { mcs.connect(); }

Serial.println(“MCS Connect Success”);

Serial.begin(9600);

}

void loop()

{

  while (!mcs.connected()) {

mcs.connect(); if (mcs.connected()) { Serial.println(“MCS Reconnect”); } }

temp.set(j);

Serial.print(“input value : “); Serial.println(j);

j++;

if(j==100)

j=0;

Debug有一點FU了!Linkit7697應該是每半秒丟一次到MCS上,而MCS的前端數據也好端端的顯示出來。

這代表Firmware要修正一些,MQTT不要丟這麼快,需要限制時間,Back end的部份也有一些問題要修正(再多串聯幾個Linkit 7697試試!)社群接下來想導入Video Doorbell !你也想玩嗎?那快來一起加入社群!社群內神人愈來愈多了!

(本文同步發表於作者部落格 — 物聯網學習筆記文章連結;責任編輯:葉于甄。)

 

Ches拔(Sco Lin)

訂閱MakerPRO知識充電報

與40000位開發者一同掌握科技創新的技術資訊!

Author: Ches拔(Sco Lin)

兩個男孩的爸爸、下班變身孩子王、衝浪閱讀與coding、PM擔當RD魂。

Share This Post On
468 ad

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *