https://www.bilibili.com/video/av53059083
但是微博控制的方便性和安全性是不高的,同時微信卻有極高的安全性,對于每天使用微信的人來說,操作顯然是最方便的。
盡管他燒寫速度很慢..不過真的好便宜233333
整個項目的開發(fā),主要是軟件層面,因為控制實現(xiàn)以后,只要把點亮LED的代碼改成別的,就可以控制另外的設(shè)備了,就一個簡單的遠程可控制其實需要的知識并不少:
Linux,Arduino,PHP,微信公眾平臺開發(fā),MySQL
換句話說,只要修改相應(yīng)的代碼,其他有關(guān)物聯(lián)網(wǎng)遠程控制或數(shù)據(jù)獲取的參賽項目都可以接入本項目,使得操作更加方便 控制Arduino
首先服務(wù)器上有一個數(shù)據(jù)庫,數(shù)據(jù)庫里面有幾個記錄,每個開關(guān)都有一個對應(yīng)的值,不同用戶的話有不同的openID以此用來區(qū)分。
在微信中,我們對一個公眾平臺發(fā)送類似于“開燈”,“打開熱水器”之類的命令,以“開燈”為例公眾平臺的后臺服務(wù)器會對這個命令進行判斷,如果符合預(yù)設(shè)的命令,就會進入數(shù)據(jù)庫,找到這個LED對應(yīng)的記錄,把這個記錄對應(yīng)的值改為“1”(值其實是隨意的)。
這里的命令發(fā)送方式包括文字消息,語音消息。
與此同時,Arduino通過W5100擴展板,不斷向一個服務(wù)器上的頁面發(fā)送請求,請求中會包含一些諸如請求的開關(guān)ID,密碼等參數(shù),服務(wù)器核實后,就會進入數(shù)據(jù)庫,找到對應(yīng)的開關(guān)的記錄,把對應(yīng)的值“1”反饋給Arduino,Arduino收到反饋后,就會進行判斷,如果是“1”,就把對應(yīng)引腳上的LED點亮。如果是”0“,就把它熄滅。 Arduino的這個過程是不斷的進行的,但由于網(wǎng)絡(luò)和性能問題,通常會有幾秒鐘的延遲。 由于這是一個物聯(lián)網(wǎng)平臺,所以只要是可以發(fā)起HTTP請求的,都可以接入。
一個比較合理的方案是,樹莓派或PCduino做連接互聯(lián)網(wǎng)的主要控制器,通過XBee,433Mhz等無線方式來控制小型的Arduino節(jié)點,再由Arduino來控制物聯(lián)網(wǎng)終端 一般來說服務(wù)器端與微信端都有較強的可靠性,不必過多擔心,而本系統(tǒng)的控制端僅需要一個穩(wěn)定的的WiFi熱點以及5v電源就可以與服務(wù)器通信,條件少,效果好,同時單片機中的程序中還加入了在無法連接網(wǎng)絡(luò)時的處理對策,能夠保證控制端在無網(wǎng)絡(luò)連接時對外圍控制設(shè)備進行保護性處理,所以系統(tǒng)在正常使用時具有很高的可靠性。
|