你為什么學物聯網?
作為一名物聯網工程專業的學生,不知道你是否已經搞懂了什么是物聯網,和大多數專業的同學一樣,我們都會對自己的專業產生困惑!不學物聯網去學其他專業就不困惑了嗎?肯定不是!身為人肯定都是對自己的未來保持好奇和探索,正是這種探索的精神,支撐著我們走完自己的人生,也引導的人類的不斷發展!
我也是某雙一流大學物聯網工程專業的學生,總覺得,學弟學妹們像當初我自己一樣,都在說什么是物聯網,但是對物聯網要學些什么,能做些什么事情感到很困惑,作為一位老學長,我想從專業的學習內容和一些課設專案,來向你證明,物聯網是要做什么的!但是可能我自己也水平有限,沒有辦法達到盡善盡美,有不正之處,請多多指教!
我學物聯網的感jio~
什么是物聯網??這個想法再正常不過了,那個高三剛畢業的學生能搞懂這仨字?!我當初高考完填報物聯網工程專業,很大程度上在于,分數不夠,哈哈哈哈哈哈哈!,在僅剩的供我挑選的專業中,就覺得這個詞特別的酷,有那種,萬物互聯,天下大同的感jio,🆒就完事了~~
專業的基本思想,什么都能聯網
對我物聯網意識具有啟蒙作用的,就是我們系主任講物聯網工程導論的那句,課前必提的問題“同學們,什么是IOT?”“Internet Of Things!”我們都一塊高喊著回答,系主任瞇著眼說,“這就對了,上完我的課記住IOT,我就很滿意!”大一實在是沒啥專業課,都是一些大學英語,高等數學等等這類通識課,唯一的專業課也就是C語言了,“物聯網”這個概念又晦澀難懂,很容易就搞不懂自己在學什么了,課下就知道一通亂跑,,,,,說的就是我了!巧就巧在,C語言的獨特性,對于初學編程的人,學習C語言是肯定大有脾益的,但是C語言在入門的時候,很難做出自己的小專案,C語言連冒泡演算法都得自己寫,寫個幾百行的貪吃蛇,已經夠吹好幾個月了吧,,相反,我有學大資料專業的同學,他們專業就專門學Python,在一起聊天的時候,他都在亂搞專案“怎么與服務器之間用Socket傳輸檔案”、“怎么爬取網上簡單的資料”、“怎么做一個UI界面”,相比之下,我就會指標,堆疊,佇列······,完全沒法比嘛!就給自己一種感覺,自己白學的編程一樣(但是,后來自學了Python,不就是調包就完事了,狗頭保命!)**Python雖然能很快做出東西,但是做出的東西,你自己可能都不知道咋做出來的~,這就是我想說的第一個點:好好學好自己該學的東西,跟著學校走,把知識弄扎實,再去想其他的,**不管大學期間你參加什么活動,在大學期間,你沒有把學校安排的課程學精學透,對你自己來說都不是最好的結局!
拽到萬物互聯上
“萬物互聯!”什么是萬物互聯?物聯網拽的每個詞,都能搞蒙你,就是高大上,就是狂拽酷!對于這個名字的概念,我的理解是在最開始學C51單片機的時候,第一次接觸硬體,跑起來無敵的走馬燈程式的時候,那種感覺對我來說很奇妙,眾所周知,計算機的世界是二進制的,如果一個小燈的亮滅,分別表示“0”和“1”,就像最初組成計算機的二極管一樣,這種能力的潛力是無限的,當你控制了一個小燈,攢到了一個bit的控制權,如果這個量變得更大呢??那豈不是能夠掌控身邊的所有事物,“萬物互聯”追求的就是對身邊物品的控制力罷了,互聯就是為了方便自己控制,最基礎的,肯定是“物”了!我們就來研究研究什么是物聯網中的“物”!我們從身邊的物開始推導,你可以說,桌子是物體,杯子是物體,筆記本電腦也是物體,但是物聯網中的物體肯定是能夠彼此建立連接的物體,所以普通的桌子或者板凳肯定不算物聯網中的物!但是如果你說,你能通過某種方式(手機遙控、遙控器遙控或者它會自動調節自己的高度適應椅子上的人)控制它做出一些反應,那么我覺得,這時候,這個“物體”就是物聯網的一部分,或許你會納悶了,為什么他自己動也算呢?欸?!這個問題很棒,這就是物聯網和互聯網的不同,互聯網的的組成都是計算機(路由器也算一種計算機),而**物聯網的范圍更大,更廣,包含了人與人,人與物,物與物之間的聯系,**舉一個物與物的例子,比如,你一家人興沖沖地開著家里剛買的電動汽車出去嗨,晚上回來了,當汽車快到達家門口的時候,車庫門緩緩升起,這就是一個物與物之間的聯系,人的行為和環境中的所有組成都融為一體,這就是我心中的物聯網,
專業思維
隨著這種想法的吸收,我就產生了一種思維,身邊所有的東西,都能做成物聯網中所謂的“智能產品”或者說,所有的物品都能拿來改造成自己的專案,但是隨著時間的推移,這種想法很不切實際,因為,生活中不是所有的東西都需要變得“可控”(這里指代能以控制或自主做出一些行為),我們還是以一個bit為例,這樣方便大家,拓展到其他物品上,就說客廳燈的開關為例,如果我們想要改造它,我們需要做哪些事情?或者,這個開關要用來干什么,毫無疑問,開關是需要保證它的斷開和閉合狀態可控就行,也就是說,它就只需要最基礎的控制而不需要復雜的邏輯來作業,根據這個想法,我一直將我以為的物分為兩種:一種是可控的物,一種是智能的物,(我自己編的詞兒~),可控,即是我們可以控制一個物體的狀態為我們所用;智能,即是它能主動的為我們提供服務(說到這里為了表示專業,不得不說一下“泛在感知”,泛在感知就是一種理想化狀態,我們享受著服務,但是也不知道,我們正在被服務,但是現階段的物聯網遠沒有這么先進,所以,我才會產生這兩種分類方式),總之,當我們專業的同學希望在專案中實踐時,我們應當選擇“智能的物”為方向,這樣才更容易做出來成果!
為什么學硬體開發?硬體學習方向
對于物的控制靠的就是硬體方面的知識了,就我個人的學習經歷來看,實作對物的控制和編程有以下幾種方向:
- 最簡單的控制,C51單片機,成本低,開發較簡單,但是但是不容易做出復雜的專案,常見的專案大多為:跑馬燈,裁判投票器,紅綠燈,電子琴等基礎專案,在這個學習階段,我們可以嘗試一些復雜的專案,比如:用蜂鳴器放一首歌,用模擬軟體仿真設計等,我們當時學習的時候就用的Proteus這款模擬仿真軟體,可以用C語言編程的,無敵方便,又能做很多復雜的設計,
- 入門版的Arduino,沒有任何看不起Arduino的意思,完全是Arduino太好用了,社區賊拉活躍,源代碼和專案也很多,IDE自帶很多示例專案,直接燒進板子就能用,YYDS!在對Arduino的學習程序中,起步要對傳感器做一些實驗,比如:使用溫濕度傳感器、光照傳感器、數碼管、LCD顯示屏顯示資料,步進電機、舵機、直流電機這些設備來練手,對這些東西活學活用,就已經能做出像模像樣的設計了,進階版,當然是要加上WIFI、藍牙、Zigbee、紅外這些無線的通信模塊了,
- 經典的STM32系列,STM32開發板引腳多,功能強大,能夠設計出很多復雜的設計,加上IIC、UART等這些介面,可以說是基本無敵,在市場上的份額也很大,和Arduino一樣,基礎的學習也是,熟練的使用STM32驅動一些傳感器,但是STM32的能力更強可以設計指紋等復雜的傳感器,STM32進階當然是融合著作業系統的知識,學習一下FreeRTOS等實時嵌入式作業系統!!!(實時作業系統和普通的作業系統有什么區別?這是前不久面試剛被問的,然鵝,不會尷了個尬,千萬不要和我一樣整天叫的響,實際啥也不懂),
- 繼續提升難度,我們需要開始接觸Linux了,Linux絕對是永遠的神!!學習嵌入式Linux作業系統的移植,這個階段我們可以看一些Linux內核的原始碼,學習他的先進經驗,這就需要十分扎實的C語言基礎,那可得相當扎實!!!可以先從Linux最初的版本開始,越往前代碼量越少的哦~,我們可以學著給Linux作業系統撰寫驅動檔案,驅動我們的傳感器,將Linux內核裁剪,燒錄進我們自己的開發板中,最后,學到差不多了,就可以做出一個運行著Linux系統的龐然大物,
- 最后的難度,我只能說給你們一些學習的路線,因為我也沒學到······很火的FPGA啊······,清華大學開放的作業系統課啊······華為發布的處理器啊······學一學怎么PCB制板·····啊······學一些模擬電路的知識啊~大概就這么多,最后我會放一些網站供大家學習,
終于說完硬體部分啦!!再來聊一聊軟體部分吧~
為什么學軟體?軟體的學習方向
無敵經驗,百試不爽!一個專案必須得有一個前端界面來展示,否則就算硬體叼炸天,別人都看不出來,只有用優美簡潔的界面展示復雜的操作,別人才會懂,專案有多強!做一個專案的界面的話,我也按照硬體分分級別吧~
我認為最簡單的就是Python了,一個PyQt打遍天下無敵手,畢竟Python真的很方便,不需要造任何輪子,而且只要你想到的東西,都有人在做,使用Python作為桌面控制程式很方便,Python自己的特性,也很容易通過Socket、TCP、埠、串口、藍牙、WiFi等等任何你想得到的方法,無縫接入你自己的專案中,
-
不太容易上手,但是很好用的安卓開發!安卓也是有很多開源的專案可以使用,加上手機的便捷性,使得使用安卓作為控制端和展示端都有著獨特的優勢,你可以盡情的呼叫手機任何功能,做你想做的事:震動、NFC識別、拍照、人臉識別、WiFi、藍牙、陀螺儀,簡直就是硬體寶藏庫!!!和Python一樣,只要你學到了安卓的基本開發流程,也是百試百靈!
-
最難的應該是搭建網站了,需要涉及到很多知識,Java開發,前端開發VUE、CSS這些東西,很有幸,自己在這個暑假搭建了屬于自己的網站,備案了自己的域名,有興趣的同學可以私信我一起交流哦~,言歸正傳,網站開發,需要你有扎實的實力,一顆折騰的心!
我想把軟體分為兩部分來說,上面的技術可以配合著做一些專案的東西,下邊的東西,是我覺得,對物聯網學習,也很有幫助的一些方面:
- 如果有能力,有時間,強烈推薦一下學學神經網路、卷積網路、KNN演算法、matlab這類知識,答主我是一直想學沒學會~對自己的成長和進步肯定是沒得說的,
- 如果想做軟體的開發,可以學一下Java、和Java的開發框架,Java能夠快速的搭建自己的專案,學會了Java可以開發網站、開發安卓APP等,十分意思,
- 嘗試搭建自己的智能家居平臺和智慧城市方面的東西,比如GIS這些(我也是只知道,但確實是很有意思的東西,感興趣自己去百度吧~),
以上就是我自己目前對物聯網專業的想法了,如果有大神發現有什么不對勁,歡迎批評指正,為了多和來自不同學校,不同地區的物聯網同學們一起交流,答主創建了QQ群:559369389 有興趣可以來玩哦~哦,不!來學習交流知識!
打個廣告:答主剛建的微信公眾號:“修電腦的雜貨店”,快來看答主出丑吧~~~
最后的最后,給大家放一些我自己總結的干貨和一些好的學習資源!
[自制]基于51單片機的交通信號燈仿真(匯編、keil、Proteus)
AT89C51 蜂鳴器 播放音樂 按鍵控制 51單片機
【太極創客】零基礎入門學用Arduino 第一部分 合輯
【正點原子】STM32開發板實驗教程(F103)
正點原子【第三期】手把手教你學Linux之系統移植和跟檔案系統構建篇
【尚學堂】AI人工智能卷積神經網路演算法_卷積神經網路原理_人工智能從生物神經網路到人工神經網路
【狂神說Java】Java零基礎學習視頻通俗易懂
博主創建的QQ群!👈👈👈點擊藍字加群
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290956.html
標籤:其他
