Obsah:
- Zásoby
- Krok 1: Nastavenie Raspberry Pi
- Krok 2: Vytvorenie pripojenia a pripojenie Rpi Wireless k vašej miestnej sieti
- Krok 3: Snímač DS18B20 (teplota)-1-vodičový
- Krok 4: MCP3008 - Analógové snímanie
- Krok 5: Hardvér
- Krok 6: Vytvorenie databázy Mariadb
- Krok 7: Kód Github a testovanie
- Krok 8: Spustite kód pri spustení
- Krok 9: Nastavenie webovej stránky
- Krok 10: Voliteľné - miniatúrny prototyp
Video: TheAir - projekt senzora plynu: 10 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
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
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
Spustíme Rpi -> pripojte ethernetový kábel medzi počítačom a Rpi.
-
Spustite tmel a vyplňte toto:
- Názov hostiteľa (alebo adresa IP): 169.254.10.1
- Prístav: 22
-
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.
- Extra: zadajte „sudo raspi-config“
- Tu budete musieť zmeniť heslo pre používateľa pí (bezpečnostné dôvody)
- Potom prejdite na Možnosti lokalizácie -> Zmeniť čas (vyberte správny) -> Potom prejdite na položku Krajina Wi -Fi -> vyberte krajinu.
- Zatvorte raspi-config a reštartujte počítač.
- Po prihlásení sa dočasne stanete používateľom root -> sudo -i
-
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ý
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.
- Prejdite na Možnosti rozhrania
- 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
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
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
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í
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
[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
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:
Rozhranie senzora plynu s Arduino: 4 kroky
Prepojenie plynového senzora s Arduino: Senzor dymu MQ-2 je citlivý na dym a nasledujúce horľavé plyny: LPG, bután, propán, metán, alkohol, vodík. Odpor snímača je rôzny v závislosti od druhu plynu. Dymový senzor má vstavaný potenciometer
Prečítajte si merač elektriny a plynu (belgický/holandský) a nahrajte ho do služby Thingspeak: 5 krokov
Prečítajte si merač elektriny a plynu (belgický/holandský) a funkciu Upload to Thingspeak: Ak vás zaujíma vaša spotreba energie alebo ste len hlupák, pravdepodobne budete chcieť vidieť údaje zo svojho nového elegantného digitálneho merača vo svojom smartfóne. V tomto projektu získame aktuálne údaje z belgického alebo holandského digitálneho elektrického
UV indexový merač pomocou senzora ML8511 ULTRAVIOLET senzora Arduino: 6 krokov
UV indexový merač pomocou senzora ML8511 ULTRAVIOLET Arduino: V tomto návode sa naučíme, ako zmerať slnečný UV index pomocou senzora ML8511 ULTRAVIOLET. Sledujte video! https://www.youtube.com/watch?v=i32L4nxU7_M
Alarmový systém Arduino na detekciu plynu: 6 krokov
Alarmový systém Arduino na detekciu plynu: Dobrý deň, všetci! Práve teraz vám vysvetlím, ako v tinkercad vybudovať poplašný systém na detekciu plynu Arduino. Tento obvod pomocou plynového senzora zisťuje, či sa v blízkosti nenachádza oheň, dym alebo únik plynu. Pomocou LCD a alarmu tento obvod tiež
Detektor plynu IoT s Arduino a Raspberry Pi: 5 krokov
Detektor plynu IoT s Arduino a Raspberry Pi: V tomto návode sa naučíte, ako vytvoriť detektor plynu IoT pomocou plynového senzora Arduino, Raspberry Pi a MQ-5. Okrem týchto častí budete potrebovať tri vodiče na pripojenie Arduina k plynovému senzoru. Keď to budete mať hotové, budete