因為想用聯發科的MCS來Debug
發現MCS其實做的還不錯,可以玩的跟ThingSpeak有得拚
首先呢! 需要註冊一個帳號,如果有了,就直接輸入吧!
然後選prototype及Create
想先試一下從遠端控制Linkit7697
選擇Controller
再選擇Create test device
然後就得到了Deviceid、Devicekey與channel 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(115200);
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! MTK你不要這麼專業好不好!?
最後我是選others,因為還想丟其他資料試試
抄下Deviceid、Devicekey與channel 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 temp ("Devicechannel ");
void setup()
{
Serial.begin(115200);
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");
}
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最快能到多快丟一串資料
if (mcs.connected()) { Serial.println("MCS Reconnect"); }
}
temp.set(j);
Serial.print("input value : ");
Serial.println(j);
j++;
if(j==100)
j=0;
然後再修改一下Code如下,看Library最快能到多快丟一串資料
#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的部份也有一些問題要修正(再多串聯幾個Linkit7697試試!)
社群接下來想導入Video Doorbell !
Linkit7697應該是每半秒丟一次到MCS上
而MCS的前端數據也好端端的顯示出來
這代表Firmware要修正一些,MQTT不要丟這麼快,需要限制時間
Back_end的部份也有一些問題要修正(再多串聯幾個Linkit7697試試!)
社群接下來想導入Video Doorbell !
What!? 你也想玩!? 那快來一起呀! 社群內神人愈來愈多了!
註:發現有舊版的Linkit7697如果沒有更新Firmware,在連MCS的時候會先出現連線成功,然後再一直無限的Reconnect,這個時候代表要更新Firmware --> 參考這個
註:發現有舊版的Linkit7697如果沒有更新Firmware,在連MCS的時候會先出現連線成功,然後再一直無限的Reconnect,這個時候代表要更新Firmware --> 參考這個
加入我們吧!