首先不要被這原理圖吓 住,其實分解一看很簡單,主要是樹莓派和繼電器可能不常見,下面會一一道來.原理就是通過樹莓派的gpio接口來控制繼電器的通斷,以達到控制水泵通斷電的功能.
樹莓派
這就是樹莓派,裸闆幾百塊,可以簡單地認為這就是個小電腦, 它在本示例的主要作用就是充當控制端, 通過命令或代碼控制水泵的開關 ,裝的是官方的raspberry pi os(基于Debian的linux系統),這裡假設樹 莓派系統已安裝好可正常使用 (如果有不懂如何安裝系統的,且留言的比較多也可以專門出一期)
上圖電路闆上邊那兩排針腳就是GPIO接口(通用輸入輸出接口).這裡一定要注意每一個針腳的物理編号(闆上沒寫 ),以上圖為例,上邊一排從左到右為編号依次為2,4,6…40,下邊一排的編号依次為1,3,5…39, 把上圖順時旋轉90度後,針腳編号及說明如下:
本示例用了3個GPIO針腳,4号針腳輸出5V 直流電源正極, 6号針腳是接地也就是負極,22号針腳是GPIO的信号輸出. 具體的連接線可以從網上買杜邦線(很便宜), 杜邦線又分公對公,公對母,母對母等頭, 公頭就是有針的,線頭就是有孔的, 如樹莓派的GPIO是針, 那麼就得買一頭是母的杜邦線插進去,如果繼電器的口也是針的, 那就買母對母的, 反正也不貴,建議每種都來些,方便試驗.
繼電器
啥是繼電器, 簡單來說就是通過信号來控制電源的通斷, 原理就是給它一個高電平(1),内部纏繞線圈産生磁性,吸附鐵片以連通電路,給它一個低電平(0),失去磁性,斷開電路。某寶上價格也就幾塊錢,還包郵。
本例中, 左側3個口與樹莓派連接,從上到下依次連樹莓派的22,4,6三個口。S表示Signal, 或vcc表示電源正極, - 或GND 表示電源負極.
右側也 有3個端口, COM是公共接口;NC是常閉端口,也就是沒通電或給低電平的情況下NC和COM是連通的;NO是常開端口,也就是當繼電器收到高電平信号,NO與COM連通,自然NC和COM就斷開了。
水泵的兩根線任意剪斷一根,也就有兩個頭了,一頭接在繼電器的COM公共口,另一頭接中NO常開口。
命令或代碼開關水泵當物理線路連接好後, 就可以測試了, 先來了解下如何在樹莓派上控制GPIO。
1. 首先确定是否有gpio命令,輸入gpio -v查看版本号,如果找不到命令,需要先安裝: apt install wiringpi
2. 通過gpio readall 查看各端口(針腳)的情況及對應的BCM碼(重要!!!).如下:
3. 通過命令開關繼電器
#調整BCM碼 25,也就是22号物理針腳為輸出模式 gpio -g mode 25 out #對此端口号(針腳)寫入高電平1, 此時會聽到”啪”一聲,繼電路連通, 電器工作 gpio -g write 25 1 #輸入低電平即可斷開電路 gpio -g write 25 0 |
4. 通過python代碼通斷電路,也是用的BCM碼.
import RPi.GPIO as GPIO #導入GIPO的包 import sys GPIO.setwarnings(False) #取消警告信息 GPIO.setmode(GPIO.BCM) #設置使用BCM的針腳号 PORT =25 # 定義端口号(針腳) if __name__ == '__main__': #判斷參數小于2就報錯,第1個參數是代碼文件名,第二個參是on或off if len(sys.argv)< 2: print('參數不正确,請執行python3 relay.py on') switch=sys.argv[1] #獲取第2個參數on或off GPIO.setup(PORT,GPIO.OUT) #設置端口為輸入模式 if switch == 'on': GPIO.output(PORT,GPIO.HIGH) #輸出高電平 else: GPIO.output(PORT,GPIO.LOW) #輸出低電平 |
把上述代碼保存為relay.py , 在命令窗口執行python3 relay.py on 調用即可
補充:
如果定時開啟可以加入crontab定時任務.
如果要通過網頁或手機APP控制,就需要搭建個Web服務器了, 後續會一步步 完善
-----------------end-----------------
歡迎各位補充指正! 如有疑問請留言!
原創不易,感謝各位 關注、點贊、評論、轉發 !
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!