- Gerekli malzemeler
- Raspberry Pi'de Node.js Kurulumu
- Node.js kullanarak bir LED'in yanıp sönmesi
- Node.js LED Blink komut dosyası ve Açıklama
- Node.js kullanarak bir LED'in Yanıp Sönmesi için Devre Şeması
- Ahududu Pi
Önceki Raspberry Pi Öğreticilerinde, Python, gömülü C, Flask vb. Dahil olmak üzere Raspberry Pi'yi kontrol etmek için birçok farklı programlama dili ve yazılım kullandık. Güçlü Raspberry Pi kartının ufkunu genişletmek için, bugün çok popüler bir JavaScript tabanlı ortam kullanacağız (Node.js) Raspberry Pi GPIO'ları web sunucusu olarak kurarak yerel ve küresel olarak kontrol etmek için. Başlangıçta Node.js Google Chrome için geliştirildi, ancak daha sonra Google tarafından açık kaynaklı hale geldi.
Bu eğitimde, Raspberry Pi'ye bağlı bir LED'i iki yöntem kullanarak kontrol edeceğiz.
- Önce , LED'i Yanıp Söndürmek için Node.js kullanarak bir JavaScript kodu yazacağız.
- İkinci yöntemde, LED'i açıp kapatmak için iki düğmeli bir HTML sayfası oluşturacağız. Bu HTML web sayfası raspberry pi'de barındırılacak ve herhangi bir web tarayıcısında açılabilir. Yani burada Raspberry Pi web sunucusu olarak hareket edecek
Gerekli malzemeler
- Raspbian yüklü Raspberry pi kartı
- LED
Bu eğitimde, Raspberry Pi ile bağlantı kurmak için HDMI kablosu kullanarak Harici Monitör kullanıyorum. Monitörünüz yoksa, Raspberry pi'ye Dizüstü veya bilgisayar kullanarak bağlanmak için SSH istemcisi (Putty) veya VNC sunucusunu kullanabilirsiniz. Herhangi bir zorluk bulursanız, Raspberry Pi ile Başlarken Kılavuzumuzu izleyin.
Raspberry Pi'de Node.js Kurulumu
Aşağıdaki komutları kullanarak Node.js'yi panomuza kuracağız.
Adım 1: - Öncelikle bu komutu kullanarak ahududu pi kartınızın kol versiyonunu kontrol edin.
uname -m
Benim durumumda sürüm 7'dir.
Adım 2: - Bu bağlantıyı terminale kopyalayarak yükleyiciyi indirin. Aşağıda verilen bağlantıdaki sürümü değiştirmeyi unutmayınız.
wget https://nodejs.org/dist/v4.6.1/node-v4.6.1-linux-armvl.tar.gz
Adım 3: - Aşağıdaki komutu kullanarak dosyaları çıkartın
tar -xvf düğümü-v4.6.1-linux-armvl.tar.gz
Adım 4: - Son olarak, önemli dosyaları yerel dizinlere de eklemek için bu komutları yürütün.
cd düğümü-v4.3.1-linux-armvl sudo cp -R * / usr / local /
Node.js artık Raspberry Pi'nize yüklenmiştir. Bu komutu kullanarak onay için düğüm sürümünü kontrol edin.
düğüm sürümü
Bir Node.js sunucusu oluşturmadan önce, ilk olarak node.js (npm onoff paketi) kullanarak bir LED'i yakıp söndürmek için bir komut dosyasının nasıl yazılacağını göreceğiz.
Node.js kullanarak bir LED'in yanıp sönmesi
Raspberry Pi üzerindeki GPIO'yu Node.js kullanarak kontrol etmek için onoff modülünü kullanacağız.
Aşağıdaki komutu kullanarak onoff modülünü kurmak için npm paket yöneticisini kullanacağız
npm yükleme kapalı
Şimdi ledin yanıp sönmesi için bir senaryo yazacağız. Nano düzenleyiciyi açın ve komutu kullanarak dosyanın adını verin
nano blink_led.js
Node.js'de yeni başlayan biriyseniz ve paketleri varsa, komut dosyasını daha iyi anlamak için npm belgelerine bakabilirsiniz.
Node.js LED Blink komut dosyası ve Açıklama
İlk önce led, delay ve GPIO için değişkenleri tanımlayın. LED'i bağlamak için Raspberry Pi GPIO 4 kullanıyorum.
var Gpio = gerektirir ('onoff') Gpio; var LED = yeni Gpio (4, 'çıkış'); var blinkInterval = setInterval (blinkLED, 500);
Şimdi, göz kırpmayı başlatmak için bir fonksiyon yapacağız.
işlev yanıp sönüyor () {if (LED.readSync () === 0) {LED.writeSync (1); // çıkışı 1 olarak ayarlayın, yani led'i açın} else {LED.writeSync (0); // çıkışı 0 olarak ayarlayın, yani led'i kapatın }}
Benzer şekilde, yanıp sönmeyi durdurmak için bir işlev yapın.
function endBlink () {clearInterval (blinkInterval); LED.writeSync (0); LED.unexport (); // Kaynakları serbest bırakmak için GPIO'yu dışa aktarın} setTimeout (endBlink, 10000);
Yanıp Sönen LED için eksiksiz Node.js kodu bu eğitimin sonunda verilmiştir. Bu yüzden daha önce nano komutu ile oluşturduğumuz led_blink.js dosyasındaki kodu kopyalayıp yapıştırın, Ctrl + x kullanarak dosyayı kaydedin, ardından Y'ye basın ve enter tuşuna basın.
Komut dosyasını çalıştırmak için terminali açın ve aşağıdaki komutu yazın:
düğüm blink_led.js
LED'in 10 saniye yanıp söndüğünü ve bundan sonra yanıp sönmeyi bıraktığını göreceksiniz. Bu eğitimin sonunda verilen Videoda tam çalışmayı kontrol edin.
Node.js kullanarak bir LED'in Yanıp Sönmesi için Devre Şeması
Ahududu Pi
Şimdi ilginç kısma gelin, burada Raspberry pi GPIO'sunu bir web sayfası kullanarak kontrol edebileceğimiz kendi web sunucumuzu yapacağız.
Bunun için önce bir HTML sayfası yapmamız ve arka uç görevi, yani RPi GPIO'yu kontrol etmek için bir betik yazmamız gerekiyor.
Adım 1: - Tüm dosyaları tek bir yerde depolamak için bir dizin oluşturun.
mkdir nodejs_server
Adım 2: - nodejs_server klasörünün içinde, HTML dosyasını kaydetmek için bir klasör daha oluşturun.
cd nodejs_server mkdir görünümleri
Adım 3: - html sayfanıza resim eklemek istiyorsanız, ana dizinde, yani nodejs_server klasöründe public adlı başka bir klasör yapmanız gerekir. Ortak klasörde, görüntü klasörü oluşturun ve tüm görüntüleri bu klasöre kaydedin.
Adım 4: - Şimdi HTML sayfası yapacağız. Bunun için, görünümler dizinine gidin ve dosya adıyla nano metin düzenleyicisini açın index.ejs
Senaryoda süslü hiçbir şey yok. Açma ve Kapatma düğmesi yapmak için sadece bir HTML dosyasıdır.
Aşağıdaki HTML kodunu nano metin düzenleyicisine kopyalayıp yapıştırın ve kaydedin.
Nodejs Sunucusuna Hoş Geldiniz
Led Durumu: <% = durum%>Adım 5: - Şimdi JavaScript kodu yazmalıyız. Kullanıcı tarafından gerçekleştirilen http isteklerine yanıt vermek için node express framework kullanıyoruz.
Node Express hakkında daha fazla bilgi edinmek için bağlantıyı takip edebilirsiniz.
Terminali açın ve nodejs_server klasöründe index.js dosya adıyla nano metin düzenleyicisini açın, ardından aşağıdaki java komut dosyası kodunu ve bu dosyayı kopyalayıp yapıştırın.
var express = required ('ifade'); var app = express (); var yol = gerekli ('yol'); var gpio = required ('rpi-gpio'); gpio.setup (7, gpio.DIR_OUT); app.set ('motoru görüntüle', 'ejs'); app.use (express.static (yol.join (__ dirname, 'genel'))); console.log (yol.join (__ dirname, 'genel')); app.get ('/', function (req, res) { res.render ('indeks', {durum: "Düğmeye Basın"}); }); app.post ('/ led / on', function (req, res) { gpio.write (7, true, function (err) { if (err) throw err; console.log ('Pin için Doğru Yazılı'); console.log (yol.join (__ dirname, 'genel')); res.render ('dizin',{durum: "Led Açık"}); }); }); app.post ('/ led / off', function (req, res) { gpio.write (7, false, function (err) { if (err) throw err; console.log ('Pin için Yazılı Yanlış'); console.log (yol.join (__ dizin adı, 'genel')); dönüş res.render ('dizin', {durum: "Led Kapalı"}); }); }); app.listen (3000, function () { console.log ('Sunucu Bağlantı Noktasında Başlatıldı: 3000!') })
Adım 6: - nodejs_server dizininin içinde, node.js kitaplıklarını kurmak için aşağıdaki komutu yürütmeliyiz
npm yükleme
Adım 7: - Artık sunucunuz çalışmaya hazır. Yerel sunucuyu başlatmak için nodejs_server dizini içinde aşağıdaki komutu çalıştırın
düğüm index.js
terminalde, sunucunuzun tanımlanan portta başlatıldığını belirten bir mesaj göreceksiniz.
Adım 8: - Şimdi tarayıcınızı açın ve port numarası yani raspberrypi: 3000 ile Raspberry Pi URL'sini açın
Tarayıcıyı açtığınız ahududu pi ve dizüstü bilgisayarınızın aynı ağa bağlı olduğundan emin olun.
Tarayıcıda aşağıdaki sayfayı göreceksiniz.
Şimdi, LED'i açmak için LED Açık düğmesine ve LED'i kapatmak için LED Kapalı düğmesine basın.