Mündəricat:
- Təchizat
- Addım 1: Raspberry Pi Quraşdırması
- Addım 2: Bağlantı qurmaq və Yerli Şəbəkənizə Rpi Simsiz Bağlamaq
- Addım 3: Sensor DS18B20 (temperatur)-1 telli
- Addım 4: MCP3008 - Analog Algılama
- Addım 5: Avadanlıq
- Addım 6: Mariadb verilənlər bazası yaratmaq
- Addım 7: Github Kodu və Testi
- Addım 8: Boot Up -da kodu işə salın
- Addım 9: Veb sayt qurun
- Addım 10: İsteğe bağlı - Miniatür Prototip
Video: TheAir - Qaz Sensor Layihəsi: 10 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Karbonmonoksit və karbon qazı, CO və CO2 olaraq da bilinir. Qapalı bir otaqda yüksək konsentrasiyalarda olduqda rəngsiz, qoxusuz, dadsız və açıqca təhlükəli olan qazlar. Məsələn, pis təcrid olunmuş, yaxşı hava axını olmayan və hansısa səbəbdən bir tost tələbəsi tost edərkən qəribə bir səs çıxarır. Sonra bu qazlarla təmasda ola bilərsiniz və bu baş verdikdə ümid edirik ki, yalnız kiçik bir baş ağrısı ilə bitər, çünki yüksək konsentrasiyada sizi zəiflədə bilər və ya hətta öldürə bilər (çox nadir hallarda olsa da).
Buna görə də bu layihə ilə çıxış etməyə qərar verdim. Fikrim sadədir, hava axını etmək üçün fanatlardan istifadə edin. İçəridə yaxşı hava, pis havada belə demək mümkünsə. Əlavə fayda üçün əlavə bir temperatur sensoru, əllə aktivləşdirmə fanatları üçün düymə və kompüterdən statistikanı görmək və/və ya fanatları aktivləşdirmək istəyənlər üçün bir veb sayt əlavə etdim.
Tələbə, valideyn, tək insan və ya canlı varlıq olaraq. Bu, öz evinizin rahatlığında yaşayarkən ümumiyyətlə qarşısını almaq istədiyiniz bir şeydir. Bu, həyatını bir az asanlaşdırmaq istəyənlərə kömək edir.
Təchizat
- Raspberry Pi 3+
- Mini USB şarj cihazı 5V/2.5A
- Micro-sd kartı
-
Sensorlar
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (temperatur)
- 2 x 12V DC fan
- 2 x 2n2222 tranzistorlar
- LCD 16*2 ekran
- Düymə
- MCP3008
- Logi səviyyəsi çeviricisi
- Ethernet kabeli (quraşdırma səbəbləri üçün)
Addım 1: Raspberry Pi Quraşdırması
Rpi ilə işləmədən əvvəl bəzi proqramlara ehtiyacımız olacaq.
- WinSCP və ya FilleZilla (faylları kompüterinizdən Rpi -yə köçürmək istəyirsinizsə isteğe bağlı)
- Win32 disk və ya Etcher (daha çox istədiyiniz)
- Putty və ya MobaXterm (daha çox istədiyiniz)
- Masa üstü ilə raspbian şəkil
Başlamazdan əvvəl qeyd etmək istərdim ki, bu dərsliyi hazırlayarkən, digərindən üstün bir proqram seçdiyim zaman bunu tövsiyə etdiyimi ifadə etmir. Məsələn, etcher istifadə etməyi sevirəm, çünki daha çox istifadəçi dostu, lakin Win32 -də ehtiyat nüsxələrini çıxarmaq imkanı var. İndi sistemimdən çıxdı, başlayaq.
Wi -Fi şəbəkənizə bağlı bir Rpi varsa, 3 -cü addıma keçin.
Əvvəlcə Raspbian görüntüsünü sd kartınıza qoymaq üçün Etcher -dən istifadə edəcəyik. İndi sd kartı çıxarmazdan əvvəl, cmdline.txt sənədindəki şəkildəki bəzi "əşyaları" dəyişdirəcəyik.. Txt faylını açın -> Bu sətri "ip = 169.254.10.1" əlavə edin (tirnoq işarəsi yoxdur) sətrin sonuna (hamısı 1 sətirdə) -> Faylı saxla
İkincisi, açılış hissəsində "ssh" adlı boş bir qovluq yaradın (tırnak işarəsi olmadan).
Bundan sonra, Microsd -ı etibarlı şəkildə çıxara və Rpi -yə qoya bilərsiniz.
Sərt kodlu statik IP -nin səbəbi Rpi -yə qoşulmağı asanlaşdırmaqdır. Nədənsə Rpi -nin DHCP ilə bir ipi yoxdursa, statik ipdən asanlıqla istifadə edirsiniz.
Addım 2: Bağlantı qurmaq və Yerli Şəbəkənizə Rpi Simsiz Bağlamaq
Rpi'yi açacağıq -> Ethernet kabelini kompüterlə Rpi arasında bağlayın.
-
Putty -ə başlayın və bunu doldurun:
- Host Adı (və ya IP ünvanı): 169.254.10.1
- Liman: 22
-
Bir terminal açılır və standart istifadəçi adı və şifrəni yazırsınız:
- İstifadəçi adı: pi
- Şifrə: moruq
İndi yerli olaraq rpi -yə qoşulduğumuz üçün Rpi -nin Wi -Fi ilə əlaqəsi olmasını istəyirik.
- Əlavə: "sudo raspi-config" yazın
- Burada pi istifadəçisi üçün parol dəyişdirməlisiniz (təhlükəsizlik səbəbləri)
- Daha sonra Yerləşdirmə Seçimləri -> Vaxtı dəyişdir (doğru olanı seçin) -> Sonra Wifi Ölkəsinə gedin -> ölkəni seçin.
- Raspi-config-i bağlayın və yenidən başladın.
- Daxil olanda müvəqqəti olaraq özünü kök istifadəçi et -> sudo -i
-
Şəbəkənizi Rpi -yə əlavə etmək üçün bu əmri yazın (siyahının altındakı kod)
- parol = "parol" (tırnak işarələri ilə)
- Ad şəbəkəsi = "SSID"
- Double istifadə etməyi unutmayın >>! Vacibdir!
echo "parol" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
İndi yenidən başladın
Yenidən qoşulduqda yazaraq ipinizi yoxlayın:
ifconfig
və inetin yanında wlan0 yoxlayın.
İndi İnternet bağlantımız olduğu üçün "sürətli" bir yeniləmə edək.
sudo apt yeniləmə
sudo apt dist -upgrade -y
Bu bir az vaxt ala bilər.
Addım 3: Sensor DS18B20 (temperatur)-1 telli
Hər bir proyektdə, həmişə edilməli olan xüsusi bir şey olacaq və ya başqa bir anda işləməyəcək.
Bu dəfə 1 telli DS18B20 temperatur sensoru ilə sahibik, bunun səbəbini izah etməyəcəyəm, amma ən azı necə işləməyini izah edəcəyəm.
Bunun üçün gözəl mavi ekran olan Rpi-dəki raspi-konfiqurasiyasına qayıtmalıyıq.
- İnterfeys seçimlərinə keçin
- 1-Tel seçin və Aktivləşdir seçin.
Bitdi…
Sadəcə zarafat.
İndi /boot/config.txt faylını düzəltməliyik
sudo nano /boot/config.txt
Bu xətti aşağıya əlavə edin.
# Bir teli işə salın
dtoverlay = w1-gpio
İndi sudo bu şeyi yenidən başladın və artıq işimiz bitdi.
İşləyib -işləmədiyini yoxlamaq üçün sensoru Rpi -yə qoşun, sonra terminala qayıdın və bu kodu yazın (İstilik sensorunun necə bağlanacağı ilə bağlı növbəti addıma baxın).
cd/sys/bus/w1/cihazlar/w1_bus_master1
ls
Sol üstdə tünd mavi rəngli rəqəm və hərfləri olan bir şey görməlisiniz, github koduyla işləyəcəyimiz üçün bu məlumatı daha sonra yazdığınızdan əmin olun.
Nədənsə işləmirsə, daha dərinə gedən bu linki yoxlayın.
Addım 4: MCP3008 - Analog Algılama
İstilik sensoru üçün bir dəyişiklik etdiyimiz kimi, analoq məlumatlarda oxumalı olduğumuz üçün digər sensorlar üçün də bəzi dəyişikliklər etməliyik. MCP3008 -in lazımlı olduğu yerlərdə SPI interfeysini də dəyişdirməliyik.
sudo raspi-config
Arayüz Seçimlərinə gedin -> SPI seçin -> aktivləşdirin.
Sonra Bitirin.
Addım 5: Avadanlıq
Tamamilə Rpi ilə bitirməmişik, ancaq qurğunu bir araya gətirməyə başlaya bilərik.
Bəzi tövsiyələr, Rpi -ni partlatmadığınızdan əmin olmaq üçün bina qurarkən əlaqələrinizi hərtərəfli yoxlamaqdır.
Ayrıca, Şematik olaraq, eyni komponentdən 1 -dən çoxu ilə işləyəcəyimizə baxmayaraq, bəzi komponentlərin yalnız bir dəfə olduğunu görürsünüz. Sadəcə o komponenti qurma prosesini təkrarlamalı olduğunuz deməkdir. 1 kiçik istisna var, mq-x sensorlarının əlavə səviyyəli çeviriciyə və ya MCP3008-ə ehtiyacı yoxdur. Səviyyə çeviricisinə və MCP3008 -ə əlavə olaraq yaşıl bir kabel əlavə edin (pdf formatında).
Əlavə redaktə: Azarkeşlər bir keçid olaraq bir tranzistordan istifadə etməlidirlər. 1 fan üçün 2n2222A tranzistorundan istifadə edirəm, çünki 2 fanat ağır yük ola bilər.
Daha böyük bir cərəyanı idarə edə biləcək bir tranzistorunuz varsa, bu addımın son hissəsini atlayın.
Mənim kimi biriniz yoxdursa, bunu belə etməlisiniz, 1 fan = 1 tranzistor, 2 fan = 2 tranzistor və s. (Hər fan pdfdəki kimi öz tranzistor + dioddur).
Sonradan 7 -ci addımda backend_project -də app.py -yə bəzi kodlar əlavə etməlisiniz: Git kodu….
Addım 6: Mariadb verilənlər bazası yaratmaq
Başlıqdan da göründüyü kimi, sensor məlumatlarımızı saxlamaq üçün bir yerimiz olması üçün bir verilənlər bazası yaradacağıq.
Hər şeydən əvvəl, Rpi -də Mariadb yükləyin.
sudo apt-get mariadb-server quraşdırın
Quraşdırıldıqdan sonra istifadə edək.
mysql -u kökü
Şifrə boşdur, buna görə yazmaq üçün heç nə yoxdur. Enter düyməsini basın.
İndi bir istifadəçi yaradaq.
'Userdb' İSTİFADƏÇİ istifadəçi 'istifadəçisi'@'%' yarat;
BÜTÜN İSTİFADƏLƏRİ YERLƏDİRİN. *. * QRANT SEÇİMİ İLƏ 'istifadəçi'@'%' ÜÇÜN;
FLUSH İSTİFADƏLƏRİ;
Çıxmaq və xidməti tez yenidən başlatmaq üçün Ctrl + C düymələrinə basın:
sudo xidməti mysql yenidən başladın
İstifadəçi adı ilə daxil olun: istifadəçi və şifrə: userdb:
mysql -u istifadəçisi -p
İndi verilənlər bazası yaratmağın vaxtı gəldi.
DATABASE OLUN project_db VARSAYILAN XARAKTER SET utf8;
Project_db istifadə edin
"Tarixçi" (tarix deməkdir) cədvəli yaradın.
Mövcud olmadıqda Cədvəl yaradın `historiek` (` id` INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) NOT NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id`)) ENGINE = InnoDB;
Və voila, verilənlər bazası hazırlanır.
Addım 7: Github Kodu və Testi
Layihəmizin sonuna yaxınlaşırıq.
Kodu almadan əvvəl bəzi modulları Rpi -yə daxil etməliyik:
pip3 Flask_MySQL quraşdırın
pip3 flask-socketio qurun
pip3 qurmaq -U flask -cors
pip3 spidev quraşdırın
İndi işləməsi üçün koda ehtiyacımız var, terminala yazın:
git klonu
Qovluğun orada olub olmadığını yoxlayın:
ls
İndi 2 terminala ehtiyacınız olacaq, buna görə terminala sağ vurmaq və Dublikat seansları vurmaq əlverişlidir:
Cd əmrindən istifadə edərək backend_project və temperatura keçin.
İndi test məqsədləri üçün proqramlara başlamazdan əvvəl. Bəzi nömrələri yazmanız lazım olan 1 telli sensorla 3-cü addımı hələ də xatırlayırsınızmı? Əgər narahat olmasanız, yenidən 3 -cü addımda bir göz atın.
Bu nömrələri koda əlavə edəcəyik, çünki istifadə edərkən düzgün sensoru bilməsi lazımdır.
Temperatur qovluğu olan terminalda app.py tapacaqsınız. Açacağıq.
sudo nano app.py
"Def temperatuur ():" adlanan funksiyanı axtarın, orada "**" ni yazdığınız ədədlərlə əvəz etməli olacaqsınız. Mənim vəziyyətimdə bu kod xəttini alardım (hər nömrə unikaldır).
sensor_file_name = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave
Test müddəti. Həm backend_project, həm də temperatur qovluğunda hər iki terminal yazın:
python3 app.py
İndi 5 -ci addımı xatırlayın: birdən çox fanat və tranzistor istifadə edirsinizsə, kod əlavə etməyiniz lazım olan aparat?
Yaxşı, 5 -ci addıma qayıtmayın.
İndi backend_project -də app.py -də qeyd etdiyim kimi kod əlavə etməliyik. Bunu asanlaşdırmaq üçün kodda buna bir nümunə verdim. İçərisində "fan1" olan hər bir şərh kodu sətri və voilaya şərh yazmayın, indi 2 fan istifadə edə bilərsiniz.
Yalnız 2 azarkeşdən daha çox istifadə etmək istəyirsinizsə, eyni kodu başqa bir nömrəyə kopyalayın və yapışdırın. Bunun dezavantajı sizin üçün daha çox şəxsi işdir və daha az gpio.pins mövcuddur. Bunun mənim bildiyim heç bir üstünlüyü yoxdur.
Addım 8: Boot Up -da kodu işə salın
İstəyirik ki, bu 2 python skriptləri Rpi -in açıldığı anda işləsin və bir skript qəzaya uğrayarsa, öz -özünə yenidən başlamalıdır. Bunu etmək üçün 2 xidmət edəcəyik.
Bunu etmək üçün yazın:
sudo nano /etc/systemd/system/temperature.service
Bunu bir temperatur üçün kopyalayın və yapışdırın. Xidmət:
[Vahid] Təsvir = Sonra İstilik Xidməti = multi-user.target
Ziddiyyətlər [email protected]
[Xidmət] Növ = sadə
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
Standart Giriş = tty-force
Yenidən başladın = uğursuz oldu
RestartSec = 60s
[Yüklemek]
WantedBy = multi-user.target
Bağlayın və yenidən edin, amma sonra backend_project.service üçün:
İlk açıq mətn:
sudo nano /etc/systemd/system/backend_project.service
Sonra yenidən kopyalayın və yapışdırın:
[Bölmə] Təsvir = backend_project Xidməti
Sonra = multi-user.target
Ziddiyyətlər [email protected]
[Xidmət]
Növ = sadə
ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
Standart Giriş = tty-force
Yenidən başladın = uğursuz oldu
RestartSec = 60s
[Yüklemek]
WantedBy = multi-user.target
Saxla və bağla.
Son hissə bunu yazır:
sudo systemctl daemon-yenidən yüklə
sudo systemctl temperaturu təmin edir. xidmət sudo yenidən başladın
İndi 2 python skriptimiz açılışda avtomatik işləməlidir.
Addım 9: Veb sayt qurun
Anbarı yüklədiyiniz zaman, ön adlı bir qovluq da almalıydınız. Veb saytın məzmunu burada.
Qovluqdan istifadə etməzdən əvvəl əvvəlcə apache lazımdır. Apache üçün bu linkdəki təlimatı izləyin.
Hazır olanda. Ön qovluğun yerləşdiyi yerə gedin:
cd /Sənədlər /nmct-s2-project-1-TheryBrian
Sonra yazın:
sudo mv front/var/www/html
Bunu etdikdən sonra html qovluğuna gedin, yorucu bir işə hazırlayın (mənim günahım).
cd/var/www/html/
sonra ön qovluğa girin və hər şeyi html qovluğuna köçürməyə başlayın.
nümunə:
sudo mv css/var/www/html
Sonra ön qovluğu silin.
Və hər şeyi bitirdik.
Uğurlar:).
Addım 10: İsteğe bağlı - Miniatür Prototip
Səbəblərdən ötəri hər şeyin sifarişlə işlədiyini görmək üçün içərisindəki bütün avadanlıqları olan bir qutunun prototipini hazırladım.
Normalda bu layihə daha geniş miqyasda həyata keçirilərdi. Məsələn: bir otaq, bir ev, bir fabrik, bir mağaza və s.
Ancaq divarlarda deşik açmağa başlamazdan əvvəl (gözəl qafiyə). Əvvəlcə bunun sadəcə işlədiyini görmək istəyirik. Test üçün bir qutu düzəltməyə ehtiyac yoxdur, ancaq bir sənətkarlıq etmək həmişə əyləncəlidir.
Budur mənim nümunəm.
Tövsiyə:
Avtomatlaşdırılmış EKQ- BME 305 Final Layihəsi Əlavə Kredit: 7 Addım
Avtomatlaşdırılmış EKQ- BME 305 Final Layihəsi Əlavə Kredit: Ürək döyüntüsünün istehsal etdiyi elektrik siqnallarını ölçmək üçün elektrokardioqram (EKQ və ya EKQ) istifadə olunur və ürək-damar xəstəliklərinin diaqnozu və proqnozunda böyük rol oynayır. EKQ -dən əldə edilən bəzi məlumatlar ritmləri ehtiva edir
Avtomatlaşdırılmış Ev Yeməyi Bowl Layihəsi: 13 Addım
Avtomatlaşdırılmış Ev Yeməyi Bowl Layihəsi: Bu təlimatlı, qida qabları ilə birlikdə avtomatlaşdırılmış, proqramlaşdırıla bilən bir ev yemi qurucusunun necə qurulacağını təsvir edəcək və izah edəcək. Məhsulların necə işlədiyini və nəyə bənzədiyini göstərən bir videonu bura əlavə etdim
(IOT Layihəsi) ESP8266 və Openweather API -dən istifadə edərək Hava Məlumatlarını əldə edin: 5 addım
(IOT Layihəsi) ESP8266 və Openweather API -dən istifadə edərək Hava Məlumatlarını əldə edin: Bu təlimatda şəhərimizin hava məlumatlarını openweather.com/api saytından əldə edən və Qenerasiya proqramını istifadə edərək nümayiş etdirən sadə bir IOT layihəsi hazırlayacağıq
Menyu ilə Arduino DHT22 Sensor və Torpaq Nəmliyi Layihəsi: 4 Addım
Menyu ilə Arduino DHT22 Sensor və Torpaq Nəmliyi Layihəsi: Salam uşaqlar Bu gün sizə göstərişli ikinci layihəmi təqdim edirəm.Bu layihə, İstilik və rütubətin ölçülməsi üçün istifadə olunan Torpaq Nəmliyi sensoru və DHT22 sensoru istifadə etdiyim ilk layihəmi təqdim edir. . Bu layihə
Mənim qapımda kim var? PIR Motion Sensor/Range Sensor Layihəsi: 5 Addım
Kim mənim qapımdadır? PIR Motion Sensor/Range Sensor Project: Layihəmizin məqsədi PIR və məsafə sensorları vasitəsi ilə hərəkəti hiss etməkdir. Arduino kodu istifadəçiyə yaxın olduğunu bildirmək üçün vizual və səs siqnalı çıxaracaq. MATLAB kodu, istifadəçiyə birinin yaxın olduğunu bildirmək üçün am e -poçt siqnalı göndərəcək. Bu cihaz