新聞詳情
單片機與物聯網瀏覽數:1次
![]() 互聯網是一個時代,物聯網,也是一個時代。最近聽到一句話“只要有人的地方,就有物聯網技術”,物聯網技術是當今電子、通信、計算機、IT行業技術的大融合。如圖,物聯網技術的技術組成(簡單版),也就是物聯網的主要學習內容。 # 物聯網技術之一:單片機/嵌入式開發 智能硬件不就是單片機嗎?說到底就是一個微控制器,現在出現的智能手表,調光LED燈,藍牙開鎖,WiFi插座等等,說到底不就是單片機開發嘛?單片機,電子和通信專業一般都會教51或AVR、計算機系接觸不到。現在流行的Arduino也是單片機開發的一種。 但是要做一款智能硬件,技術上只會單片機編程還是不行的。什么智能硬件,本質上就是一個電子產品。所以你要開發一款能拿得出手的智能硬件,電子系統設計必須要會的! 硬件設計階段: l MCU選擇 l 電路設計(電路圖) l 驗證電路(面包板、萬用板) l 電路板設計(PCB圖) l 送工廠打板或自己做板 l 元器件、物料管理(采購等) l 拿到電路板后,焊接芯片和元器件、上電測試、燒寫最后版本的代碼到芯片里 如果你熟悉以上硬件設計階段,并知道要做什么事情,已經是一個合格的單片機硬件工程師了哈~接下來就是單片機軟件工程師的事情了,單片機軟件一般都不會太復雜,有的還是不用上操作系統的裸機開發,做過單片機課程設計的學生都懂。 軟件設計流程: l 確定軟件架構(主循環?狀態機輪詢?) l 編寫軟件 l 調試代碼(開發板或自己搭建好的電路) l 燒寫最終版本的代碼到電路里 這些都不算復雜了,如果你用的芯片高級一點,不是微控制器而是微處理器的話,那么就是嵌入式開發了。 # 物聯網技術之二:網絡通信協議 智能硬件與傳統的電子產品最大的差別,就是智能硬件連上了網絡。要連上網絡,就需要用到網絡通信模塊及學習網絡通信協議——TCP/IP。 TCP/IP是一個技術的總稱,里面包含兩種協議TCP、UDP,位于網絡通信分層模型的傳輸層,同時也是由操作系統管理。而HTTP、DNS、URI等這些技術,屬于應用層,位于TCP/UDP之上。同樣,最近物聯網比較流行的,針對計算能力有限的通訊設備而出的MQTT協議,也屬于TCP之上。為了讓電子產品有聯網的能力,只要在電路設計上給主控芯片連接一個通信模塊,寫好收發網絡指令的代碼,剩下的就是電子產品設計了。到這里,基本是一個物聯網產品的雛形了,以上也是物聯網中基本會用到的電子和通信技術。 # 物聯網技術之三:服務端開發框架 Client/Server架構,即客戶端/服務器架構。智能硬件連上后臺服務器后,其就是一個客戶端,一個終端。由于單片機中資源受限,實際上是不太可能用HTTP協議的,所以互聯網中通用的Web服務器開發并不適合這里。有的廠家會在TCP之上自定義協議,有的就移植別人做好的協議比如MQTT,CoAP等等。 服務端開發就比較復雜了。單片機/嵌入式軟件開發還好,只要學習好C語言即可打遍天下無敵手,而服務端開發,用Java還是Python呢?反正Java和Python選一個就好了,嵌入式出身的工程師,一般都會學Python。 Python服務器端的開發框架種類繁多,Web開發的有Django、Flask、Tornado Web Server,TCP服務器可以用Twisted,等等。MQTT有已經做好的服務器,像這樣的服務器不用自己開發,直接部署即可。 到了這里,服務端開發和前面兩個技術可以作為一個分層,前面的單片機/嵌入式和網絡通信的開發可以算作是一個電子設備的開發,后臺工程師只要拿到了這個電子設備,知道這個設備提供了哪些接口(API),就可以進行后臺開發了——把設備連上網絡,分配給它一個IP或者什么的,配置好接口及相關操作,剩下的事情就交給前端了。 # 物聯網技術之四:無線自組網 無線自組網,或稱無線傳感網絡,這肯定是物聯網專業的學生要學的一門學科,屬于通信領域,電子、計算機出身的人對這沒有太多的概念。無線自組網最典型的技術之一是ZigBee。 # 物聯網技術之五:RFID 仔細觀察上面那張無線技術的圖,最右邊,NFC/RFID。對,RFID,非接觸射頻識別,也是物聯網技術重中之重的技術。 早已實現了的公交卡以及校園一卡通,用的就是RFID技術。RFID可讀可寫,所以公交卡、校園卡的錢能存在卡里面。NFC,也是RFID的技術一種。 # 結語 當然,由于物聯網本身就是所有技術的大融合,做電子產品的還要考慮產品外殼,不過這是結構工程師的事情;做服務器后臺的還要考慮用戶帳號數據庫讀寫等,前端也要考慮如何把設備數據和操作方式優雅的展現給用戶看,這些是IT程序員的事情;電池技術也需要單方面突破,超小體積、超大容量等等。 與其說物聯網是一種技術吧,不如說它是一個時代,物聯網通過對相關技術進行整合,形成一個時代的概念,是一個建立在技術基礎之上的時代。 將挑戰看成跳板,超越挑戰,你能跳得更遠。
|