浙大 CCNT 實驗室飲水機自動發微博的實現原理是什麼?如果是你,你會怎麼設計?
浙江大學學生做出來的這個微博機器人會在飲水機水燒開和沒水的情況下發送微博提醒。請問它的實現方法是什麼?包括感測器、單片機處理信號、聯網發送微博等等方面。
相關鏈接:http://weibo.com/2625288792/xDf8h4BxN
坐在飲水機之父對面的人來權威解答,哈哈~~
硬體是一個小攝像頭,被固定在飲水機狀態燈的對面,然後攝像頭接在旁邊接印表機的電腦上,通過圖像識別,燈有沒有變綠,或者變紅,一個程序負責調用新浪api發微博,完畢
補充一下,因為飲水機拆了就不給保修了哦,所以用攝像頭~~
PS.飲水娘之父@龍彪-Felix 昨天真心是想知道什麼時候泡茶能有熱水而已,今天早上起床他就火了。。於是飲水娘正在緊張進化中。。
要我說,你們都想得太複雜,什麼嵌入式都沒必要。
要我說就是拿一個便宜的帶攝像頭的安卓手機,自己寫一個程序,攝像頭對準飲水機的燈,綠燈亮就發一條圍脖,紅燈亮發一條圍脖,that『s ALL
我不知道他們怎麼設計的,但是我可以說一下如果讓我做我會怎麼設計。
系統分幾個部分,信息也是沿著這幾個部分傳遞的:
感測器 --&> 通信電路 --&> PC機通信口 --&> PC機監測和發微博程序
感測器:根據需求,感測器需要兩個:一個感知水燒開,可以用市面上很容易找到的溫度感測器(精度要求高的話可以用熱電偶),根據溫度判斷水燒開;另一個是感知沒水的情況,可以用通用的液位感測器,為了節約成本也可以用簡單的LED加光敏元件自製液位感測器。
通信電路:負責接收感測器信號和與電腦通信。用單片機就可以實現。感測器信號一般是簡單的開關量電壓電流輸出,直接連接到單片機上就可以。如果電壓電流參數與感測器不匹配,自己設計個電路轉換一下就行。通信的話可以用單片機直接與PC機串口通信。
PC機通信口:略。
PC機監測和發微博程序 :此程序接收到感測器的信息後即自動發出微博。發微博的功能可能使用微博網站提供的API,或者直接控制瀏覽器實現,或者找准目標,直接使用HTTP協議發出去。
這個功能應該不是很複雜,但是比較有創意。傳說中的一直炒作的「物聯網」概念么。。
如果是我設計,應該是這麼三個步驟:
一個是飲水機狀態指令的識別發送。
通過單片機程序判斷當前的飲水機狀態,當水開了發送「Boiling water」狀態,飲水機沒水了就發送「no water」 狀態。
該指令發送到另一個智能設備上,該設備可以為PC也可以是智能手機。
二、自動編輯
如果接收到指令,就自動編輯「當前時間+「主人,我已經沸騰了,快來喝吧~」+當前位置信息」的內容;
如果接收到 ,就自動編輯「當前時間+「禽獸,已經把人家喝光了啦~」+當前位置信息」的內容。
三、微博介面
新浪微博有現成的第三方介面的,只要設置好賬戶名和密碼,聯網成功,就會把編輯好的內容自動發送到微博上。
我感覺像是在這台飲水機裡面安裝了單片機,判斷控制電路的通斷情況來確定「水燒開」、「水用完」等情況,然後通過單片機來聯網發送微博實現。
看了作者的微博,事實上所謂的感測器就是用攝像頭對準飲水機指示燈,然後分析圖像就可以。其實還能更簡單,不會寫程序都行,按鍵精靈用的熟練的話,定時識別指定區域的顏色,模擬登錄發條微博,都不需要用api
根據微博上面的照片以及實現該程序的原創者( 見微博:http://weibo.com/longbiaochen)透露的一些細節:
(1)飲水機指示燈前懸掛著一個攝像頭,攝像頭的另一端,運行在windows上的識別程序利用攝像頭循環的識別指示燈的狀態。
(2)程序利用顏色模式,不同的顏色對應了不同的狀態。然後程序利用微博API根據不同狀態發送http請求到新浪微博伺服器。
(3)鑒於該作者之前的微博提到了近期在學習opencv,因此有理由相信顏色模式的識別是利用opencv開源庫的相關api完成的。
參見RFC 2324 HTCPCP的實現,可以發出418狀態碼的,嗯
【掃地機器人也發微博】
http://www.guokr.com/article/49759/
=====================================
【微訪談:「飲水機娘」養成記】問答匯總
http://www.guokr.com/post/82863/
光感+水位感應器,控制信號作參數直接傳輸到PC端調用API發微薄。好萌啊,賣萌的世界需要物體社交化,可是...實名制怎麼辦?
紅燈線和綠燈線接到PC串口,隨便寫兩行程序就能讀取狀態了
感測器。一個溫度感測器,一個重量感測器。這樣都可以裝到飲水機的內部,而且可以兼容各種顏色水桶等。剩下的事就簡單了。
溫敏感測器-&>單片機-&>usb協議-&>微機-&>微博API
比較好奇的是他們有多少人共用一個飲水機。。。一般5分鐘之內就喝完了,5分鐘之後又燒開。。。所以要不喝完了那個微博寫的不夠準確,而是燒開的熱水消耗完了,繼續燒水;要不就不是桶裝飲水機而是熱水壺。。。。
前端而言就是一個限位感測器和一個溫感感測器,連接在控制晶元後根據閥值的臨界狀態信號觸發不同的微薄設備發送相關預設信息即可。
想法很有創意,但實現一點都不複雜。還是很常規的一個激發裝置一個信號處理裝置再加一個終端設備。激發裝置用一個溫度感測器一個能感知水位的感測器,信號處理由一個控制晶元組成,然後再將感應信號連接一個可以發微博的設備就行。
還可以用聲音感測器哈,當燒水的時候肯定響聲比較大~
以前老闆屋裡有一台飲水機,和普通飲水機長的一樣,但是水不是預先燒開的,而是出水的時候即燒即開的。泡茶什麼的都跑去用那台飲水機,水溫永遠是100度,泡出來的茶很香。普通飲水機的水溫偏低。
話說你發微博提醒不是還要每個人專門打開一個網頁看提醒嗎?
要是說最簡單的方法,當然是飲水機對面坐個人看著,無聊了就發發微博打打屁......
推薦閱讀:
※電氣工程專業本科畢業的工作方向有哪些?
※如何看待「一入電網深似海,從此清閑成廢人」?
※985電力名校博士,被分到了東部沿海一副省級城市電網的變電檢修崗,請問這個結果如何?與省電科院比呢?
※理學主要學什麼,和工學的差別在何處,培養模式有和異同?
※宿舍限電能從空調接電嗎?