2015-10-06 64 views
0

我是網絡開發新手,我想做網頁遠程控制我的樹莓派。在樹莓上我連接了幾個傳感器,並且可以通過在192.168.1.100:9997上發送請求來獲取數據。有用Python編寫的代碼。例如,如果我嘗試使用Putty獲取數據,那麼一切正常。現在我想通過我的網頁建立TCP連接來讀取數據。我搜索了幾天,發現這可以通過創建Websockets來實現。有很多工具,我發現最多的是Node.js.據我所知Node.js可以創建Websockets,它也可以提供網頁(而不是Appache)?從Raspberry PI通過Websocket獲取數據到Web頁面?

例如,我正在運行此Websocket服務器,僅用於從「server.js」中的RPi讀取數據。現在我不知道如何從「server.js」獲取這些數據到我的.html文件中?我沒有找到任何非常基本的例子。我可以通過數據庫獲取數據,但這不是我想要的。我也想從我的網頁發送請求到Rpi,然後閱讀答案。

我希望你能理解我的問題。如果你能指出我一些很好的例子,或者告訴我該怎麼做,我會很高興。如果可能的話,我想用Javasrcipt做到這一點。

預先感謝您。

編輯:我現在用Node.js工作的例子,但我不知道如何實現這個到我的網頁,用戶可以觸發這部分代碼從.html,並顯示應答數據到.html網站頁。我希望這有幫助。

var client = new net.Socket(); 
client.connect(9997, '192.168.1.100', function() { 
    console.log('Connected'); 
    //sending request 
    //THIS SHOULD BE TRIGGERED FROM HTML onclick for example 
    client.write('$DATA'); 
}); 

client.on('data', function(data) { 
    console.log('Received: ' + data); 
    //THIS DATA SHOULD BE SHOWN IN HTML for example 
    //client.destroy(); // kill client after server's response 
}); 

client.on('close', function() { 
    console.log('Connection closed'); 
}); 
+0

您可以在Python代碼之上構建一個Web API。 –

+0

嗯...我想可能會有一些混淆 - Websockets是一個特定的Web協議,如HTTP或SMTP或IMAP ...您的'192.168.1.100:9997'服務是否支持Websockets協議?它使用HTTP嗎?它是否在原始TCP/IP連接上使用自定義協議? ...需要更多數據才能幫助你。 – Myst

+0

是的,可能有很多新的終端......我的服務是TCP服務器,他接收和發送ASCII數據。例如我創建TCP客戶端,在192.168.1.100:9997上連接,並根據請求$ DATA獲得響應$ TEMP,123,HUMIDITY,234等。我只需要一些mechanisem,我將能夠與我的這項服務進行通信網頁。到目前爲止,我正在使用Apache服務爲main.php頁面我已經得到MySql數據庫實施。我找到了使用Node.js作爲異步TCP clinets的示例。我想從.html發送請求中的onClick事件並在.html中顯示收到的數據。希望你能理解。 – anze87

回答

0

對於獲取數據,一個Pi和到Web頁面,看看一些實例中這樣使用WAMP和Crossbar.io(對於WAMP開源路由器(一個開放運行於網頁套接字的頂部協議) ) - http://crossbar.io/iotcookbook/Raspberry-Pi/

完全披露:我正在研究這些項目 - 但他們是開源的,非常適合OP想要做的事情。