步驟1:安裝和配置Raspberry PI
首先,您需要安裝并配置RESTFUL服務(wù)器以接受通過(guò)Internet和用于訪問(wèn)Raspberry PI-GPIO引腳的框架,以通過(guò)這些引腳讀取和寫(xiě)入數(shù)據(jù)。
配置Raspberry PI來(lái)訪問(wèn)無(wú)線網(wǎng)絡(luò)網(wǎng)絡(luò)(您可以購(gòu)買(mǎi)無(wú)線加密狗并通過(guò)Raspberry PI USB接口進(jìn)行連接。 (如何鏈接)
在Raspberry PI上安裝Node JS。 (操作鏈接)
在Node.JS上安裝pi-gpio,以通過(guò)nodeJS訪問(wèn)Raspberry PI引腳(安裝PI-GPIO)
在Node.JS上安裝express以創(chuàng)建RESTFUL服務(wù)器(安裝Express)
在 GPIOcontroller.js 文件(功能 )中創(chuàng)建兩個(gè)文件(負(fù)責(zé)控制硬件引腳和鎖定)和 myService.js (控制臺(tái)中的節(jié)點(diǎn)將調(diào)用該服務(wù)來(lái)運(yùn)行服務(wù)器,它將調(diào)用GPIOcontroller.js函數(shù))。 。這將在稍后的-步驟3中進(jìn)行演示–
現(xiàn)在是硬件!
步驟2:在Raspberry PI和Raspberry PI之間構(gòu)建硬件鎖定
1 Raspberry PI
在Raspberry PI中,我們將使用GPIO引腳7,GRD和5V輸出,因?yàn)镚PIO引腳產(chǎn)生3.3V,由于汲取的高電流導(dǎo)致電壓降低于3V,因此無(wú)法激活繼電器的螺線管。因此,我們不能依靠GPIO電壓輸出來(lái)打開(kāi)繼電器開(kāi)關(guān)。
2放大
使用NPN晶體管,二極管和電阻器,我們使用晶體管進(jìn)行通道Raspberry PI到接觸式繼電器的5V輸出,使用GPIO輸出的輸入作為信號(hào)來(lái)打開(kāi)和關(guān)閉晶體管以激活繼電器開(kāi)關(guān)。 (檢查面包板)
3繼電器
(鏈接到繼電器的教學(xué)視頻)
12V繼電器有5條支腳,兩條支腳在螺線管中產(chǎn)生電流,從而打開(kāi)開(kāi)關(guān),其他三個(gè)支路通常
中間支路為公共端。
一個(gè)支路為常閉(繼電器時(shí))
一只腳正常斷開(kāi)(當(dāng)繼電器被激活時(shí),開(kāi)關(guān)閉合電路)。
4電子開(kāi)關(guān)
電子鎖的一個(gè)引腳連接到12V電源適配器的GRD,另一引腳連接到繼電器公共端(中腳),而繼電器常開(kāi)引腳連接到12V電源適配器VCC
步驟3:服務(wù)器應(yīng)用程序代碼(RESTFUL API和PI-GPIO)
再次返回軟件代碼,請(qǐng)記住兩個(gè)文件(步驟2中的 GPIOController.js 和 myService.js )
GPIOcontroller.js
var gpio = require(“pi-gpio”); var gpioPin = 7;
var isOpened=false;
var unlockRelay = function(){
if(!isOpened){
/* Open the door lock */
gpio.write(gpioPin, 1, function() {
isOpened = true;
});
/*setTimeOut will be activated in 2 seconds, closing the lock as we set gpioPin value to 0*/
setTimeout(function () {
gpio.write(gpioPin, 0, function() {
isOpened = false;
});
}, 2000);
}
}
myService.js
var http = require(‘http’); var express = require(‘express’);
var app = express();
var GPIOCtrl = require(‘。/GPIOcontroller.js’);
app.get(‘/unlock/’, function(req, res){
GPIOCtrl.unlockRelay();
});
app.listen(3000);
console.log(‘App Server running at port 3000’);
然后在終端中,在您的應(yīng)用程序代碼文件級(jí)別
node myService.js &
控制臺(tái)將顯示“在端口3000上運(yùn)行的App Server”
要使此腳本在Raspberry PI Startup上運(yùn)行(請(qǐng)檢查此鏈接)
步驟4:創(chuàng)建REST客戶(hù)端
現(xiàn)在,您可以使用服務(wù)了運(yùn)行在分配給Raspberry PI Wireless接口的IP和端口3000上。
要將Raspberry PI連接到云,您必須檢查無(wú)線路由器設(shè)置(超出范圍)
現(xiàn)在我們可以假設(shè)客戶(hù)端與Raspberry PI位于同一網(wǎng)絡(luò)中。
因此,這只是一個(gè)調(diào)用,您可以在幾秒鐘內(nèi)將其添加到應(yīng)用程序中:
// Create the URL to make the rest call.
NSURL *restURL = [NSURL URLWithString:@“http://raspberrypi-address:port/unlock/”];
NSURLRequest *restRequest = [NSURLRequest requestWithURL:restURL];
currentConnection = [[NSURLConnection alloc] initWithRequest:restRequest delegate:self];
這是一個(gè)iOS代碼調(diào)用示例。
-
Web
+關(guān)注
關(guān)注
2文章
1255瀏覽量
69294 -
電子門(mén)鎖
+關(guān)注
關(guān)注
1文章
15瀏覽量
9448
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論