İçindekiler:
- Gereçler
- Adım 1: Rasbian Kurulumu
- Adım 2: Kodu Almak ve Ayarlamak
- Adım 3: Arduino İletişimi
- Adım 4: Kablolama Değiştirin
- Adım 5: Kodu Çalıştırma
- Adım 6: (İSTEĞE BAĞLI) Muhafaza
Video: Switch-it, Gerçek Zamanlı Akım Ölçümlü Otomatik Çıkış: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Otomatizasyonu, bir şeyin ne zaman olması gerektiğini kontrol etme yeteneğini gerçekten seviyorum. Bana bu fikri getiren şey buydu: kendi kendine yapılan, otomatik bir çıkış. Işıkların ne zaman açılması gerektiğini, telefonların ne zaman şarj edilmesi gerektiğini veya bir ekrana ne zaman güç verilmesi gerektiğini planlamak için kullanılabilir. Tüm bunlara ek olarak, çıkıştan ne kadar akım geçtiğini görme olanağına sahipsiniz.
Bu proje için gerekli bileşenler şunlardır:
Gereçler
Başlamadan önce, benimki gibi bir Switch-IT kutusu oluşturmak için kesinlikle ihtiyacınız olacak şeyler bunlar. Bu sarf malzemeleri, bölgenize ve mevcut fiyatlara bağlı olarak yaklaşık 50 ila 100 avroya mal olacak.
Donanım
Elektronik
- Ahududu pi 4
- 16 gb (veya daha fazla) Mikro SD Kart
- Arduino Uno'su
- 5V-3.3V Seviye değiştirici
- 5V röle modülü
- ACS712 20A - akım modülü
- 1838 IR-Alıcı 37,9 kHz modülü
- IR uzaktan kumanda (Bir Elegoo kullanıyorum)
- ortak katot RGB
- 3*330Ω dirençler
- butona basınız
- RFID-RC522
- LCD 1602A-1
- Niko duvar prizi
- 10K Ω potmetre
- 230 - 5V - 7A güç kaynağı
kablolar
- USB-B'den USB-A'ya kablo
- USB-C güç kablosu
- Ethernet kablosu
Çeşitli
- Erkek-Dişi Jumperwires
- Erkek-Erkek Jumperwires
- lehim kalay
- küçülen tüp
Kasaya özel parçalar (İSTEĞE BAĞLI)
- 50 * fındık ve kalın harfler
- metal kasa 40x40x5 cm kapaklı
- çift taraflı bant
- 6*1 cm yüksek ara parçalar
- led tutucu
- cırt cırt Bant
- kablo kılavuzları
Yazılım
- balenaEtcher:
- Macun
- arapça
- Visual Studio Kodu
- Arduino IDE'si
Adım 1: Rasbian Kurulumu
Her şeyden önce Rasbian'ı SD-Karta aktaracağız. Bunu balenaEtcher kullanarak yapacağız.
- BalenaEtcher'ı açın
- Rasbian Resmini Seçin
- SD Kartınızı seçin
- Flash'a basın ve yanıp sönene kadar birkaç dakika bekleyin
APIPA'yı önyükleme dizinine ekleme: RPI'daki ayarları programlamak ve yapılandırmak için bir APIPA adresi kullanacağız. Bunu yapmak için:
- SD Karttaki önyükleme dizinine erişir
- "cmdline.txt" dosyasını açın
- Belgenin sonuna "169.254.10.1" ekleyin ve kaydedin
- Önyükleme dizinine "ssh" adlı bir dosya ekleyin (BU DOSYAYA UZANTI VERMEYİN)
- Bunu yaptıktan sonra SD Kartı PC'nizden çıkarabilirsiniz.
PuTTy kullanarak RPI'ye erişir
Artık SD kartı RPI'ımıza takabiliriz, RPI'yi bir ethernet kablosu kullanarak PC'nize bağlayabiliriz.
RPI'ye bağlanmak için APIPA adresimizle PuTTy kullanacağız.
- PuTTy'yi açın
- APIPA adresimizi ana bilgisayar adı olarak girin (169.254.10.1)
- Bağlantı noktasının 22 olduğundan ve SSH'nin seçildiğinden emin olun
- Şimdi bağlantıyı açabilirsiniz
- Varsayılan kullanıcı adı: pi
- Varsayılan şifre ile: ahududu
raspi yapılandırma ayarları
Raspi-config'i aşağıdakileri kullanarak açın:
sudo raspi yapılandırması
- Kullanıcı şifresini değiştir
- Yerelleştirme seçeneklerinde saat diliminizi seçin
- Ağ seçeneklerini ve ardından SSID'nizi ve Parolanızı girmeniz gereken Wi-Fi seçeneğini kullanarak WiFi'yi kurun.
Python 3'ü yükleyin
Bu projede Python kullanıyoruz, bu nedenle aşağıdaki komutları kullanarak varsayılanı Python2 yerine Python3 olarak ayarlayacağız.
güncelleme alternatifleri --install /usr/bin/python python /usr/bin/python2.7 1
güncelleme alternatifleri --install /usr/bin/python python /usr/bin/python3 2
Python paketleri
Her şeyin düzgün çalışmasını sağlamak için birkaç pakete ihtiyacımız olacak, özellikle Flask paketleri ve bir tanesi Veritabanımızla bağlantı kurmak için. Bu paketleri aşağıdaki komutları kullanarak kurabiliriz:
pip yükleme Şişesi
pip Flask_cors kurulumu pip Flask_socketio kurulumu pip Python-mysql-connecton kurulumu
Veri tabanı
Sırada veritabanı yönetim sistemimizi (MariaDB) kuracağız, bunu kullanarak yapacağız:
sudo apt mariadb sunucusunu kurun
Devam etmek için “Y” yazın ve Enter'a basın. Birkaç saniye sonra kurulum işlemi tamamlanır ve MariaDB neredeyse kullanıma hazırdır.
Veritabanına bir parola vermek için şu komutu kullanın:
sudo mysql_secure_installation
Ardından, geçerli parola boş olduğundan Enter'a basın. Ardından bir şifre belirlemek için "Y" tuşuna basın, şimdi istediğiniz şifreyi girebilirsiniz, bunu hatırladığınızdan emin olun çünkü arka ve ön uç arasında doğru bir bağlantı kurmamız gerekiyor.
Şimdi, 3 kez "Y" tuşuna basarak: anonim kullanıcıları kaldırın, uzaktan root girişine izin vermeyin ve test veritabanını kaldırın. Son olarak, ayrıcalıkları yeniden yüklemek için tekrar “Y” tuşuna basın.
Şimdi MariaDB ve gerekli tüm paketler başarıyla kuruldu.
Adım 2: Kodu Almak ve Ayarlamak
Artık tüm paketleri yüklediğimize göre kodu alabiliriz.
Kod Github'da mevcuttur, böylece şunu kullanarak klonlayabilirsiniz:
git klon
Bu ön uç
git klon
Bu arka uç
Veritabanının kendisini yükleme
Veritabanını kurmak için aşağıdaki komutları kullanarak arka uç klasöründe bulunan.sql dosyasına gidin (kendi yolunuza ayarladığınızdan emin olun.
mysql
veritabanı anahtarı oluştur mysql'den çık -u root -p switchit < Your_Path_to_Backend_Repo/switchit.sql
Apache'yi Yükleme
Artık tüm koda ve veritabanı kurulumuna sahip olduğumuza göre Apache'yi kurabilir ve arka uçumuzu üzerinde çalıştırabiliriz. Bunu kullanarak yapacağız:
apt-get install apache2 -y
Ardından /var/ww/html içindeki dosyaları, ön uç klasöründeki klasördekilerle değiştirin.
Her şey yolunda giderse, tarayıcınızdaki APIPA adresini kullanarak web sitenize bağlanabilmeniz gerekir: 169.254.10.1.
Adım 3: Arduino İletişimi
Mevcut sensörümüzü ve RFID sensörümüzü okumak için bir arduino kullanıyoruz, bunu yapmak için aşağıda verilen arduino kodunu kullanın. Bir USB-A - USB-B kablosu ve arduino IDE yazılımı kullanarak yükleyin. Yüklendiğinde arduino kısmı yapılır.
Şimdi PI'de seri cihaz adını bulmalıyız. Bunu yapmak için /boot/config.txt dosyasında "enable_uart=1" öğesinin doğru ayarlandığından emin olun. Ayrıca "console=serial0, 115200" ifadesinin cmdline.txt dosyasından kaldırıldığından emin olun.
Ardından kullanarak bağlantı noktalarını kontrol edin.
ls -l /dev
O zaman seri adlarından biri Arduino olmalıdır. Bu adı app.py'deki arduinocom işlevinde doldurun
ser = seri. Serial('/dev/ttyS0', 9600)
Bunu yalnızca seri iletişim çalışmıyorsa yapın.
Adım 4: Kablolama Değiştirin
Her şeyi kablolamak oldukça basittir, ancak aşağıdakileri aklınızda tutmanız gerekir:
- Duvar prizine dikkat edin, 230 volt ölümcül olabilir.
- RPI ve Arduino arasındaki iletişim için seviye dönüştürücü kullandığınızdan emin olun.
- RGB'yi lehimlemeden önce Kırmızı ve Yeşil pimi kullandığınızdan emin olun. Bunu önceden test edin!
- Devreye güç vermeden ÖNCE hiçbir şeyin kısa devre olup olmadığını test edin.
Adım 5: Kodu Çalıştırma
Artık her şey doğru bir şekilde bağlandı ve programımızı çalıştırabiliriz.
Başlangıçta otomatik olarak çalışmasını sağlamak için aşağıdakileri kullanarak bir dosya oluşturun:
sudo nano myscript.service
Ardından yapıştırın (kendi app.py dizininizi kullandığınızdan emin olun:
[Unit]Description=Sonra Geçiş Yap=network.target [Servis] ExecStart=/usr/bin/python3 -u app.py WorkingDirectory=//app.py dizinine geç// StandardOutput=StandardError'ı devral=Restart'ı devral=her zaman Kullanıcı= pi [Yükle] WantedBy=çok kullanıcılı.target
Ardından "ctrl + X" tuşlarına basın ve /etc/systemd/system dizinine kopyalayın.
Ardından, otomatik olarak çalışmasını sağlamak için aşağıdaki komut:
sudo systemctl myscript.service'i etkinleştir
Bununla ilgili daha fazla bilgiyi RaspBerry Pi sitesinde bulabilirsiniz.
Yeniden başlat ve bitti
Şimdi aşağıdakileri kullanarak PI'nizi yeniden başlatın:
sudo yeniden başlat -h şimdi
Switch-it'i bu şekilde yaparsınız!
Takip ettiğiniz için teşekkürler, umarım bu yardımcı olmuştur. Herhangi bir ipucunuz veya geri bildiriminiz varsa, yorum bırakmaktan çekinmeyin.
Adım 6: (İSTEĞE BAĞLI) Muhafaza
Konutu tamamen kendi zevkinize göre inşa edebilirsiniz. Ben 40x40x5 cm ebadında kapaklı metal bir kasa kullandım. Metal bir tane kullandığım için, her şeyi zemin plakasından çıkarmak için delikler açmam ve ara parçaları kullanmam gerekiyordu. 5V, 3.3V ve gnd'nin mevcut olduğu merkezi bir nokta kullanmayı seçtim. Her elektrik bağlantısı, üzerinde bir parça Shrink Tube ile lehimlenmiştir. Kablo yönetimini yapmak için taşıyıcı kayışlı pedler kullandım.
Önerilen:
Gerçek Zamanlı Saat Modülü (DS3231) Nasıl Kullanılır: 5 Adım
Gerçek Zamanlı Saat Modülü (DS3231) Nasıl Kullanılır: DS3231, entegre sıcaklık telafili kristal osilatör (TCXO) ve kristal ile düşük maliyetli, son derece hassas bir I2C gerçek zamanlı saattir (RTC). Cihaz bir pil girişi içerir ve ana güç bu cihaza geldiğinde doğru zaman işleyişini korur
Raspberry Pi ve OpenCV Kullanan Gerçek Zamanlı Rubik Küp Gözü Kapalı Çözücü: 4 Adım
Raspberry Pi ve OpenCV Kullanan Gerçek Zamanlı Rubik Küp Gözü Kör Çözücü: Bu, Rubik küp aracının gözü kapalı çözmek için yapılmış 2. versiyonudur. 1. sürüm javascript ile geliştirilmiştir, RubiksCubeBlindfolded1 projesini görebilirsiniz, öncekinden farklı olarak, bu sürüm renkleri algılamak için OpenCV kütüphanesini kullanır ve e
Gerçek Zamanlı Kuyu Suyu Seviye Ölçer: 6 Adım (Resimlerle)
Gerçek Zamanlı Bir Kuyu Su Seviyesi Ölçer: Bu talimatlar, kazılmış kuyularda kullanım için düşük maliyetli, gerçek zamanlı bir su seviyesi ölçerin nasıl oluşturulacağını açıklar. Su seviyesi ölçer, kazılmış bir kuyuya asılmak, günde bir kez su seviyesini ölçmek ve verileri WiFi veya hücresel bağlantı ile göndermek için tasarlanmıştır
(Alternatif Akım ve Doğru Akım) Arasındaki Fark: 13 Adım
(Alternatif Akım ve Doğru Akım) Arasındaki Fark: Herkes elektriğin çoğunlukla DC olduğunu bilir, peki ya başka bir elektrik türü? Ac'ı tanıyor musun? AC'nin açılımı nedir? DC'den sonra kullanılabilir mi? Bu çalışmada elektrik türleri, kaynaklar, uygulamalar arasındaki farkı bileceğiz
Java Kullanarak DS3231 RTC'yi (Gerçek Zamanlı Saat) Doğru, Hızlı ve Otomatik Olarak Ayarlama (+-1s): 3 Adım
Java Kullanarak DS3231 RTC'yi (Gerçek Zamanlı Saati) Doğru, Hızlı ve Otomatik Olarak Ayarlama (+-1s): Bu Talimat, bir Arduino ve kullanan küçük bir Java uygulaması kullanarak bir DS3231 Gerçek Zamanlı Saatte saati nasıl ayarlayacağınızı gösterecektir. Arduino'nun seri bağlantısı.Bu programın temel mantığı:1. Arduino bir seri istek gönderir