自己動手實(shí)現(xiàn)智能家居之樹莓派GPIO簡介(Python版)

【前言】

一個熱愛技術(shù)的人一定向往有一個科技感十足的環(huán)境吧,那何不親自實(shí)踐一下屬于技術(shù)人的座右銘:“技術(shù)改變世界”巍实。

就讓我們一步步動手搭建一個屬于自己的“智能家居平臺”吧(不要對這個名詞抬杠啦携茂,技術(shù)在手,怎么設(shè)計實(shí)現(xiàn)因人而異),本文只做拋磚引玉情臭,各路大神如果有更好的想法可以各顯神通年鸳,當(dāng)然能在評論區(qū)留下更好的想法讓大家共同學(xué)習(xí)是再好不過啦剃氧。

在文章最后附有所有源代碼,有需要的可以自行下載阻星,感謝Star~

【系列目錄】

  1. 樹莓派GPIO簡介(Python版)
  2. 溫濕度數(shù)據(jù)采集存儲(DHT11朋鞍,MySql)
  3. 溫濕度數(shù)碼管展示(四位共陽數(shù)碼管)
  4. 構(gòu)建App展示溫濕度報表(ApiCloud已添,Python Flask)
  5. 普通家用排插集成繼電器手工改造
  6. App遠(yuǎn)程控制“自制智能”排插
  7. 使用花生棒內(nèi)網(wǎng)穿透實(shí)現(xiàn)外網(wǎng)訪問
  8. App遠(yuǎn)程監(jiān)控(攝像頭模塊集成)

【本節(jié)概要】

要做一些神奇的騷操作,比如環(huán)境數(shù)據(jù)采集滥酥,智能控制等更舞,最終還是要落地到設(shè)備上。要和各種各樣的設(shè)備打交道坎吻,肯定是離不開電子元件的缆蝉。市場上有大量的開箱即用的封裝的很好的硬件,但是都是獨(dú)立的或者是集成了某些功能于一身的瘦真,并不能自己靈活的進(jìn)行擴(kuò)展刊头。

如果我們要自己靈活地配置各種各樣的功能組合,自己操作原始的電子元件或許是更明智的選擇诸尽。在我們這個項(xiàng)目中原杂,我們將采用樹莓派+一系列電子元件來構(gòu)建我們的整個系統(tǒng)。

樹莓派

樹莓派是什么這里只做簡單介紹您机,貼個不帶殼子的圖~

image

加上殼子可以長這樣穿肄,當(dāng)然了殼子是千變?nèi)f化的,不可"以貌取派“

image

Raspberry Pi(中文名為“樹莓派”,簡寫為RPi际看,(或者RasPi / RPI) 是為學(xué)習(xí)計算機(jī)編程教育而設(shè)計)咸产,只有信用卡大小的微型電腦,其系統(tǒng)基于Linux仲闽。 隨著Windows 10 IoT的發(fā)布脑溢,我們也將可以用上運(yùn)行Windows的樹莓派。

說白了就是迷你電腦赖欣,當(dāng)然電腦能干的事樹莓派都可以干焚志,瀏覽網(wǎng)頁,看視頻畏鼓,玩一些對性能要求不高的游戲都是可以的酱酬。甚至還可以當(dāng)服務(wù)器,多個樹莓派搭建一個集群(樹莓派官網(wǎng)就是部署在一堆樹莓派組成的集群上)云矫。

GPIO

那么膳沽,GPIO又是什么呢?

GPIO(英語:General-purpose input/output)让禀,通用型之輸入輸出的簡稱挑社。說白了,就是一堆針腳巡揍,可以自由地通過編程手段控制其輸入還是輸出痛阻。

樹莓派自帶了很多針腳,給程序員提供電子元件控制的出入口腮敌。以“3代B+”型號樹莓派為例阱当,本身提供了兩排共40個針腳俏扩,從上面不帶殼的樹莓派圖片中可以看到上面有兩排裸露的針腳。下面是針腳分布圖:

image

第三列和第六列(表頭為功能名)展示了40個針腳的作用弊添,綠色的是開放通用的輸入輸出針腳录淡,黑色的是接地,5V和3.3V高電平輸出油坝,其他顏色的針腳用在一些特殊場合嫉戚,比如輸出視頻流什么的,并不十分常用澈圈。我們目前關(guān)注 輸出電壓/接地/通用針腳 這幾種彬檀。

樹莓派用不同的編碼規(guī)則給40個針腳起制定了編碼,方便我們對針腳的輸入輸出進(jìn)行開發(fā)瞬女。常見的編碼規(guī)則有:BOARD編碼規(guī)則窍帝,見上圖中的BOARD編碼對應(yīng)的40個針腳的位置;還有BCM編碼規(guī)則拆魏,也可根據(jù)上圖找到對應(yīng)針腳盯桦。

樹莓派GPIO一般采用 Arduino腳本或者python腳本進(jìn)行控制慈俯,也有少數(shù)人使用C或者其他編程語言渤刃,理論上講,越高級的語言API往往封裝的越完善贴膘,代碼也越簡潔容易卖子,我們的系列文章采用python腳本進(jìn)行開發(fā)。

RPi.GPIO 模塊

RPI.GPIO是python下控制GPIO的模塊刑峡,可以通過命令 “npm install RPI.GPIO” 進(jìn)行安裝洋闽。注意:該命令務(wù)必在有GPIO的環(huán)境下安裝,比如樹莓派設(shè)備上可以順利安裝成功突梦,但是在windows下沒有GPIO設(shè)備诫舅,因此安裝會出現(xiàn)各種問題,不建議在windos上開發(fā)時安裝這個包宫患,我們可以直接遠(yuǎn)程 PI 邊寫邊執(zhí)行測試效果刊懈。

導(dǎo)入 RPi.GPIO 模塊:

import RPi.GPIO as GPIO

下面是一段簡單的python代碼,用來展示如果使用RPI.GPIO控制樹莓派的針腳

# 設(shè)置GPIO布局編碼娃闲,這里采用BOARD編碼風(fēng)格虚汛,也可以使用BCM風(fēng)格,注意針腳編碼規(guī)則是不同的
GPIO.setmode(GPIO.BOARD)

# 關(guān)閉警告皇帮,如果設(shè)置某個針腳為非默認(rèn)狀態(tài)卷哩,可能會得到警告
GPIO.setwarnings(False)

# 設(shè)置某個針腳的用途
# 下面例子:設(shè)置BOARD編碼風(fēng)格的12號(對應(yīng)GPIO.1)針腳為讀取模式
GPIO.setup(12, GPIO.IN)

# 讀取BOARD-12針腳的電平值
GPIO.input(12)

#設(shè)置BOARD編碼風(fēng)格的12號(對應(yīng)GPIO.1)針腳為輸出模式
GPIO.setup(12, GPIO.OUT)

# 輸出BOARD-12針腳為低電平,這里GPIO.LOW/0/False属拾,三種參數(shù)是等效的
GPIO.output(12,GPIO.LOW)

# 在任何程序結(jié)束后将谊,請養(yǎng)成清理用過的資源的好習(xí)慣
# 注意:這行代碼會將針腳狀態(tài)恢復(fù)成默認(rèn)值冷溶,如果要保持狀態(tài),請不要執(zhí)行該命令
GPIO.cleanup()

上面代碼是最常用的控制各個針腳輸入輸出的命令瓢娜,我們可以靈活組合基本命令完成更復(fù)雜的功能挂洛。

【總結(jié)】

本節(jié)內(nèi)容是我們后續(xù)搭建系統(tǒng)的基礎(chǔ),通過學(xué)習(xí)樹莓派的GPIO使用眠砾,為我們后續(xù)的溫濕度采集虏劲,電路控制等準(zhǔn)備了充足的條件。

【源碼地址】

GitHub:https://github.com/sevenTiny/SevenTiny.SmartHome

20190928 成都

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末褒颈,一起剝皮案震驚了整個濱河市柒巫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谷丸,老刑警劉巖堡掏,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異刨疼,居然都是意外死亡泉唁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門揩慕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亭畜,“玉大人,你說我怎么就攤上這事迎卤∷┩遥” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵蜗搔,是天一觀的道長劲藐。 經(jīng)常有香客問我,道長樟凄,這世上最難降的妖魔是什么聘芜? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮缝龄,結(jié)果婚禮上汰现,老公的妹妹穿的比我還像新娘。我一直安慰自己二拐,他們只是感情好服鹅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著百新,像睡著了一般企软。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饭望,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天仗哨,我揣著相機(jī)與錄音形庭,去河邊找鬼。 笑死厌漂,一個胖子當(dāng)著我的面吹牛萨醒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播苇倡,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼富纸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了旨椒?” 一聲冷哼從身側(cè)響起晓褪,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎综慎,沒想到半個月后涣仿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡示惊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年好港,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片米罚。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡钧汹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出阔拳,到底是詐尸還是另有隱情崭孤,我是刑警寧澤类嗤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布糊肠,位于F島的核電站,受9級特大地震影響遗锣,放射性物質(zhì)發(fā)生泄漏货裹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一精偿、第九天 我趴在偏房一處隱蔽的房頂上張望弧圆。 院中可真熱鬧,春花似錦笔咽、人聲如沸搔预。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拯田。三九已至,卻和暖如春甩十,著一層夾襖步出監(jiān)牢的瞬間船庇,已是汗流浹背吭产。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸭轮,地道東北人臣淤。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像窃爷,于是被迫代替她去往敵國和親邑蒋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容