物聯網、開源硬件與開源社區

前言

物聯網開源硬件的興趣由來已久。html

大學時期,我和@老楊都不能接受黑格爾存在即合理這個信條, 咱們熱衷於改進平常看到的不合理事物。node

黑格爾是我最厭惡的哲學家之一, 我喜歡伯特蘭·羅素西方哲學史中對他的攻擊,羅素評價黑格爾晦澀又龐大的體系時說到:python

邏輯越糟糕,由它得出的結論越有趣。

和老楊常常一塊兒出去騎車閒逛,有時週末去,有時翹課去,一路上除了聊大衛·休謨維特根斯坦,也時常就騎車途中所見事物,展開頭腦風暴。這些事物是合理的嗎?是否能夠從新發明出更好的?騎車歸來,找個自習室畫些草圖,展現頭腦中的改進模型。git

咱們常常在同個地方卡殼。當咱們試圖改進周圍事物時,時常須要得到外部世界的物理參數,如聲響、光照強度、傾斜角、溫溼度之類的東西,咱們但願創造的設備可以根據這些數值自動執行某種邏輯。一開始,以爲是本身對機械結構還不夠熟悉,沒法利用凸輪、槓桿等機械裝置設計出精巧的結構,來執行循環功能或者計時功能。書上那些精巧的機械結構讓人望而怯步,理解它們的原理並不難,但要根據構想的邏輯功能設計出擁有這些邏輯功能的機械結構,彷佛強烈須要某種靈感,這可遇不可求。程序員

我喜歡漫無目的在圖書館閒逛,隨手拿起手邊的書,無論它屬於哪一個分類。偶然發現存在一種叫單片機的東西,它能夠鏈接傳感器, 獲取物理世界的參數,同時能夠經過編程控制電機之類的設備,來對現實施以影響。如此一來大腦中的邏輯構造,就能不通過機械結構直接運行在現實世界中了!github

我和老楊在圖書館讀了些單片機的書,儘管熱情高漲,也極盡耐心,仍是以爲無聊透頂,這些教材成功澆滅了咱們全部的熱情。說單片機的書無聊透頂有些不公平,畢竟大多數的教材,都無聊透頂,除了堆砌公式和知識,就不幹別的了。當一個平庸的教材編撰者門檻真夠低的,須要的無非是ctrl-c + ctrl-v,我相信是嚴格意義上的ctrl-c + ctrl-v,不是程序員平時調侃本身說的那種複製粘貼。編程

 

 

我在世界觀上,如今是個樂觀主義者,不一樣於柏拉圖。我相信隨着歲月的流逝,世界總體上是在進步,而不是如柏拉圖所設想的在逐步墮落。但當我每次去圖書館翻開教材,我有時又以爲柏拉圖是對的。vim

偶然接觸到物聯網這個詞, 以爲正是我和@老楊一直期待的東西,若是能將設備聯網,不只能解決單個設備的控制問題,還能讓它們協同工做!服務器

大學開始混跡開源社區,在社區裏,遇到了敬佩的開發者、感興趣的方向,對編程的熱愛,也大多來自開源社區的經歷。當我對一個新的領域感興趣時,首先想到的經常是從開源社區中找學習資料。畢業以後,沒有從事開源硬件、物聯網相關的工做,但依然喜歡作些沒什麼卵用的小發明。也一直在關注開源硬件、物聯網這塊的東西。網絡

特別值得一提的時,近年因爲少兒編程的發展,硬件編程生態有個巨大改進,樹莓派micro:bit的出現,除了方便孩子們創造,也讓那些熱愛創造、童心還在、卻沒有接受科班硬件教育的成年人,能輕鬆得去改造周圍的事物。

從micro:bit提及

micro:bit由BBC(英國廣播電視公司)出品,它是個微型電腦,初衷是服務於青少年編程教育。風靡全球。

 

 

這個小板子,集成了很是多的元件: 藍牙,加速度計,磁力計,三個按鈕,LED點陣以及GPIO(一些針腳,能夠用來鏈接其餘傳感器)。

爲它編程容易極了。即使你沒有任何編程經驗,幾分鐘以內經過拖拖拽拽,就可使用積木來製做運行於現實世界的硬件項目! makecode 是你理想的起步伴侶。

若是你已經有Python基礎,也可使用Python來爲它編程: python editor

micro:bit是開源硬件,從硬件電路到軟件代碼所有都是公開的,有大量的開源項目基於micro:bit,全球用戶造成了社區,社區裏有很是豐富的教程項目,供入門者學習。

大學時,我和@老楊一直期待的就是micro:bit這類事物,惋惜它珊珊來遲,大然能爲週末增長多少樂趣啊。

樹莓派

 

 

開源社區裏有大量項目展現人們都用micro:bit作出了什麼好玩的東西,創造者中的大多數以前並無編程經驗。

若是你想作的事情稍微複雜些,諸如根據天氣自動提醒出門的人記得帶傘。你可能須要鏈接網絡,當你想作更多的事,樹莓派多是下一步的理想選擇。

樹莓派只有巴掌大小,但它是一臺嚴格意義上的電腦,事實是,它比你的筆記本或手機可強大、靈活多了。今天的消費級計算設備(手機、iPad、筆記本電腦)被設計成一種黑箱,這固然是一種精心的設計。如"下一件大事"是一個房間中描述的:

咱們已經忘記了計算機最突出的部分:它們的可塑性。咱們已經默許,將創造虛擬世界的權利,讓渡給那些 可以花費巨資去僱傭足夠多的軟件工程師的人們。那些擊中咱們眼睛的光子來自徹底可替代像素,但對於咱們大多數人來講,這些像素彷佛都是用石頭雕刻般不可修改。
智能手機應用程序就像從前的廚房用具同樣,是一種通過精心設計的單一用途工具,只有極少的可定製性和互操做性。它們有數百萬行怪異的代碼,只有一大批程序員才能馴服。 一旦人們付了錢,孩子們就會獲得神奇的長方形,這些長方形像真正的魔法同樣難以理解。

樹莓派試圖給予計算機可塑性,這就是沃茲尼亞克這類黑客喜歡它的緣由,當喬布斯試圖削減蘋果電腦的可塑性時,沃茲尼亞克表現出黑客的底線:

一般我是個很好說話的人,但這一次我告訴他,‘你要是隻想要兩個擴展槽的話,就本身去作一臺吧。像我這樣的人最終老是會想出點兒東西來加到電腦上的‘

今天的沃茲尼亞克恐怕看不上本身早年參與創造的蘋果產品。

micro:bit同樣,樹莓派也是開源的。也有GPIO,還記得GPIO嗎?就是一些針腳,能夠把樹莓派和你新買的傳感器接在一塊兒。

你能夠用樹莓派作一個機器人、一個靈魂照相機、一個物聯網網關、一個飛行器...全部這些,社區裏都有人作出來。

樹莓派在全球有數千萬用戶,和microbit同樣,樹莓有也有一個偉大的社區。你沒必要拿着一本教科書從電路圖讀起。加入開源社區與你們一塊兒玩,不懂就提問,社區的用戶都友好極了。他們是你和善的玩伴和熱心的老師。

物聯網

某天你用樹莓派或其餘開源硬件搗鼓了一個小發明: 樹莓派守護者,原理說來簡單: 樹莓派上接了一個超聲波傳感器, 你將它置於門後,當你偷偷在房間裏看冰與火之歌看得起勁時,房門忽然被推開了,超聲波傳感器感應到門被推開,樹莓派當即給你的電腦發送一個信號,你的電腦屏幕即刻切換到代碼大全這本書的第432頁。

這東西不僅你本身用得開心,常常欺負你的胖虎也很喜歡它,因而他威脅你趕快再作一個;你喜歡的靜香也很喜歡它,因而她請求你幫忙作一個。

當你週六熬夜作好了一款新的樹莓派守護者,週日一早去敲靜香的門。

你在門外盼望着它被順利運行,靜香開心又感激,跑出門跟你喜極相擁也說不定,人在開心的狀況下能作出什麼事,誰說得準呢? 想一想你都有點臉紅了。

你等呀等,時間慢得像星期五下午的最後一節課。

靜香出門向你跑來,你正準備伸出雙臂,靜香說: "我要怎麼將它連wifi呢?你只說要聯網,沒說怎麼連,和小米網關同樣的操做嗎?好厲害哦,你的app叫什麼名字呢?我這就去下載!"

你忘了考慮這點,你平時都是用ssh登錄樹莓派,而後用vim編輯器給樹莓派配置網絡。你沒有寫app,你有點結巴:"這個...這個...我下學期完善後再給你送來!"

你發現作一個普通用戶能方便使用的東西,要作的事還挺多,一個能工做的原型是不夠的。它得易用。

你在作一個物聯網產品。

物聯網(Internet of Things)

物聯網(Internet of Things)英文名很是直觀: 聯網的物體。

將物體聯網後能作的事情太多了: 智能家居、可穿戴設備、智能物流、智能農業...它被認爲是下個十年。

若是你作的是相似樹莓派守護者這種面向C端用戶的產品,你得解決的技術問題還挺多的。我在一輛樹莓派可編程小車的問題有作過描述。

若是你打算從頭開始解決這些問題,我敢打賭靜香都嫁人了,你事情都還沒作完一半。

好在有開源社區,你須要的東西應有盡有。

須要一個MQTT服務器(MQTT Broker)是吧?emqx拿去,源碼都公開,文檔也全面,這東西開箱就能處理百萬設備的鏈接。

不瞭解MQTT是什麼?簡單來講MQTT之於物聯網正如HTTP之於互聯網。說的你更懵了?沒事,社區裏闡述能力比我強的人多着呢。

須要一個手機客戶端?blynk瞭解一下,它能幫你快速構建一個能夠發佈的APP。拖一個按鈕,拖一個顏色選擇框,拖一個統計圖表工具,看起來是否是很像Apple健康應用了?有海量開發者在用它生產本身的物聯網產品的APP。

你聽聞靜香有個遠方表妹在學編程,她也想製做好玩的東西?CodeLab構建的積木化編程環境支持在積木中玩轉物聯網了。若是她的能力再強些,codelab-adapter甚至內置了一個開源插件供她在學校裏運行整個MQTT服務器。

什麼?你以爲這是我在打廣告,聽起來不是很可信,沒事開源社區裏沒有強迫,你可讓靜香她表妹試試node-redPhysical Etoys之類開源項目,它們都頗有趣。私底下說,我以爲她最終仍是會喜歡咱們作的東西的,走着瞧。

參考

相關文章
相關標籤/搜索