【導(dǎo)讀】電子研發(fā)控們有福了,小編這里給大家分享的是一款超有創(chuàng)意的無線感應(yīng)報警器DIY,該DIY是基于樹莓派設(shè)計的無線感應(yīng)報警器,主要分硬件和軟件設(shè)計兩部分,有興趣的你可以跟著學(xué)學(xué),很好玩的!
通過把LCD1602,蜂鳴器和單路徑循跡傳感器模塊都接入到樹莓派的GPIO引腳上面,用單路徑循跡傳感器檢測物體的距離或顏色。當(dāng)物體距離過近時,此時路徑傳感器模塊輸出為低電平,這個時候LCD1602顯示出“DETECTED:YES”,同時蜂鳴器發(fā)出聲音。而當(dāng)物體為黑色或者距離較遠(yuǎn)時,蜂鳴器沒有輸出,同時LCD1602顯示“DETECTED:NO”。
DIY工具:
主要包括樹莓派B+,LCD1602,蜂鳴器,單路徑循跡傳感器模塊。其主要作用如下:
樹莓派:主控芯片,根據(jù)外部輸入控制輸出。主要利用樹莓派的GPIO口
蜂鳴器:無源蜂鳴器,通過PWM波驅(qū)動其發(fā)聲,由樹莓派驅(qū)動。
LCD1602:顯示必要的信息,輸出設(shè)備。
單路徑循跡傳感器模塊:輸入設(shè)備。可以通對反射紅外線的接收情況來判斷物體的距離。當(dāng)被檢測物體在檢測范圍內(nèi)時,紅外線被反射回來且強(qiáng)度足夠大,模塊的輸出端為低電平,指示二極管被點(diǎn)亮。否則輸出高電平。
[page]
分配樹莓派的引腳
因為用的是B+的板子,所以GPIO口比較多,我就把其他的小模塊直接和樹莓派的GPIO口連接起來,不要擔(dān)心GPPIO口不夠用。樹莓派和蜂鳴器相連,使用了兩個引腳,Pin20和Pin36。其中Pin20是樹莓派的Ground引腳,所以我通過Pin36引腳(GPIO16)來發(fā)PWM波驅(qū)動蜂鳴器。
接下來是樹莓派和LCD1602連接。特別主要LCD1602的RW引腳一定要接地,否則可能燒壞樹莓派。
對于LCD1602大家應(yīng)該很熟悉不過了,如果大家之前有玩過單片機(jī)的話。這個就是它的樣子,我們可以用它來顯示字母、數(shù)字、符號等信息。它背面總共包含16個引腳,能同時顯示16X02個字符。對于一些小應(yīng)用和演示,還是很不錯的一個工具哦。
今天我做的就是把樹莓派和LCD1602連接起來。那首先第一問題就出來了?我們怎么連線呢?這需要我們知道樹莓派的GPIO口輸出信息,也要我們知道LCD1602的引腳信息,只有把這個都對上號了,才能正確給LCD上電,我們才能正式的編程,使用LCD1602。
這個就是我使用的樹莓派的GPIO和LCD1602的連線的原理圖。
[page]下面是我實際的接線圖。
這里有幾點(diǎn)需要和大家說一下:
(1)原理圖的樹莓派是B版,我實際使用的是B+的板子,但是引腳編號沒有改變。大家也一定要注意實際和原理圖的區(qū)別
(2)由于樹莓派的引腳很少,所以關(guān)于LCD的7~10號引腳我們不使用
(3)由于樹莓派沒有過流保護(hù),并且十分脆弱在使用中保證LCD1602的RW引腳接地,否則嘗試從LCD1602讀取數(shù)據(jù)可能會燒掉樹莓派。
(4)原理圖中Ri是電位器,即10KΩ滑動變阻器,可以調(diào)節(jié)LCD的亮度
最后當(dāng)我們檢查完畢,一定不要有短路,確保接地。我們就可以上電了。這個時候LCD就應(yīng)該點(diǎn)亮了哦。我們旋轉(zhuǎn)電位器,還能看到LCD上的小格子消失或者出現(xiàn)。
樹莓派和單路徑循跡模塊連接,一共有三個引腳,其中一個引腳接電壓正極,Pin1,樹莓派輸出5V。一個接地,Pin34,樹莓派的Ground。另外一個是信號輸出,Pin3。在程序里面,通過判斷樹莓派引腳的電壓來判斷物體的距離。
完成這些步驟以后,我們就基本完成硬件的連接了。接下來就是軟件的實現(xiàn)了。
軟件實現(xiàn)
這一部分主要和大家介紹的我這個小應(yīng)用的軟件部分。
軟件是實現(xiàn)這個功能的核心啊,主要包括以下幾個部分:
(1)感應(yīng)模塊,感知無線感應(yīng)模塊的輸入
(2)驅(qū)動蜂鳴器,需要產(chǎn)生PWM波
(3)顯示模塊,LCD1602根據(jù)不同的感應(yīng)情況顯示不同的信息。
這三部分我們都可以借鑒網(wǎng)上的資料,但是要根據(jù)自己的情況做一些修改。當(dāng)然,我非常推薦下面這個網(wǎng)站:http://wiringpi.com/。我程序里面用到的函數(shù)都在下面的目錄里,大家點(diǎn)進(jìn)去,對著我后面的程序找就能找到原型了!