Obsah:

TheAir - projekt senzora plynu: 10 krokov
TheAir - projekt senzora plynu: 10 krokov

Video: TheAir - projekt senzora plynu: 10 krokov

Video: TheAir - projekt senzora plynu: 10 krokov
Video: 10 лет в Японии: Что изменилось? Отвечаю на популярные вопросы! 2024, Júl
Anonim
Projekt senzora vzduchu - plynu
Projekt senzora vzduchu - plynu

Oxid uhoľnatý a oxid uhličitý, tiež známy ako CO a CO2. Plyny, ktoré sú vo vysokých koncentráciách v uzavretej miestnosti bezfarebné, bez zápachu, bez chuti a úprimne povedané, nebezpečné. Ak žijete, povedzme napríklad v študentskej izbe, ktorá je zle izolovaná, nemá dobré prúdenie vzduchu a z nejakého dôvodu hriankovač pri prípitku vydáva zvláštny zvuk. Potom môžete prísť do kontaktu s týmito plynmi a keď sa to stane, dúfajme, že to skončí len malou bolesťou hlavy, pretože vo vysokej koncentrácii vás to môže spôsobiť neschopnosť alebo dokonca zabiť (aj keď veľmi zriedka).

Preto som sa rozhodol prísť s týmto projektom. Moja myšlienka je jednoduchá. Na prúdenie vzduchu použite ventilátory. Dobrý vzduch dovnútra a zlý vzduch, aby som tak povedal. Pre väčšiu užitočnosť som pridal dodatočný snímač teploty, tlačidlo pre ventilátory s manuálnou aktiváciou a tiež webovú stránku pre tých, ktorí radi vidia štatistiky a/alebo aktivujú ventilátory zo svojho počítača.

Ako študent, rodič, osamelá osoba alebo živá bytosť. To je niečo, čomu by ste sa za normálnych okolností chceli vyhnúť, keď žijete v pohodlí vlastného domu. Pomáha to tým, ktorí si chcú trochu uľahčiť život.

Zásoby

  • Raspberry Pi 3+
  • Mini-USB nabíjačka 5V/2,5A
  • Karta micro-sd
  • Senzory

    • MQ-7 (CO)
    • MQ-135 (CO2)
    • DS18B20 (teplota)
  • 2 x 12V DC ventilátor
  • 2 x 2n2222 tranzistory
  • LCD 16*2 displej
  • Tlačidlo
  • MCP3008
  • Konvertor úrovne logi
  • Ethernetový kábel (z dôvodov nastavenia)

Krok 1: Nastavenie Raspberry Pi

Nastavenie Raspberry Pi
Nastavenie Raspberry Pi
Nastavenie Raspberry Pi
Nastavenie Raspberry Pi

Pred prácou s Rpi budeme potrebovať nejaký softvér.

  • WinSCP alebo FilleZilla (voliteľné, ak chcete prenášať súbory z počítača do Rpi)
  • Disk Win32 alebo Etcher (ktorému dávate prednosť)
  • Tmel alebo MobaXterm (ktorým dávate prednosť)
  • Obraz Raspbian s počítačom

Skôr ako začnem, chcel by som spomenúť, že keď robím tento tutoriál, keď vyberiem program nad druhým, neznamená to, že ho odporúčam. Rád napríklad používam etcher, pretože je užívateľsky prívetivejší, ale Win32 má možnosť vytvárať zálohy. Teraz to nie je v mojom systéme, môžeme začať.

Ak už máte zariadenie Rpi, ktoré je pripojené k vašej sieti Wi -Fi, prejdite na krok 3.

Najprv použijeme Etcher na vloženie obrázku Raspbian na vašu SD kartu. Teraz, než vytiahneme kartu SD, zmeníme niektoré „veci“v súbore cmdline.txt, ktorý nájdete na obrázku. Otvorte súbor.txt -> Pridajte tento riadok "ip = 169.254.10.1" (bez úvodzoviek) na koniec riadka (všetko na 1 riadok) -> Uložiť súbor

Za druhé, vytvorte v zavádzacej oblasti prázdny priečinok s názvom „ssh“(bez úvodzoviek).

Potom môžete Microsd bezpečne vysunúť a vložiť do Rpi.

Dôvodom pevne zakódovanej statickej IP je uľahčenie pripojenia k Rpi. Ak z nejakého dôvodu Rpi nemá ip s DHCP, potom ľahko použijete statický ip.

Krok 2: Vytvorenie pripojenia a pripojenie Rpi Wireless k vašej miestnej sieti

Vytvorenie pripojenia a bezdrôtové pripojenie Rpi k miestnej sieti
Vytvorenie pripojenia a bezdrôtové pripojenie Rpi k miestnej sieti
Vytvorenie pripojenia a bezdrôtové pripojenie Rpi k vašej miestnej sieti
Vytvorenie pripojenia a bezdrôtové pripojenie Rpi k vašej miestnej sieti
Vytvorenie pripojenia a bezdrôtové pripojenie Rpi k vašej miestnej sieti
Vytvorenie pripojenia a bezdrôtové pripojenie Rpi k vašej miestnej sieti
Vytvorenie pripojenia a bezdrôtové pripojenie Rpi k miestnej sieti
Vytvorenie pripojenia a bezdrôtové pripojenie Rpi k miestnej sieti

Spustíme Rpi -> pripojte ethernetový kábel medzi počítačom a Rpi.

  1. Spustite tmel a vyplňte toto:

    • Názov hostiteľa (alebo adresa IP): 169.254.10.1
    • Prístav: 22
  2. Vyskočí terminál a zadáte predvolené používateľské meno a heslo:

    • Používateľské meno: pi
    • Heslo: malina

Teraz, keď sme lokálne pripojení k rpi, chceme, aby malo Rpi pripojenie k vašej wifi.

  1. Extra: zadajte „sudo raspi-config“
  2. Tu budete musieť zmeniť heslo pre používateľa pí (bezpečnostné dôvody)
  3. Potom prejdite na Možnosti lokalizácie -> Zmeniť čas (vyberte správny) -> Potom prejdite na položku Krajina Wi -Fi -> vyberte krajinu.
  4. Zatvorte raspi-config a reštartujte počítač.
  5. Po prihlásení sa dočasne stanete používateľom root -> sudo -i
  6. Napíšte tento príkaz a pridajte svoju sieť do Rpi (kód nižšie v zozname)

    • heslo = "heslo" (s úvodzovkami)
    • Názov siete = "SSID"
    • Nezabudnite použiť dvojité >>! Dôležité!

echo „heslo“| wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

Teraz reštartujte znova

Pri opätovnom pripájaní skontrolujte svoju IP zadaním:

ifconfig

a skontrolujte wlan0, vedľa inet.

Teraz, keď máme internetové pripojenie, urobme „rýchlu“aktualizáciu.

sudo apt aktualizácia

sudo apt dist -upgrade -y

Môže to chvíľu trvať.

Krok 3: Snímač DS18B20 (teplota)-1-vodičový

Senzor DS18B20 (teplota)-1-vodičový
Senzor DS18B20 (teplota)-1-vodičový
Senzor DS18B20 (teplota)-1-vodičový
Senzor DS18B20 (teplota)-1-vodičový

Pri každom projekte vždy existuje niečo špeciálne, čo je potrebné urobiť, inak to nebude fungovať.

Tentokrát to máme s teplotným snímačom DS18B20, ktorý vyžaduje 1-vodičový, čo nebudem vysvetľovať prečo, ale vysvetlím, ako to prinajmenšom fungovať.

Za týmto účelom sa musíme vrátiť k raspi-config na Rpi, peknej modrej obrazovke.

  1. Prejdite na Možnosti rozhrania
  2. Vyberte 1-Wire a zvoľte povoliť.

Hotový…

Robím si srandu.

Teraz budeme musieť upraviť súbor /boot/config.txt

sudo nano /boot/config.txt

Pridajte tento riadok do spodnej časti.

# Povoliť onewire

dtoverlay = w1-gpio

Teraz sudo reštartujte túto vec a teraz sme hotoví.

Ak chcete skontrolovať, či funguje, pripojte snímač k Rpi, potom sa vráťte k terminálu a zadajte tento kód (Informácie o pripojení snímača teploty nájdete v nasledujúcom kroku Hardvér).

cd/sys/bus/w1/devices/w1_bus_master1

ls

Vľavo hore by ste mali vidieť niečo s číslami a písmenami v tmavo modrej farbe. Tieto informácie si napíšte na neskôr, keď budeme pracovať s kódom z github.

Ak z nejakého dôvodu nefunguje, pozrite sa na tento odkaz, ktorý do neho ide hlbšie.

Krok 4: MCP3008 - Analógové snímanie

MCP3008 - Analógové snímanie
MCP3008 - Analógové snímanie
MCP3008 - Analógové snímanie
MCP3008 - Analógové snímanie

Keď sme vykonali zmenu na teplotnom senzore, musíme urobiť aj zmeny na ostatných snímačoch, pretože musíme načítať analógové údaje. V tomto bode, keď nám MCP3008 príde vhod, musíme tiež zmeniť rozhranie SPI.

sudo raspi-config

Prejdite na Možnosti rozhrania -> Vybrať SPI -> povoliť.

Potom Dokončiť.

Krok 5: Hardvér

Nie sme úplne hotoví s Rpi, ale dosť na to, aby sme mohli začať stavať a dávať dohromady hardvér.

Niekoľko rád je, aby ste pri stavbe dôkladne skontrolovali svoje spojenia, aby ste sa ubezpečili, že … nevystrelíte Rpi.

V schéme si tiež všimnete, že niektoré komponenty sú na nej iba raz, aj keď budeme pracovať s viac ako 1 rovnakou súčasťou. Znamená to len, že musíte zopakovať ten istý proces budovania 1 komponentu. Existuje 1 malá výnimka, senzory mq-x nepotrebujú prídavný prevodník úrovní alebo MCP3008. Stačí pridať dodatočný zelený kábel (v pdf) k prevodníku úrovní a MCP3008.

Extra úprava: Fanúšikovia musia používať ako spínač tranzistor. Na 1 ventilátor používam tranzistor 2n2222A, pretože 2 ventilátory môžu byť veľmi ťažké.

Ak máte tranzistor, ktorý zvládne väčší prúd, potom dobrý, preskočte poslednú časť tohto kroku.

Ak nemáte taký ako ja, budete to musieť urobiť takto: 1 ventilátor = 1 tranzistor, 2 ventilátory = 2 tranzistory atď. (Každý ventilátor má vlastný tranzistor + diódu ako v pdf).

Tiež budete musieť pridať nejaký kód do app.py v backend_project neskôr v kroku 7: Git kód ….

Krok 6: Vytvorenie databázy Mariadb

Vytvorenie databázy Mariadb
Vytvorenie databázy Mariadb

Ako naznačuje názov, vytvoríme databázu, aby sme mali kam ukladať údaje zo senzorov.

Najprv si stiahnite Mariadb na Rpi.

sudo apt-get install mariadb-server

Po inštalácii ho použijeme.

mysql -u koreň

Heslo je prázdne, takže nemusíte nič písať. Stlačte Enter.

Teraz vytvoríme používateľa.

VYTVORIŤ UŽÍVATEĽA 'user'@'%' IDENTIFIKOVANÉ 'userdb';

UDELTE VŠETKY VÝHODY NA *. * K „používateľovi“@„%“S MOŽNOSŤOU GRANTU;

FLUSH PRIVILEGES;

Na ukončenie a rýchle reštartovanie služby stlačte Ctrl + C:

sudo service mysql reštart

Prihláste sa pomocou používateľského mena: používateľ a heslo: userdb:

mysql -u užívateľ -p

Teraz je čas vytvoriť databázu.

VYTVORIŤ DATABÁZU project_db SADA VÝCHOZÍCH CHARAKTEROV utf8;

POUŽIJTE project_db

Vytvorte tabuľku „historiek“(znamená históriu).

VYTVORIŤ TABUĽKU, AK NEEXISTUJE `historiek` (` id 'INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) NIE NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id`)) ENGINE = InnoDB;

A voila, databáza je vytvorená.

Krok 7: Kód Github a testovanie

Kód Github a testovanie
Kód Github a testovanie

Blížime sa ku koncu nášho projektu.

Predtým, ako dostaneme kód, budeme musieť importovať niektoré moduly do Rpi:

pip3 nainštalujte Flask_MySQL

pip3 nainštalujte flask-socketio

pip3 install -U flask -cors

pip3 nainštalovať spidev

Teraz potrebujeme kód, aby fungoval, zadajte terminál:

klon git

Skontrolujte, či sa tam priečinok nachádza:

ls

Teraz budete potrebovať 2 terminály, takže je praktické kliknúť na terminál pravým tlačidlom myši a kliknúť na položku Duplikovať relácie:

Prejdite na backend_project a teplotu pomocou príkazu cd.

Teraz pred spustením programov na testovacie účely. Pamätáte si ešte krok 3 s 1-vodičovým snímačom, kde si potrebujete zapísať nejaké čísla? Ak máte, žiadne obavy, stačí sa znova rýchlo pozrieť na krok 3.

Tieto čísla pridáme do kódu, pretože pri jeho použití bude potrebovať poznať správny senzor.

Terminál s priečinkom s teplotou nájdete app.py. Ideme to otvoriť.

sudo nano app.py

Hľadaj funkciu, ktorá sa nazýva "def temperatuur ():", tam budeš musieť nahradiť "**" číslami, ktoré si si zapísal. V mojom prípade by som dostal tento riadok kódu (každé číslo je jedinečné).

sensor_file_name = '/sys/devices/w1_bus_master1/28-0316a4be59ff/w1_slave

Čas testovania. Oba terminály v priečinku backend_project aj v priečinku teploty zadajte:

python3 app.py

Teraz si zapamätajte krok 5: hardvér, kam musíte pridať kód, ak používate viacero ventilátorov a tranzistorov?

Dobre, ak nie, vráťte sa ku kroku 5.

Teraz musíme pridať kód, ako som spomenul na app.py v backend_project. Aby to bolo jednoduchšie, v kóde som to uviedol na príklade. Každý riadok kódu komentára, ktorý obsahuje „fan1“, odkomentujte tieto riadky a voilá, teraz môžete použiť 2 ventilátory.

Ak chcete použiť viac ako 2 fanúšikov, skopírujte a prilepte pod ním rovnaký kód, ale s iným číslom. Nevýhodou je, že je to pre vás osobnejšia práca a máte k dispozícii menej súborov gpio.pins. Toto nepozná žiadne výhody.

Krok 8: Spustite kód pri spustení

Spustite kód pri spustení
Spustite kód pri spustení

Chceme, aby sa tieto 2 pythonové skripty spustili v okamihu, keď sa spustí naše Rpi, a v prípade, že by sa skript zrútil, mal by sa sám reštartovať. Za týmto účelom vytvoríme 2 služby.

Ak to chcete urobiť, zadajte:

sudo nano /etc/systemd/system/temperature.service

Skopírujte to a prilepte na teplotu. Služba:

[Jednotka] Popis = Teplotná služba po = multi-user.target

[email protected]

[Služba] Typ = jednoduchý

ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py

StandardInput = tty-force

Reštartovať = pri zlyhaní

RestartSec = 60 s

[Inštalácia]

WantedBy = multi-user.target

Zatvorte a urobte to znova, ale potom pre službu backend_project.service:

Prvý otvorený text:

sudo nano /etc/systemd/system/backend_project.service

Potom znova skopírujte a prilepte:

[Jednotka] Popis = služba backend_project

Po = multi-user.target

[Služba]

Typ = jednoduchý

ExecStart =/usr/bin/python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py

StandardInput = tty-force

Reštartovať = pri zlyhaní

RestartSec = 60 s

[Inštalácia]

WantedBy = multi-user.target

Uložiť a zavrieť.

Posledná časť je napísanie tohto:

sudo systemctl daemon-reload

sudo systemctl povoliť teplotu.služba sudo reštartovať

Teraz by sa pri spustení mali automaticky spustiť naše 2 skripty pythonu.

Krok 9: Nastavenie webovej stránky

Keď si stiahnete úložisko, mali by ste dostať aj priečinok s názvom front. Tu je obsah webovej stránky.

Najprv potrebujeme apache, aby sme mohli priečinok používať. Pri apache postupujte podľa tohto odkazu.

Keď ste pripravení. Prejdite na miesto, kde sa nachádza predný priečinok:

cd /Dokumenty /nmct-s2-project-1-TheryBrian

Potom napíšte:

sudo mv front/var/www/html

Keď je to hotové, prejdite do priečinka html a pripravte sa na únavnú prácu (moja chyba).

cd/var/www/html/

potom choďte do predného priečinka a začnite presúvať všetko do priečinka html.

príklad:

sudo mv css/var/www/html

Potom odstráňte predný priečinok.

A sme so všetkým hotoví.

Veľa štastia:).

Krok 10: Voliteľné - miniatúrny prototyp

Voliteľné - miniatúrny prototyp
Voliteľné - miniatúrny prototyp
Voliteľné - miniatúrny prototyp
Voliteľné - miniatúrny prototyp

Z testovacích dôvodov som vyrobil prototyp iba škatule so všetkým hardvérom vo vnútri, aby som zistil, či všetko funguje na objednávku.

Tento projekt by sa bežne realizoval vo väčšom rozsahu. Napríklad: izba, dom, továreň, obchod a podobne …

Ale zrejme skôr, ako začneme robiť diery v stenách (pekná riekanka). Najprv chceme zistiť, či to funguje. V skutočnosti nie je potrebné vyrábať škatule na testovanie, ale vždy je zábavné urobiť nejaké remeselné práce.

Tu je môj príklad.

Odporúča: