Мазмуну:

Пайк - Коопсуз, Акылдуураак, Пике айдагыла !: 5 кадам
Пайк - Коопсуз, Акылдуураак, Пике айдагыла !: 5 кадам

Video: Пайк - Коопсуз, Акылдуураак, Пике айдагыла !: 5 кадам

Video: Пайк - Коопсуз, Акылдуураак, Пике айдагыла !: 5 кадам
Video: Дельта Волги. Каспий. Астраханский заповедник. Птичий рай. Половодье. Нерест рабы. Nature of Russia. 2024, Ноябрь
Anonim
Пайк - Коопсуз, Акылдуу, Пике айдаңыз!
Пайк - Коопсуз, Акылдуу, Пике айдаңыз!

Менин Пайк аттуу долбоорума кош келиңиздер!

Бул менин билимимдин бир бөлүгү катары долбоор. Мен Бельгиядагы Howest NMCT студентимин. Максаты Raspberry Pi менен акылдуу нерсени жасоо болчу. Бизде акылдуу болгубуз келген толук эркиндик бар болчу.

Мен үчүн велосипедди бир аз акылдуу кылуу оңой чечим болчу. Мен велосипед тебүү мени шаарга барган жериме тезирээк жеткирүүчү жерде жашайм.

Ошондой эле бир жолу велосипедим менен жыгылдым. Мен элжирегимди сындырдым. Мен жыгылдым, анткени мен артымдагы айдоочуну көрсөтүп, туура баргым келди. Жол тайгак болуп, рулду башкара албай калгандыктан рулду башкара албай калдым. Ошол себептен менин биринчи идеям велосипедге багыттоочу көрсөткүчтөрдү тиркөө болгон. Ал жерден мен дагы эмнени кошо алам деп ойлоно баштадым, андыктан GPS-тректи ойлоп таптым, ошондо сиз кайсы жолду басып өткөнүңүздү көрө аласыз.

Ошентип, Пайк эмне кыла алат?

Pike сиздин айдоо сессияларыңызды жаздырат. Бул сиз кайсы жолду басып өткөнүңүздү көзөмөлдөйт, ал сиздин орточо ылдамдыгыңызды жана айдаган аралыкты эсептеп берет. Ар бир сессиядан кийин веб -сайтка кирип, саякатыңыздын кайда жана кандай болгонун текшере аласыз. Биз дагы бир нерсени жаратабыз, ошондо сиз велосипедди ким минерин тандай аласыз, ошондо көбүрөөк адамдар сиздин Пайкаңызды каалашат!

1 -кадам: Бөлүктөр

Бөлүктөр
Бөлүктөр

Демек, албетте, менин долбоорумду кайра жаратуу үчүн эмне керек экенин билишиңиз керек. Баштоодон мурун, бул долбоор арзан эмес экенин айткым келет. Ошондой эле зымдарды жергиликтүү дүкөндөн сатып алдым, анын баасы өтө жогору болчу. Сиз аларды онлайнда бир нече еврого/долларга сатып алсаңыз болот (мен муну сунуштайм). Күткөнгө убактым жок болчу. Ошондуктан мен аларды жергиликтүү дүкөнүмдөн кымбат баада сатып алдым.

Соода тизмеси

- Raspberry Pi

- Jumper Cables

- Powerbank сиздин Пиңизге жетиштүү күч берсе эле жасай берет

- Maxxter Smartphone кармагычы (негизинен сиз таба аласыз эң арзан …)

- Maxxter Smartphone кармагычы (ак тегерекчелери менин пластикалык түтүктөрүмө ылайыкташуу үчүн абдан арзан)

- Пластикалык түтүктөр (рулга бекитүү үчүн смартфондун кармагычына туура келген баскычтарга туура келүүчү тешик бургуланган)

- Баскычтар*

- 6x 220 Ω резисторлор

- 1x 5K Ω каршылыгы

- LCD дисплей

- DS18B20 One Wire Температура Сенсору

- Adafruit GPS-модулу Ultimate Breakout 66 каналы

- GPS антеннасы - Тышкы активдүү антенна - 5 метр кабель SMA менен 3-5V 28db (GPS сигналын күчөтүү үчүн)

- uFLto SMA адаптери (кошумча антеннаны Adafruit GPS-модулуна туташтыруу үчүн)

Эскертүүлөр:

* Сүрөттөрдөн көрө тургандары металлдар, балким эң идеалдуу эмес, бирок алар менин жергиликтүү дүкөнүмдө болгон. Сиз толугу менен суу өткөрбөй турган баскычтарга бара аласыз, бирок алар 15 евро болчу, мен ойлогом бир топчуга кымбат. Сиз каалаган баскычты сатып алсаңыз болот, эгерде ал тартуу системасы менен иштесе, сиз жакшы болосуз.

2 -кадам: Баарын жибиңиз

Wire Up Up
Wire Up Up
Wire Up Up
Wire Up Up

Бул анча деле кыйын эмес. GPS модулу USB менен туташкандыктан. Түстөрдү USB адаптериндеги кабелдер менен дал келтире алаарыңызды жогорудагы сүрөттөн көрө аласыз. Баскычтар жана LEDлар 220 Ω туташтырылган. DS18B20 Температура сенсору 5K Ω резисторго чейин зымдуу.

3 -кадам: Келгиле, Raspberry Piңизди конфигурациялайлы

Келгиле, Raspberry Piңизди конфигурациялайбыз!
Келгиле, Raspberry Piңизди конфигурациялайбыз!

Алгач сизге бул жерде үйрөнө турган Raspbian керек болот, андан кийин бул репозиторийдеги кадамдарды аткарышыңыз керек.

Менин маалымат базасынын графиги минималдуу. Ал 4 таблицадан турат:

  1. tbluser

    1. UserID (tinyint, 2) AUTO INRREMENT, UNGIGNED
    2. Колдонуучунун аты (varchar, 175)
    3. UserLogin (varchar, 180)
    4. UserPassword (varchar, 255)
    5. UserActive (tinyint, 1) КОЛ КОЮЛБАЙТ
  2. tblsession

    1. SessionID (int, 10) AUTO INRREMENT, UNGIGRED
    2. SessionDate (дата)
    3. UserID
  3. tblsensor

    1. SensorID (tinyint, 3) АВТО КОШУУСУ, КОЛ КОЮЛБАЙТ
    2. SensorName (varchar, 150)
  4. tblhistory

    1. HistoryID (bigint, 20) AUTO INRREMENT, UNGIGRED
    2. SensorID
    3. SessionID
    4. HistoryValue (varchar, 255)
    5. HistoryTime (убакыт, 3)

Бирок сиз дагы.sql таштанды файлына көз чаптырсаңыз болот

4 -кадам: Келгиле коддоону баштайлы

Келгиле коддоону баштайлы
Келгиле коддоону баштайлы

Долбоордун иштеши үчүн менин кодумду бул жерден таба аласыз.

GPS

GPS модулу менен баштоо абдан жөнөкөй. Болгону, gpsd-py3 пакетин Python чөйрөңүзгө орнотууңуз керек. Анда бул китепкананы колдонуп, жашооңузду жеңилдете аласыз. Сиз GPSтен узун, кеңдик, ылдамдык ж.б. сыяктуу маалыматтарды алуу үчүн коддоо мисалдарын колдоно аласыз.

LCD-дисплей

ЖК дисплейдин иштеши үчүн Adafruitтен китепкананы орнотушуңуз керек. Коддоо мисалдарын бул жерден тапса болот.

DS18B20 One Wire Температура Сенсору

Бир зым сенсорун табуу үчүн дагы бир аз иштешиңиз керек болот. Биринчиден, биз бир зымдуу автобусту иштетишибиз керек. Бул үчүн кадамдарды аткарыңыз:

  1. sudo raspi-config
  2. Interfacing Options
  3. 1-зым

Сенсордон маалыматтарды окууну баштоо үчүн, биздин бир зымыбыздын кандайча аталышын билишибиз керек. Бул түргө cd/sys/bus/w1/devices/

Сиз эки түзмөктү көрөсүз, бири Raspberry Pi өзү, экинчиси 28-0 окшош болушу керек … Жана ошол узун сандар жана тамгалар Pythonдо маалыматтарды окуй аласыз. Pythonдогу маалыматтарды окуу үчүн аны файл катары ачышыңыз керек. Ошентип, файлды ачуу жолу мындай болушу керек:/sys/bus/w1/devices/28-04177032d4ff/w1_slave.

Баскычтар жана LED

Бул негизги функциялар, бул класстар папкасында менин кодумду карай аласыз.

SQL-билдирүүлөр

Дээрлик ар бир билдирүү негизги SQL билдирүүлөрү. Бирок мен сенсорлордун баалуулуктарын кантип сактап калганым боюнча бир аз түшүндүрмө бергим келет. Мен сенсорлорумду tblsensorsго кол менен коштум. Ошентип, мен кайсы сенсордо ID бар экенин билчүмүн. Ошентип, мен Longtitude, Latitude жана Менин Ылдамдыгымды көзөмөлдөп турам. Ар бир баалуулук үчүн мен башка функцияны жасадым. Мен жөн эле бирдей болгон 3 sql билдирүүлөрдү жасамакмын, бирок кайсы баалуулукту сактагым келгенине жараша WHERE билдирүүсүн өзгөрттүм.

Сунушталууда: