Node.js Raspberry Pi - GPIO 入門
什麼是 GPIO?
GPIO 是通用輸入輸出 (General Purpose Input Output) 的縮寫。
Raspberry Pi 有兩排 GPIO 引腳,它們是 Raspberry Pi 與現實世界之間的連線。
輸出引腳就像 Raspberry Pi 可以開啟或關閉的開關(例如開啟/關閉 LED 燈)。但它也可以向另一個裝置傳送訊號。
輸入引腳就像你可以從外部世界開啟或關閉的開關(例如電燈開關)。但它也可以是來自感測器的輸入資料,或來自另一個裝置的訊號。
這意味著你可以透過 Raspberry Pi 及其 GPIO 引腳與現實世界互動,並控制裝置和電子產品!
仔細檢視 GPIO 引腳

這是 Raspberry Pi 3 的示意圖。
GPIO 引腳是 Raspberry Pi 右側兩排的小紅色方塊,在實際的 Raspberry Pi 上,它們是小的金屬引腳。
Raspberry Pi 3 有 26 個 GPIO 引腳,其餘引腳是電源、地或“其他”用途。
引腳位置對應下表。
Raspberry Pi B+, 2, 3 & Zero
3V3 | 1 | 2 | 5V |
GPIO 2 | 3 | 4 | 5V |
GPIO 3 | 5 | 6 | GND |
GPIO 4 | 7 | 8 | GPIO 14 |
GND | 9 | 10 | GPIO 15 |
GPIO 17 | 11 | 12 | GPIO 18 |
GPIO 27 | 13 | 14 | GND |
GPIO 22 | 15 | 16 | GPIO 23 |
3V3 | 17 | 18 | GPIO 24 |
GPIO 10 | 19 | 20 | GND |
GPIO 9 | 21 | 22 | GPIO 25 |
GPIO 11 | 23 | 24 | GPIO 8 |
GND | 25 | 26 | GPIO 7 |
DNC | 27 | 28 | DNC |
GPIO 5 | 29 | 30 | GND |
GPIO 6 | 31 | 32 | GPIO 12 |
GPIO 13 | 33 | 34 | GND |
GPIO 19 | 35 | 36 | GPIO 16 |
GPIO 26 | 37 | 38 | GPIO 20 |
GND | 39 | 40 | GPIO 21 |
圖例
物理引腳編號 |
電源 + |
地 |
UART |
I2C |
SPI |
GPIO |
請勿連線 |
仔細檢視麵包板
麵包板用於電子原型製作,它允許你在不焊接的情況下建立電路。它基本上是一個塑膠板,上面有一系列柵格狀的插孔(孔)。板內部有金屬條,以特定方式連線不同的插孔。
在下面的示意圖中,我們用不同的顏色高亮了一些區域。這是為了向您展示柵格是如何連線的。

麵包板的不同區域
- 在左側和右側,有 2 列插孔。這些列中的所有插孔都已連線。
- 電源匯流排 - 以紅色高亮的列。它們通常用於將電源連線到麵包板。由於整列都已連線,因此您可以將電源連線到該列的任何插孔。
- 地匯流排 - 以藍色高亮的列。它們通常用於將地線連線到麵包板。由於整列都已連線,因此您可以將地線連線到該列的任何插孔。
- 連線的插孔行 - 以綠色高亮的行。這些行的插孔已連線,但並非整行!左側插孔已連線(A-B-C-D-E),右側插孔已連線(F-G-H-I-J)。
- 麵包板的中間有一個溝槽,它將左右兩行的插孔分開。溝槽的寬度設計得可以容納許多積體電路。
安裝 onoff 模組
要使用 Node.js 與 Raspberry Pi 上的 GPIO 進行互動,我們將使用一個名為“onoff”的模組。
使用 npm 安裝 onoff 模組
pi@w3demopi:~ $ npm install onoff
現在 onoff 應該已經安裝好了,我們可以與 Raspberry Pi 的 GPIO 進行互動了。