İçindekiler:
- Adım 1: Donanımı Pi'ye Bağlama
- Adım 2: Ana Programların Kodlanması
- Adım 3: Veritabanını Oluşturma
- Adım 4: Donanım Kodlaması
- Adım 5: Harika İş
Video: Beargardian: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Hey çocuklar okul için bir proje için bir fikre ihtiyacım vardı. Ben de düşündüm ki, ahududu pi ile bir proje olmalı ve yerel. Birden aklıma harika bir fikir geldi ve bu fikre nasıl ulaştığımı sormayın ama bir bebek telsizi için yükseltme yapmayı düşündüm. Bu fikir hakkında bir saniye düşünün, çoğu bebek monitörü bebeğin odasını dinleme işlevine sahiptir.
Özellikler
- Ayarlanabilir renklerle küçük bir ışık gösterisi
- Size canlı görüntüler gösteren bir kamera
- Müzik çalmak için bir hoparlör
- Bebeğin hareketini algılayan sensörler
- Tüm bunlar bir web sitesinde gösteriliyor
Kısa bilgi
Bunu kısa bir versiyonda açıklayayım. Bu yüzden bir web sitesine ihtiyacımız var ve bu proje için Flask kullanıyorum, ayrıca bir veritabanına ihtiyacımız var ve mysql kullanıyorum, ayrıca donanımı çalıştıran bir betik ve bu python(3) ile ve son olarak bir sunucu kurulumuna ihtiyacımız var bu PI'de nginx olurdu.
Neye ihtiyacımız var
- Ahududu Pi 3
- Step motor 28BYJ
- Stepmotor sürücü çipi ULN2003 step modülü
- 3 dirençli 330Ohm ile bir rgb led
- Pi NoIR kamera V2
- Ultrasonik sensör HC-SR04
- ardiuno'dan mikro modül
- MAX98357A
- Bir hoparlör 8Ohm
- Ve bir ayı almayı unutma
Ahududu pi'yi kurun -------------------------------------------------- -------------------------------------------------- --------------------------
İlk önce Pi'yi kurmamız gerekiyor. Putty ile giriş yapmaya şimdiden başlayın, eğer Putty'niz yoksa bunu indirmenizi tavsiye ederim, sadece Pi'nin statik ip'ini ssh ile yazın ve onunla devam edin. Raspberry Pi'nizi kurmanız gerekiyorsa kötü bir haberim var, bunu bu projede anlatmıyorum.
Paketleri yükle
sudo uygun güncelleme
sudo apt kurulum -y python3-venv python3-pip python3-mysqldb mysql-sunucu uwsgi nginx uwsgi-plugin-python3
Sanal çevre
python3 -m pip kurulumu --upgrade pip kurulum araçları tekerleği sanalenv
mkdir {proje klasör adınız} && cd {proje klasör adınız} python3 -m venv --system-site-packages env source env/bin/activate python -m pip mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-bağlayıcı-python şifresi
Şimdi proje klasörünüzdeki git deposunu klonlamanız gerekiyor
github.com/NMCT-S2-Project-I/Project-I.git
Proje klasörünüze bakarsanız 5 klasör görmeniz gerekir.
- konf
- ortam
- sensör
- sql
- ağ
Veri tabanı
sudo systemctl durumu mysql
ss -lt | grep mysql sudo mysql
veritabanında tüm ayrıcalıklara sahip bir kullanıcı oluşturun ve veritabanınızı yapın
'parola' ile tanımlanan 'kullanıcı'@'localhost' kullanıcısını oluşturun;
veritabanınızı veritabanı adınızı oluşturun; veri tabanı adınız* üzerindeki tüm yetkileri hibe seçeneği ile 'user'@'localhost'a verin;
Sunucu için conf dosyaları
uwsgi-flask.ini'de 'module = …' öğesini 'module= web:app' olarak ve oluşturduğunuz virtualenv'inizin yolunu değiştirirsiniz. Diğer dosyalarda, dizininizin gerçek mutlak yollarına giden yolları değiştirmeniz gerekir.
Bunu anladıktan sonra dosyaları doğru yere ayarlayabilirsiniz.
sudo cp conf/project1-*.service /etc/systemd/system/
sudo systemctl arka plan programı-yeniden yükle sudo systemctl projeyi başlat1-* sudo systemctl durum projesi1-*
şimdi bunu kullanılabilir hale getirmeliyiz
sudo cp conf/nginx /etc/nginx/siteler kullanılabilir/proje1
sudo rm /etc/nginx/sites-etkin/varsayılan sudo ln -s /etc/nginx/sites-available/project1 /etc/nginx/sites-enabled/project1 sudo systemctl nginx.service yeniden başlat sudo nginx -t
Her şey yolunda gittiyse, bu komutla merhaba dünyanız olmalı
wget -qO - yerel ana bilgisayar
Tamamlandı ! Peki bu, sisteminizi çalıştırmanıza izin verecek kısım için…
Adım 1: Donanımı Pi'ye Bağlama
BCM'yi kullanma
ses MAX98357A
- BCK'den GPIO 18'e
- GPIO 21'e veri
- LRCK'den GPIO'ya 19
ışık
- GPIO 17'ye kırmızı
- GPIO 27'ye yeşil
- maviden GPIO 22'ye
motor modülü ULN2003
- pin 1'den GPIO 5'e
- pin 2'den GPIO 6'ya
- pin 3'ten GPIO 13'e
- pim 4'ten GPIO 26'ya
mikro
D0 - GPIO 21
ultrasonik sensör
- GPIO 16'ya tetikleme
- GPIO 20'ye yankı
Adım 2: Ana Programların Kodlanması
Burada ayrıntılara girmiyorum ama kodumu github'da kontrol edebilirsiniz.
Başlamak için html ve css, bir dizin, giriş, kayıt, ana ekran, müzik, addmusic, addbear, ışık, kamera, kamera ayarları, sensör, gösterge tablosu sayfası oluşturdum. Html dosyaları şablonlarda ve css dosyaları da static/css klasöründe olmalıdır. Css'i tamamen istediğiniz gibi özelleştirebilirsiniz.
Bu kısmı yaptıysanız, şişenizi ayarlamanız gerekir. Flask, merhaba dünyasının sadece bir örneğini kullanmak kolaydır
# ilk başta şişeyi içe aktar
şişeden içe aktarma * @app.route('/') def index(): render_template('index.html') döndür
Şimdi kodumda bu zaten doldurulmuş, yapmanız gereken tek şey veritabanı kullanıcısını ve şifresini sizden değiştirmek ve tabii ki github'da da bulabileceğiniz aynı veritabanını yapmak.
Adım 3: Veritabanını Oluşturma
Gerçek hayranlar için aynı veritabanını nasıl oluşturacağınızı anlatacağım.
Yani birinci adımda yapmadıysanız, önce veritabanını oluşturmamız gerekiyor.
Beargardian veritabanı oluşturmak;
Bunu yaptıktan sonra tabloları mysql tezgahında veya phpadmin'de yaratırsınız.
kullanıcı tablosu var
- Kullanıcı kimliği
- ilk adı
- Soyadı
- e-posta
- bebek ismi
- sha1 ile şifre
- kullanıcı klasörü
- oyun müziği (int)
- oyun ışığı (int)
- oynatma kaydı (int)
müzik masası var
- müzik kimliği
- şarkı
- yol
- kullanıcı klasörü
- durum
- Ses
kayıt tablosu var
- kayıt kimliği
- yol
- kullanıcı klasörü
- zaman
- gün
renk tablosu var
- renk kimliği
- kırmızı
- Yeşil
- Mavi
- parlaklık
- Kullanıcı kimliği
ayı masası var
- ayıKimliği (ondalık(8))
- kullanıcı kimliği varsayılanı boş
- ayı adı
sensör tablosu vardır
- sensör kimliği
- mesafe
- mikro
- ayı kimliği
- zaman
- gün
- uyku zamanı
Veritabanını başarıyla oluşturdunuz, şimdi donanıma geçelim.
Adım 4: Donanım Kodlaması
Biraz kod göstereceğim ve size neden böyle yaptığımı anlatacağım.
Başlangıç olarak iş parçacığı kullandım, bu projede mutlak bir zorunluluktur. İş parçacığı nedir, hmmm güzel soru! Python'da tehdit, aynı anda birden fazla program çalıştırmaktır. Yani örneğin rengi değiştirirseniz, kayıt da yapabilirsiniz. Merak etmeyin kullanımı kolaydır.
import _threaddef function_name(bir şey, bir şey_else): çalıştırılacak kod
_thread.start_new_thread(işlev_adı, tuple_with_the_functions_variables)
Programıma baktıysanız, logger.info('…') ifadesini gördünüz. Bu yazdırma işlevi ama çok daha iyi, çünkü Pi'de bir şeyler yazdıramazsınız, bu yüzden bir dosya hazırlayıp oraya yazdırırım. Bu kod ile log dosyasını ayarlayabilirsiniz.
logger = logging.getLogger(_name_)logger.setLevel(logging. INFO) # dosya işleyici oluştur = logging. FileHandler('logger.log') handler.setLevel(logging. INFO)
# bir günlük formatı oluştur
formatlayıcı = logging. Formatter('%(asctime)s - %(name)s - %(message)s') handler.setFormatter(formatter)
# işleyicileri kaydediciye ekleyin
logger.addHandler(işleyici)
logger.info('donanımı başlat\n------------------------------------------')
kodun kendisinde her şeyi açıklarım.
Önerilen:
Akıllı Motosiklet HUD Prototipi (adım adım Navigasyon ve Çok Daha Fazlası): 9 Adım
Akıllı Motosiklet HUD Prototipi (adım adım Navigasyon ve Çok Daha Fazlası): Merhaba !Bu Talimatlar, motosiklet kasklarına monte edilmek üzere tasarlanmış bir HUD (Heads-Up Display) platformunu nasıl tasarladığımın ve inşa ettiğimin hikayesidir. "Haritalar" yarışması bağlamında yazılmıştır. Maalesef tamamen bitiremedim
Arduino Araba Geri Geri Park Uyarı Sistemi - Adım Adım: 4 Adım
Arduino Araba Geri Geri Park Uyarı Sistemi | Adım Adım: Bu projede Arduino UNO ve HC-SR04 Ultrasonik Sensör kullanarak basit bir Arduino Araba Geri Park Sensörü Devresi tasarlayacağım. Bu Arduino tabanlı Araba Ters uyarı sistemi, Otonom Navigasyon, Robot Mesafesi ve diğer menzil r
Adım Adım PC Oluşturma: 9 Adım
Adım Adım Bilgisayar Oluşturma: Sarf Malzemeleri: Donanım: AnakartCPU & CPU soğutucusuPSU (Güç kaynağı ünitesi)Depolama (HDD/SSD)RAMGPU (gerekli değil)CaseTools: TornavidaESD bilezik/aplikatörlü matstermal macun
Üç Hoparlör Devresi -- Adım Adım Eğitim: 3 Adım
Üç Hoparlör Devresi || Adım Adım Eğitim: Hoparlör Devresi, ortamdan alınan ses sinyallerini MIC'e güçlendirir ve bunu, güçlendirilmiş sesin üretildiği Hoparlöre gönderir. Burada, size bu Hoparlör Devresini kullanarak bu Hoparlör Devresini yapmanın üç farklı yolunu göstereceğim:
Adım Adım Arduino Uno ile Akustik Kaldırma (8 adım): 8 Adım
Arduino Uno ile Akustik Kaldırma Adım Adım (8 adım): ultrasonik ses dönüştürücüler L298N erkek dc pinli Dc dişi adaptör güç kaynağı Arduino UNOBreadboardBu nasıl çalışır: İlk olarak, Arduino Uno'ya kod yüklersiniz (dijital ile donatılmış bir mikrodenetleyicidir) ve kodu dönüştürmek için analog bağlantı noktaları (C++)