İçindekiler:

Home_X: 5 Adım
Home_X: 5 Adım

Video: Home_X: 5 Adım

Video: Home_X: 5 Adım
Video: Doğduğun Ev Kaderindir | 5. Bölüm 2024, Temmuz
Anonim
Home_X
Home_X

Howest Kortrijk'te Yeni Medya ve İletişim Teknolojisi (NMCT) okuyan bir öğrenciyim.

Hepimizin ahududu ve/veya Arduino üzerine kurulu bir proje yapması gerekiyordu. Verileri bir web sitesinde göstermek için sensörler ve veritabanları kullanmamız gerekiyordu ve o zaman mini bir akıllı ev yaratma fikri aklıma geldi.

Akıllı ev ile tüm sensör okumalarını web sitesinde görebileceksiniz.

Bu talimatta, bu projeyi kendiniz için yeniden oluşturabilmeniz için her adımda size rehberlik edeceğim.

Adım 1: Malzemeler: Neye İhtiyacınız Var?

  • Ahududu Pi
  • DHT22
  • Grove - Hava kalitesi sensörü
  • Grove - Gaz Sensörü(MQ2)
  • ekmek tahtası
  • Ahududu Pi T Ayakkabıcı
  • Erkek/Dişi Jumper Telleri
  • 5 mm LED'ler
  • dirençler
  • Ahşap ve aletler
  • Servo Motor
  • GrovePi+

Bu ürünleri çevrimiçi olarak (Ali ekspres, amazon, kivi elektroniği…) veya yerel mağazalarınızdan satın alabilirsiniz.

Mağazalara bağlantı içeren ayrıntılı bir parça listesi aşağıda Malzeme Listesinde verilmiştir.

Adım 2: Kablolama

kablolama
kablolama
kablolama
kablolama

Kablolamamın nasıl yapılması gerektiğine dair güzel bir genel bakış için kablolama için Fritzing kullandım. 2 sensörüm için kendim bir GrovePi+ kullandım. Bunu GrovePi+ olmadan yapmayı planlıyorsanız Fritzing şemasını takip edin. Sensörler sizin için çalışmıyor, farklı pinler kullanmayı deneyin.

Fritzing dosyasını aşağıda bulabilirsiniz.

Adım 3: MySQL Kullanan Veritabanı

MySQL Kullanan Veritabanı
MySQL Kullanan Veritabanı

Uygulamamız gereken en önemli görevlerden biri MySQL veritabanıyla bağlantı kurmaktı.

Bir sensör her okuma aldığında veya bir ışık yandığında, bu değişiklikleri veritabanında göreceksiniz.

Veritabanı daha sonra bu verileri web sitesine gönderir, böylece kullanıcı onları orada da görebilir.

Aşağıda, veritabanının nasıl çalıştığına dair genel bir bakışa sahip olduğunuz.xml dosyamı bulabilirsiniz, ama önce Raspberry Pi'ye MySQL ve flask kurmanız gerekiyor.

Sensörlerin kodlaması pycharm aracılığıyla gerçekleşti, bu yüzden onun da (bilgisayarınızda) kurulu olduğundan emin olun.

Öncelikle güncellemeleri kontrol etmeniz ve aşağıdaki gibi paketleri yüklemeniz gerekir:

sudo apt-get güncelleme && sudo apt-get yükseltme

sudo apt kurulum -y python3-venv python3-pip python3-mysqldb mariadb-sunucu uwsgi nginx uwsgi-plugin-python3

Şimdi sanal bir ortam kullanacağız:

me@my-rpi:~ $ python3 -m pip kurulumu --upgrade pip kurulum araçları tekerlek virtualenvme@my-rpi:~ $ mkdir proje1 && cd proje1 me@my-rpi:~/project1 $ python3 -m venv --system- site paketleri env me@my-rpi:~/project1 $ source env/bin/activate (env)me@my-rpi:~/project1 $ python -m pip kurulumu mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-bağlayıcı-python passlib

Size mariadb.service'in aktif olduğunu söylemelidir.

Şimdi, pycharm'da VCS> Sürüm Kontrolünden İçe Aktar> GitHub'a gidin ve https://github.com/NMCT-S2-Project-I/Project-I.git klonlayın.

Ardından, az önce oluşturduğunuz dizin için dağıtım yapılandırmasını yapılandırın, ör. /ev/ben/proje1.

Bu yapıldıktan sonra yorumlayıcı ayarlarına gidin ve az önce yaptığınız sanal ortamı yapılandırın, ör. /home/me/project/env/bin/python. Yol eşlemenin de doldurulması gerekir.

Tüm bunları yaptıysanız, veritabanı zaten çalışıyor olmalıdır.

sudo systemctl durumu mysql

Şimdi veritabanımız için kullanıcılar oluşturmamız gerekiyor, şöyle:

sudo mariadb

CREATE USER 'project-admin'@'localhost' 'adminpassword' TARAFINDAN TANIMLANIR; 'web şifresi' İLE TANIMLANAN 'project-web'@'localhost' KULLANICI OLUŞTURUN; CREATE USER 'project-sensor'@'localhost' 'sensorpassword' TARAFINDAN TANIMLANIR; VERİTABANI OLUŞTUR projesi;

PROJE ÜZERİNDEKİ TÜM AYRICALIKLARI GRANT OPTION İLE 'project-admin'@'localhost'a VERİN; PROJE SEÇİMİ, EKLE, GÜNCELLEME, SİLME VERİN.* 'project-web'@'localhost'a; SEÇİMİ, EKLE, GÜNCELLEME, SİL projede.* 'proje-sensörü'@'localhost' için; FLUSH AYRICALIKLARI;

Şimdi veritabanımızı pycharm'da görmek için bir bağlantı yapmamız gerekiyor.

Bunu Görünüm > Araç Pencereleri > Veritabanına gidip yeşil "artı" düğmesine tıklayarak yapabiliriz.

Veri Kaynağı > MySQL ve açılan Sürücüyü indir düğmesine (varsa) tıklayın.

Ardından SSH/SSL'ye gidin ve SSH'yi kontrol edin. Pi için ana bilgisayar/kullanıcı/şifreyi doldurun ve henüz doldurulmamışsa 22 numaralı bağlantı noktasını kullanın.

Pycharm'ın şifrenizi hatırlamasını istiyorsanız "Şifreyi hatırla" onay kutusunu işaretleyin.

Bağlantıyı test edebilmek için "Genel" sekmesinde, ana bilgisayardaki localhost, Veritabanındaki proje ve proje-yönetici parolasını kullanın.

Şimdi veritabanını kullanılabilir hale getirmek için aşağıya yerleştirdiğim.sql dosyasını çalıştırmanız gerekiyor. İçe aktarma seçeneğini kullanmayı deneyin, bir döküm dosyasını içe aktaramıyorsanız tabloları manuel olarak eklemeniz gerekir.

Bu yapıldıktan sonra, iki.service dosyasının bulunduğu conf dizinini bulmanız gerekir. Orada bulduğunuz her seb'i pi'nizde kullandığınız kullanıcının adıyla değiştirin. Ayrıca, grubun www-data olması gerekir.

Bir sonraki adım, bu hizmetleri pi'nizde şu şekilde başlatmaktır:

sudo cp conf/project-*.service /etc/systemd/system/

sudo systemctl arka plan programı yeniden yükleme

sudo systemctl projeyi başlat-*

sudo systemctl durum projesi-*

Her şey plana göre gittiğinde iki aktif hizmet görmelisiniz.

Son adım, nginx'i etkinleştirmektir.

İlk önce pi'nizde apache2 olup olmadığını kontrol edin, eğer kuruluysa, silin veya devre dışı bırakın.

nginx dosyasında önce uwsgi_pass'ı değiştirmeniz, ardından bu komutları çalıştırmanız gerekir.

sudo cp conf/nginx /etc/nginx/siteler kullanılabilir/proje

sudo rm /etc/nginx/siteler etkin/varsayılan

sudo ln -s /etc/nginx/siteler kullanılabilir/proje1/etc/nginx/siteler etkin/proje

sudo systemctl nginx.service'i yeniden başlat

sudo systemctl durumu nginx.service

Nginx aktif ve çalışıyor olmalıdır. Her şey doğruysa, artık pi'nizde sörf yapabilirsiniz. İlk başta "Merhaba dünya" göreceksiniz, ancak yine de o dosyanın içeriğini aşağıdaki kodumla değiştirmeniz gerekiyor.

Hizmetleri, pi başladığında otomatik olarak çalışacak şekilde etkinleştirebilirsiniz.

Tüm bunları yaptığınızda, veritabanına adresli en az 1 ev koyduğunuzdan emin olun. Bunu içine basit bir ekleme ile yapabilirsiniz.

Adım 4: Kodlama

kodlama
kodlama
kodlama
kodlama

Kodu Github üzerinden indirebilirsiniz:

github.com/NMCT-S2-Project-I/project-i-Tib…

Sensörlerin kodu, sensor.py dosyasında bulunur.

Düzgün çalışabilmeleri ve kodumu Pycharm'ınızdaki mevcut dosyalara yerleştirebilmeleri için hizmet dosyalarında adımı sizinkiyle (veya pi'nizde kullandığınızdan daha fazla kullanıcıyla) değiştirmeyi unutmayın.

Adım 5: Konut

Konut
Konut
Konut
Konut
Konut
Konut
Konut
Konut

Evimi nasıl istediğime dair hızlı bir çizim yaptım ama sizinki tamamen farklı görünebilir. Servonun bir pencere açıp kapatabilmesi için bir bütüne sahip olduğunuzdan emin olmalısınız.

Ahşabı kesmek için çoğunlukla küçük bir matkap ve testere kullandım. Ayrıca servolarımı içlerine yerleştirebilmem için duvarların yeterince kalın olduğundan emin oldum.

Tasarımınızı tamamladığınızda ve servo yerinde olduğunda, sadece sensörleri bağlamanız ve pi'yi evin içine yerleştirmeniz yeterlidir ve gitmeye hazırsınız.

Daha önce de bahsettiğim gibi eviniz benimkiyle birebir aynı görünebilir, sadece servo ve pencere için yer açmanız yeterli.

Sonunda projeyi bitirdiniz. Umarım bu rehber benim yaptığım gibi harika bir akıllı ev yapabilmeniz için yeterince açıktır.

İyi şanslar.

Önerilen: