2014-08-28 34 views
3

一個伴侶和我正在做一個項目,目前託管一個覆盆子pi的網頁,我想通過MQTT發送一條消息給讀取傳感器的arduino,然後發送這些值返回到pi以顯示在網頁上。在Raspberry Pi,Arduino和JavaScript之間使用MQTT

我希望能夠在pi上使用蚊子作爲經紀人,並將arduino和網頁視爲客戶。

我只是遇到了很多麻煩,如何將它們放在一起。

很多我見過使用的網絡套接字和Node.js和受MQTT.io而我只是很困惑的例子..

可能有人請幫我拼湊它一起,並解釋一切如何適應和它能做什麼?

提前致謝!

回答

4

Websockets允許Web瀏覽器打開雙向通信管道到服務器。

對於websocket的工作,你需要一個啓用websocket的mqtt經紀人。目前你必須單獨安裝,有些例子是here。 Mosquitto將在下一個版本中啓用websocket,1.4,如果您願意,可以使用compile

一個可以做什麼的例子,以及我在做什麼atm與mqtt和websockets是;

  1. 發佈temperature數據給arqino的mqtt代理。
  2. 訂閱arduino正在發佈的主題並使用python scripts將數據填充到mysql數據庫中。
  3. 有一個實時網站訂閱該主題並將current temperature顯示爲折線圖。
+0

謝謝馬特!所以,所有的Web套接字都提供了一種瀏覽器與MQTT代理進行通信的方式?我曾想過用mySQL來做這件事,但是如果可能的話,我真的想嘗試純粹用MQTT來做。我可以使用node.js來替換網絡套接字嗎?這是類似的事情嗎? – 2014-08-28 08:31:48

+0

相當多,它充當客戶,可以訂閱/發佈到主題。我只是使用mysql來獲取歷史數據。 Node.js,不太瞭解那個抱歉,但我看過這個例子,雖然這可能有助於http://blog.hekkers.net/2012/10/13/realtime-data-with-mqtt-node-js- mqtt-js-and-socket-io/ – 2014-08-28 11:44:22

4

我們在過去使用MQTT和websockets編寫了應用程序教程。幻燈片(+代碼)可在Slideshare上找到。

如果您有興趣瞭解MQTT如何通過websockets進行詳細工作,this blog post可能會對您有所幫助。此外,還可以在this blog post中找到完整的示例websockets/MQTT應用程序教程。

+0

hivemq運行在樹莓派上嗎? – 2014-08-28 11:28:45

+0

嗨!感謝您的回覆!我非常感激!我們真的想用蚊子作爲經紀人,儘管HiveMQ真的很酷!我想現在蚊子有websockets支持,我會這樣做!這些教程真的幫助我理解:-) – 2014-08-28 11:33:47

+0

@Matt。 HiveMQ在Raspberry Pi上完美運行。但是,它專爲多核服務器設計,但對於少於1000個連接的簡單安裝,Raspberry Pis的效果非常好。確保在安裝HiveMQ之前安裝最新的JDK以獲得最佳體驗。 – 2014-08-28 11:46:03