İçindekiler:

Pike - Daha Güvenli Sürüş, Daha Akıllı Sürüş, Bir Pike Sürme!: 5 Adım
Pike - Daha Güvenli Sürüş, Daha Akıllı Sürüş, Bir Pike Sürme!: 5 Adım

Video: Pike - Daha Güvenli Sürüş, Daha Akıllı Sürüş, Bir Pike Sürme!: 5 Adım

Video: Pike - Daha Güvenli Sürüş, Daha Akıllı Sürüş, Bir Pike Sürme!: 5 Adım
Video: Elektrikli Bisiklet Kiralamış Geziyor #komik #eglence #shorts #baba #uygulama 2024, Kasım
Anonim
Pike - Daha Güvenli Sürüş, Daha Akıllı Sürüş, Bir Pike Sürme!
Pike - Daha Güvenli Sürüş, Daha Akıllı Sürüş, Bir Pike Sürme!

Pike adlı projeme hoş geldiniz!

Bu benim eğitimimin bir parçası olan bir proje. Belçika'da Howest'te NMCT öğrencisiyim. Amaç, bir Raspberry Pi kullanarak akıllı bir şey yapmaktı. Akıllı hale getirmek istediğimiz tam bir özgürlüğe sahiptik.

Benim için bisikletimi biraz daha akıllı hale getirmek kolay bir seçimdi. Bisiklete binmenin beni şehirdeki hedefime daha hızlı ulaştırdığı bir yerde yaşıyorum.

Ayrıca bir kez bisikletimle düştüm. Dirseğimi kırdım. Arkamdaki şoföre sağa gitmek istediğimi işaret ettiğim için düştüm. Yol kaygandı ve direksiyonda sadece bir elim olduğu için kontrolü kaybettim. Bu yüzden ilk fikrim bisikletime yön göstergeleri eklemek oldu. Oradan başka ne ekleyebileceğimi düşünmeye başladım, böylece daha sonra hangi rotayı izlediğinizi görebilmeniz için GPS izlemeyi buldum.

Peki Pike ne yapabilir?

Pike, sürüş seanslarınızın kaydını tutacaktır. Hangi rotayı izlediğinizi takip edecek, ortalama hızınızı ve kat ettiğiniz mesafeyi hesaplayacaktır. Her seanstan sonra, sürüşünüzün nerede ve nasıl olduğunu kontrol etmek için web sitesine giriş yapabilirsiniz. Ayrıca, bisiklete kimin bineceğini seçebilmeniz için bir şeyler yaratacağız, böylece daha fazla insan isterlerse Pike'ınızı kullanabilir!

Adım 1: Parçalar

Parçalar
Parçalar

Yani açıkçası projemi yeniden yaratmak için neye ihtiyacınız olduğunu bilmeniz gerekiyor. Başlamadan önce bu projenin tam olarak ucuz olmadığını söylemek isterim. Ayrıca yerel bir dükkandan aşırı pahalı teller satın aldım. Onları çevrimiçi olarak birkaç euro/dolar karşılığında satın alabilirsiniz (ki bunu yapmanızı tavsiye ederim). Bekleyecek zamanım yoktu. Bu yüzden onları yerel mağazamdan yüksek bir fiyata satın aldım.

alışveriş listesi

- Ahududu Pi

- Jumper Kabloları

- Powerbank, Pi'nize yeterli gücü verdiği sürece her şeyi yapar

- Maxxter Akıllı Telefon Tutucu (temelde bulabileceğiniz en ucuzu…)

- Maxxter Akıllı Telefon Tutucu (beyaz yuvarlak olanlar da plastik tüplerime sığması için çok ucuz)

- Plastik Borular (akıllı telefon tutucusuna takılan ve direksiyon simidine takmak üzere düğmelere uyacak şekilde bir delik açılmıştır)

- Düğmeler*

- 6x 220 Ω dirençler

- 1x 5K Ω direnç

- LCD ekran

- DS18B20 Tek Telli Sıcaklık Sensörü

- Adafruit GPS modülü Ultimate Breakout 66 Kanal

- GPS Anteni - Harici Aktif Anten - 5 metre kablolu SMA ile 3-5V 28db (GPS sinyalini yükseltmek için)

- uFLto SMA Adaptörü (Adafruit GPS modülüne ekstra anten bağlamak için)

Notlar:

* Resimlerde görecekleriniz metal olanlar, belki en idealleri değil ama bunlar benim mahallemde olanlardı. Tamamen su geçirmez düğmelere gidebilirsiniz, ancak bunlar bir düğme için pahalı olduğunu düşündüğüm bir parça 15 € idi. Çekme sistemiyle çalıştığı sürece istediğiniz düğmeyi satın alabilirsiniz, sorun olmaz.

Adım 2: Her Şeyi Kablolayın

Her Şeyi Kablolayın
Her Şeyi Kablolayın
Her Şeyi Kablolayın
Her Şeyi Kablolayın

O kadar zor değil. GPS modülü USB ile bağlı olduğundan. USB adaptörünün üzerindeki kablolar ile renkleri eşleştirebileceğinizi yukarıdaki resimde görebilirsiniz. Düğmeler ve LED'ler 220 Ω'a bağlanır. DS18B20 Sıcaklık sensörü, 5K Ω dirence kadar kablolanmıştır.

Adım 3: Raspberry Pi'nizi Yapılandıralım

Raspberry Pi'nizi Yapılandıralım!
Raspberry Pi'nizi Yapılandıralım!

Öncelikle burada öğrenebileceğiniz Raspbian'a ihtiyacınız olacak ve daha sonra bu depodaki adımları izlemeniz gerekecek.

Veritabanı programım minimum düzeyde çıktı. 4 tablo içerir:

  1. tblöser

    1. Kullanıcı Kimliği (tinyint, 2) OTOMATİK ARTIRMA, İMZASIZ
    2. KullanıcıAdı (varchar, 175)
    3. Kullanıcı Girişi (varchar, 180)
    4. Kullanıcı Şifresi (varchar, 255)
    5. UserActive (tinyint, 1) İMZASIZ
  2. tblsession

    1. SessionID (int, 10) OTOMATİK ARTIRMA, İMZASIZ
    2. OturumTarihi (tarih)
    3. Kullanıcı kimliği
  3. tblsensor

    1. SensorID (tinyint, 3) OTOMATİK ARTIRMA, İMZASIZ
    2. SensörAdı (varchar, 150)
  4. tblhistory

    1. HistoryID (büyük, 20) OTOMATİK ARTIRMA, İMZASIZ
    2. Sensör Kimliği
    3. Oturum kimliği
    4. GeçmişDeğeri (varchar, 255)
    5. GeçmişZaman (zaman, 3)

Ancak.sql döküm dosyasına da bir göz atabilirsiniz.

Adım 4: Kodlamaya Başlayalım

Kodlamaya Başlayalım
Kodlamaya Başlayalım

Projenin çalışması için kodumu burada bulabilirsiniz.

Küresel Konumlama Sistemi

GPS Modülünü kullanmaya başlamak gerçekten çok basit. Tek yapmanız gereken gpsd-py3 paketini Python Ortamınıza kurmak. O zaman hayatınızı kolaylaştırmak için bu kütüphaneyi kullanabilirsiniz. GPS'inizden boylam, enlem, hız vb. verileri almak için kodlama örneklerini kullanabilirsiniz.

LCD ekran

LCD Ekranın çalışması için Adafruit kütüphanesini kurmanız gerekiyor. Kodlama örnekleri burada bulunabilir.

DS18B20 Tek Telli Sıcaklık Sensörü

Tek kablolu sensörünüzü bulmak için biraz daha çalışmanız gerekecek. Öncelikle tek telli bus'ı etkinleştirmemiz gerekiyor. Bunu yapmak için aşağıdaki adımları izleyin:

  1. sudo raspi yapılandırması
  2. Arayüz Seçenekleri
  3. 1-Tel

Sensörden gelen verileri okumaya başlamak için tek kablomuzun nasıl çağrıldığını bilmemiz gerekir. Bu tip için cd /sys/bus/w1/devices/

İki cihaz göreceksiniz, biri Raspberry Pi'nin kendisi ve diğeri 28-0 gibi bir şeye benzemeli… vb. Bu uzun sayı ve harf dizisi Python'da verileri nasıl okuyabileceğinizdir. Python'daki verileri okumak için onu bir dosya olarak açmanız gerekir. Bu nedenle, dosyayı açma yolu şöyle görünmelidir: /sys/bus/w1/devices/28-04177032d4ff/w1_slave.

Düğmeler ve LED'ler

Bunlar temel işlevlerdir, bu Classes klasöründeki koduma bakabilirsiniz.

SQL-İfadeleri

Hemen hemen her ifade temel SQL ifadeleridir. Ancak sensörlerimin değerlerini nasıl kaydettiğim konusunda biraz açıklama yapmak istiyorum. Sensörlerimi tblsensörlerime manuel olarak ekledim. Böylece hangi sensörün hangi kimliğe sahip olduğunu biliyordum. Bu yüzden Boylam, Enlem ve Hızımı takip ediyorum. Her değer için farklı bir fonksiyon yaptım. Sadece aynı olan 3 sql ifadesi yapardım ama hangi değeri saklamak istediğime bağlı olarak WHERE ifadesini değiştirdim.

Önerilen: