- Node.js nedir?
- Gerekli Bileşenler
- Devre şeması
- Node.js Çerçevesini Ayarlama
- Johnny-Five Library'yi Kurmak
- Arduino ve Node.js ile yanıp sönen LED
- Arduino ve Node.js Web Sunucusunu Kullanarak LED Parlaklığını Kontrol Etme
Farklı Mikrodenetleyiciler ve farklı programlama dilleri kullanarak bir LED'in yanıp sönmesinin çok sayıda örneğini gördük. Bugün, Arduino Uno'ya bağlı LED'i kontrol etmek için çok popüler bir JavaScript çerçevesi Node.js kullanacağız. Arduino kullanarak bir web sayfasından LED'in parlaklığını kontrol etmek için Node.js kullanacağız. Birkaç ince ayar ve ESP8266 kullanılarak bu, LED'in her yerden kontrol edilebildiği bir IoT projesine dönüştürülebilir.
Node.js nedir?
Node.js gelişmekte Google Chrome'un JavaScript V8 Engine üzerinde inşa edilmiş ve uygulanmış yaygın olarak kullanılan JavaScript tabanlı çerçevesidir I / O böyle tek sayfalık uygulamaları Video akışı yapan siteler vs. yoğun web uygulamaları
Bir LED'i kontrol etmek için daha önce Node.js ve Raspberry Pi'ye Başlarken hakkında bilgilendirici bir eğitim yaptık. Bu eğitimde, benzer bir yaklaşımı izleyeceğiz, yani LED aşağıdaki gibi iki yöntem kullanılarak kontrol edilecektir:
- Node.js çerçevesinde bir JavaScript kodu yazarak basit LED yanıp söner.
- Node.js çerçevesini ve herhangi bir tarayıcıdan bir web arayüzünü kullanarak LED Parlaklık Kontrolü: Arduino UNO bir web sunucusu olarak hareket edecek ve HTML web sayfası bir PC veya Dizüstü bilgisayarda barındırılacaktır.
Gerekli Bileşenler
Donanım:
- Arduino UNO Kurulu
- Led
- Direnç
Yazılım:
- Arduino IDE: Arduino UNO Kartına eskiz yüklemek için.
- Firmata: Bir bilgisayardaki, akıllı telefondaki vb. Yazılımlardan farklı mikrodenetleyicilerle iletişim kurmak için bir protokoldür. Firmata aygıt yazılımı herhangi bir mikrodenetleyici panosuna (Arduino, Teensy gibi) yüklenebilir ve herhangi bir dizüstü bilgisayar, PC veya akıllı telefon ile konuşabilir. Firmata Library, Arduino IDE ile birlikte gelir, bu nedenle herhangi bir yerden indirmeye gerek yoktur. PyFirmata kullanarak Arduino'yu Raspberry Pi ile kontrol etme üzerine bir eğitim yaptık.
- Johnny-Five: Johnny-Five, JavaScript'te kod yazmak için kullanılan ve Arduino Kartları ile Bilgisayar arasında köprü oluşturmak için kullanılan JavaScript Tabanlı Robotik ve IoT platformudur. Johnny-Five, Arduino UNO, NANO, Promini, vb. Gibi çeşitli Arduino uyumlu Anakartlarla test edilmiştir. Bu öğreticide, Johnny-Five kitaplığının tüm özelliklerinin kullanılabilmesi için indirilmesi gerekir. Kurulum kılavuzu bu eğitimde daha sonra açıklanacaktır.
Devre şeması
Devre şeması çok basit, sadece Arduino ile bir LED bağlamamız gerekiyor.Node.js Çerçevesini Ayarlama
Kodlama ve geliştirmeye başlamadan önce, Node.js indirilmeli ve ayarlanmalıdır. Node.js ortamını indirmek için basit adımları izleyin.
Adım 1: - Node.js'nin.exe dosyasını resmi web sitesinden indirin.
Adım 2: -.exe dosyasını çalıştırın ve yükleyicide verilen talimatları izleyin.
Adım 3: - Node.js Belgesinde önerildiği gibi bilgisayarınızı yeniden başlatın ve ayrıca Node.js'nin tüm özelliklerini kullanın
Adım 4: - Düğümün kurulup kurulmadığını kontrol etmek için Komut İstemi'ni açın ve Düğüm –v yazın.
Adım 5: - Node.js sürümü, Node.js'nin kurulu olduğunu gösterecek şekilde görüntülenecektir.
Johnny-Five Library'yi Kurmak
Şimdi Node.js'yi indirdikten sonra, tüm proje dosyalarını tek bir yerde tutmak için Belgeler'de "LED_Control" adlı yeni bir Klasör oluşturun. Her proje dosyası “ LED_Control ” klasöründe tutulacaktır. Şimdi Johnny-Five Kitaplığını “ LED_Control ” klasörüne indirin. İndirmek için aşağıdaki adımları izleyin:
Adım 1: - Komut İstemi'ni Açın
Adım 2: - ' cd ' komutunu izleyerek " LED_Control " Klasörüne gidin.
Adım 3: - ' npm install johnny-five' komutunu çalıştırın
Adım 4: - Bu, Johnny-Five'ın tüm bağımlılıklarını kuracaktır.
Adım 5: - Bu eğitimde LED'in parlaklığını kontrol etmek için kullanılan gerekli kitaplıkları da kurun. Burada kullanılan üç kitaplık vardır:
- express: HTTP sunucu sarmalayıcısı
- socket.i o: WebSockets kitaplığı
- serialpor t: Seri bağlantı noktası sarmalayıcı
Adım 5: - Bu üç kütüphaneyi kurmak için aşağıdaki komutları tek tek çalıştırın.
npm install express npm install socket.io npm install serialport
Daha önce de belirtildiği gibi proje iki bölüme ayrılmıştır:
- Öncelikle, Node.js ile Arduino Yanıp Sönen LED
- İkinci olarak, Arduino ve Node.js kullanarak web arayüzünden LED Parlaklığını Kontrol Etme.
Arduino ve Node.js ile yanıp sönen LED
LED'in yanıp sönmesi için Arduino'nun Bilgisayar ile iletişim kuracak şekilde ayarlanması gerekir.
Yanıp Sönen LED için Arduino UNO'nun Ayarlanması:
Arduino UNO'nun Dizüstü Bilgisayardan Kontrol LED'ine komutu kabul etmesini sağlamak için, Firmata ürün yazılımının Arduino UNO'ya yüklenmesi gerekir. Firmata Firmware'i yüklemek için aşağıdaki basit adımları uygulamanız yeterlidir:
- Bağlayın USB kablosunu kullanarak Arduino UNO
- Arduino IDE'yi açın ve Araçlar'dan Arduino UNO kartını seçin (Başka bir kart kullanıyorsanız, ilgili olanı seçin).
- Bağlı Arduino UNO'nun İlgili COM portunu seçin
- Şimdi Menü -> Dosya -> Örnekler -> Firmata -> StandartFirmata'yı kullanarak Firma Verisi Taslağını bulun .
- Yükle “StandardFirmata” > Yükle - Dosya giderek krokisini.
Bu, Firmata Taslağını Arduino UNO'ya yükleyecek ve şimdi Arduino UNO bilgisayardan herhangi bir komutu kabul etmeye hazır.
Yanıp Sönen LED için Node.js programı yazma:
Bir Node.js programı yazmak için herhangi bir metin düzenleyicisini (Not Defteri, Notepad ++, vb.) Açın ve bu öğreticinin sonuna eklenen 'blink_led' kodunu yapıştırın ve '.js' yani (blink_led.js) uzantısıyla kaydedin. daha önce oluşturulan "LED_Control" klasöründe. Blink_led.js kod dosyasında önemli adımları tartışacağız.
Başlangıçta, ledin bağlı olduğu mikrodenetleyicinin Pinini tanımlayın. Bu örnekte LED, Arduino UNO'nun Pin 5'ine bağlanmıştır. Node.js'deki 'var', değişken bildirimini temsil eder.
var led_pin = 5;
Johnny beş modül ihtiyaçları dahil edilecek ve yönetim kurulu ihtiyaçları seçilmelidir. Node.js'deki modüller kitaplıklardır. ' Require () ' işlevi, modüle erişecektir.
var johnny_five = required ("johnny-beş"); var arduino_board = new johnny_five.Board ();
Console.log deyimi baskı ifadesine benzer ve bu mesajı yazdırılır. Ve LED pini çıkış moduna getirilir ve tanımlanan gecikme ledin yanıp sönmesine verilir.
console.log ("LED Yanıp Sönmeye Başladı!"); var led = new johnny_five.Led (led_pin); led.blink (100);
Şimdi programı çalıştırmak için aşağıdaki adımları izleyin:
- Komut İstemi'ni Aç
- Locate “LED_Control” izleyerek klasörü 'cd' komutu
- 'Node led_blink.js' komutunu çalıştırın. Başarıyla yürütülürse, "LED Yanıp Sönmeye Başladı!" aşağıdaki resimde gösterildiği gibi .
- Arduino UNO Pin 5'te led yanıp sönmeye başlayacaktır.
- Ve bu, eğiticimizin ilk bölümünü, yani Node.js ile Yanıp Sönen LED'i bitirir
Arduino ve Node.js Web Sunucusunu Kullanarak LED Parlaklığını Kontrol Etme
Node.js ile bir LED'in yanıp sönmesine benzer şekilde, bu bölüm de Arduino UNO'yu Kurmak, Web Arayüzünü Kurmak ve bir Node.js programı yazmak gibi bazı kısımlara sahip olacaktır.
LED'in Parlaklığını kontrol etmek için Arduino UNO'nun ayarlanması:
Arduino UNO'yu kurmak için, “ arduino_control.ino ” taslağını Arduino UNO kartına yüklemeniz yeterlidir. Bu, Arduino Kartını kuracaktır. Kodun tamamını HTML dosyalarıyla birlikte buradan indirebilirsiniz. “ Arduino_control.ino” kodu aşağıdaki önemli adımları içerir.
Başlangıçta, baud hızı 9600 olarak ayarlanmıştır.
Serial.begin (9600);
Seri port her zaman gelen baytı arar ve bayt bir PWM Pin olan Pin 5'e yazılır.
while (! Serial.available ()); analogWrite (5, Serial.read ());
Bu kadar. Bu, Arduino'yu baytı PWM pinine kilitleyecek ve LED'in parlaklığını değiştirecek.
Web Arayüzünün Kurulması:
Web arayüzünü kullanarak led'in parlaklığını kontrol etmek için , Tarayıcıda bir arayüze sahip olacak şekilde küçük bir HTML kodu yazılır. Arayüze sahip olmak için aşağıdaki basit adımları izleyin:
- Daha önce oluşturulmuş olan "LED_Control" klasörünün içinde "public" adlı yeni bir klasör oluşturun.
- Şimdi "index.html" ve "style.css" dosyalarını indirin ve her iki dosyayı da yukarıdaki ilk adımda oluşturulan "public" klasörüne taşıyın. Dosyalar buradan indirilebilir.
Bu, Node.js ve Arduino kullanarak LED'in parlaklığını kontrol etmek için web sayfasında bir kaydırıcı oluşturacaktır.
Web sayfasından bir LED'i kontrol etmek ilginçtir ve bir web sunucusu oluşturarak ve web sayfasını web sunucusunda barındırarak diğer mikrodenetleyici ile yapılabilir. Web sunucusu ile ilgili tüm projeleri buradan kontrol edin.
LED'in Parlaklığını kontrol etmek için Node.js programı yazma:
Sonraki adım, Node.js kullanarak " bright_control.js " taslağını yazmak ve kodu çalıştırmak olacaktır. Kodun yürütülmesi, Node.js ile LED'in Yanıp Sönmesine biraz benzer olacaktır.
Bir node.js program herhangi bir metin düzenleyicisi (Notepad, Notepad ++, vs.) açıp yapıştırmak yazmak için 'brightness_control” bir uzantısı ile bu yazının sonunda ekli kodu ve kaydetme .js'' yani (brightness_control.js) daha önce oluşturulan "LED_Control" klasöründe. Kodu buradan da indirebilirsiniz.
Blink Led Node.js programına benzer şekilde, bu bölümde de modüller (kütüphane) kullanılacaktır. "Ekspres", "http" ve "seri bağlantı noktası" modülünü ekleyin.
var express = required ('ifade'); app = express (); sunucu = gerekli ('http'). createServer (uygulama); io = gerektirir ('socket.io'). listen (sunucu); var SerialPort = required ("serialport") //. SerialPort
Şimdi COM bağlantı noktasını ve baud hızını ayarlayın. Windows'ta, her zaman numara uzantısıyla (COM6, COM4, COM24 vb.) COM olacağını unutmayın, bu nedenle aşağıda '/' sonrasında gerektiği gibi ayarlayın. Ayrıca buadrate ayarlayın.
var serialPort = new SerialPort ("/ COM4", {baudRate: 9600});
Sunucuyu 8080 bağlantı noktasından dinlemeye başlayın.
server.listen (8080);
Başlangıçta parlaklığı 0 olarak ayarlayın. Ardından parlaklık verilerini bir websocket modülü olan soket modülü ile IO'ya kilitleyin. Veriler, soket protokolü kullanılarak Web Arayüzü tarafından alınacaktır.
io.sockets.on ('bağlantı', işlev (soket) { socket.on ('led', işlev (veri) { parlaklık = data.value; var buf = new Buffer (1); buf.writeUInt8 (parlaklık, 0); serialPort.write (buf);
Şimdi soketten LED pinine gelen LED parlaklık değerini yayınlayın.
io.sockets.emit ('led', {değer: parlaklık}); }); socket.emit ('led', {değer: parlaklık}); });
Şimdi sadece hata ayıklamak için sonuna bir print ifadesi ekleyin. Console.log, Node.js'deki bir yazdırma ifadesidir.
console.log ("Web Sunucusu Başlatıldı Tarayıcınızda 'http: // localhost: 8080' e gidin.");
Şimdi aşağıdaki adımları izleyerek programı çalıştırmak için:
- Komut İstemi'ni Aç
- Locate “LED_Control” izleyerek klasörü 'cd' komutu
- 'Node bright_control.js' komutunu çalıştırın. Başarıyla yürütülürse, "Web Sunucusu Başladı Tarayıcınızda" http: // localhost: 8080 "e gidin. komutun hemen altında .
- Şimdi tarayıcınıza gidin ve url'ye "localhost: 8080" yazın.
- Parlaklığı değiştirmek için kaydırıcıyı 0-255 değerinden hareket ettirin.
Her iki bölümün tam kodu ve çalışma videosu aşağıya eklenmiştir. Ayrıca, herhangi bir şüpheniz veya öneriniz varsa, bize forum aracılığıyla veya aşağıdaki yorumlardan ulaşabilirsiniz. Tüm kod dosyaları da buradan indirilebilir.