Obsah:

TheAir - Projekt senzoru plynu: 10 kroků
TheAir - Projekt senzoru plynu: 10 kroků

Video: TheAir - Projekt senzoru plynu: 10 kroků

Video: TheAir - Projekt senzoru plynu: 10 kroků
Video: České senzory pro mezinárodní termojaderné reaktory ITER a DEMO 2024, Červenec
Anonim
TheAir - Projekt senzoru plynu
TheAir - Projekt senzoru plynu

Oxid uhelnatý a oxid uhličitý, také známý jako CO a CO2. Plyny, které jsou ve vysokých koncentracích v uzavřené místnosti bezbarvé, bez zápachu, bez chuti a upřímně řečeno nebezpečné. Pokud žijete, řekněme například ve studentském pokoji, který je špatně izolovaný, bez dobrého proudění vzduchu a z nějakého důvodu toustovač vydává divný zvuk při toastu. Pak můžete přijít do styku s těmito plyny, a když se to stane, doufejme, že to skončí jen malou bolestí hlavy, protože ve vysoké koncentraci vás to může zneškodnit nebo dokonce zabít (i když velmi zřídka).

Rozhodl jsem se tedy přijít s tímto projektem. Moje myšlenka je jednoduchá, použijte proudění vzduchu pomocí ventilátorů. Dobrý vzduch dovnitř a špatný vzduch, abych tak řekl. Pro extra užitečnost jsem přidal další teplotní senzor, tlačítko pro ruční aktivaci ventilátorů a také web pro ty, kteří rádi vidí statistiky a/nebo aktivují ventilátory ze svého počítače.

Jako student, rodič, svobodná osoba nebo živá bytost. To je něco, čemu byste se normálně chtěli vyhnout, když žijete v pohodlí vlastního domu. To pomáhá těm, kteří si rádi trochu usnadňují život.

Zásoby

  • Raspberry Pi 3+
  • Mini USB nabíječka 5V/2,5A
  • Micro SD karta
  • Senzory

    • MQ-7 (CO)
    • MQ-135 (CO2)
    • DS18B20 (teplota)
  • 2 x 12V DC ventilátor
  • 2 x 2n2222 tranzistory
  • LCD 16*2 displej
  • Stiskněte tlačítko
  • MCP3008
  • Převodník úrovně logi
  • Ethernetový kabel (z důvodů nastavení)

Krok 1: Nastavení Raspberry Pi

Nastavení Raspberry Pi
Nastavení Raspberry Pi
Nastavení Raspberry Pi
Nastavení Raspberry Pi

Před prací s Rpi budeme potřebovat nějaký software.

  • WinSCP nebo FilleZilla (volitelné, pokud chcete přenášet soubory z počítače do Rpi)
  • Disk Win32 nebo Etcher (kterému dáváte přednost)
  • Tmel nebo MobaXterm (kterým dáváte přednost)
  • Raspbian obrázek s desktopem

Než začnu, chtěl bych zmínit, že při vytváření tohoto tutoriálu, když vyberu program nad druhým, NEZNAMENÁ, že jej doporučuji. Například rád používám etcher, protože je uživatelsky přívětivější, ale Win32 má možnost zálohovat. Teď je to mimo můj systém, můžeme začít.

Pokud již máte Rpi připojené k vaší síti Wi -Fi, přejděte ke kroku 3.

Nejprve použijeme Etcher k vložení obrázku Raspbian na vaši SD kartu. Nyní, než vytáhneme kartu SD, změníme nějaké „věci“v souboru cmdline.txt, který najdete na obrázku. Otevřete soubor.txt -> Přidat tento řádek "ip = 169.254.10.1" (bez uvozovek) na konec řádku (vše na 1 řádek) -> Uložit soubor

Za druhé vytvořte prázdnou složku s názvem „ssh“v zaváděcím oddílu (bez uvozovek).

Poté můžete Microsd bezpečně vysunout a vložit do Rpi.

Důvodem pevně kódované statické IP adresy je snazší připojení k Rpi. Pokud z nějakého důvodu nemá Rpi IP s DHCP, můžete snadno použít statickou IP.

Krok 2: Vytvoření připojení a připojení Rpi Wireless k vaší místní síti

Připojení a bezdrátové připojení Rpi k vaší místní síti
Připojení a bezdrátové připojení Rpi k vaší místní síti
Připojení a bezdrátové připojení Rpi k vaší místní síti
Připojení a bezdrátové připojení Rpi k vaší místní síti
Připojení a bezdrátové připojení Rpi k vaší místní síti
Připojení a bezdrátové připojení Rpi k vaší místní síti
Připojení a bezdrátové připojení Rpi k vaší místní síti
Připojení a bezdrátové připojení Rpi k vaší místní síti

Spustíme Rpi -> připojíme ethernetový kabel mezi počítačem a Rpi.

  1. Spusťte tmel a vyplňte toto:

    • Název hostitele (nebo IP adresa): 169.254.10.1
    • Přístav: 22
  2. Vyskočí terminál a zadáte výchozí uživatelské jméno a heslo:

    • Uživatelské jméno: pí
    • Heslo: malina

Nyní, když jsme lokálně připojeni k rpi, chceme, aby Rpi mělo připojení k vaší wifi.

  1. Extra: zadejte „sudo raspi-config“
  2. Zde budete muset změnit heslo pro uživatele pí (bezpečnostní důvody)
  3. Poté přejděte na Možnosti lokalizace -> Změnit čas (vyberte správný) -> Poté přejděte na Wifi Country -> vyberte zemi.
  4. Zavřete raspi-config a restartujte počítač.
  5. Po přihlášení se dočasně staňte uživatelem root -> sudo -i
  6. Napište tento příkaz a přidejte svou síť do Rpi (kód pod seznamem)

    • heslo = "heslo" (s uvozovkami)
    • Název sítě = "SSID"
    • Nezapomeňte použít double >>! Důležité!

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

Nyní restartujte znovu

Při opětovném připojení zkontrolujte svou IP zadáním:

ifconfig

a zkontrolujte wlan0 vedle inet.

Nyní, když máme připojení k internetu, provedeme „rychlou“aktualizaci.

sudo apt aktualizace

sudo apt dist -upgrade -y

Může to chvíli trvat.

Krok 3: Senzor DS18B20 (teplota)-1vodičový

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

U každého projektu vždy existuje něco zvláštního, co je třeba udělat, jinak to nebude fungovat.

Tentokrát to máme s teplotním čidlem DS18B20, které vyžaduje 1vodič, což nebudu vysvětlovat proč, ale vysvětlím, jak to alespoň zajistit.

K tomu se musíme vrátit k raspi-config na Rpi, pěkné modré obrazovce.

  1. Přejděte na Možnosti rozhraní
  2. Vyberte 1-Wire a zvolte povolení.

Hotovo…

Dělám si srandu

Nyní budeme muset upravit /boot/config.txt

sudo nano /boot/config.txt

Přidejte tento řádek dole.

# Povolte onewire

dtoverlay = w1-gpio

Nyní sudo restartujte tuto věc a teď jsme hotovi.

Chcete -li zkontrolovat, zda funguje, připojte snímač k Rpi, poté se vraťte zpět k terminálu a zadejte tento kód (Viz další krok Hardware o připojení teplotního senzoru).

cd/sys/bus/w1/zařízení/w1_bus_master1

ls

Měli byste vidět něco s čísly a písmeny v tmavě modré barvě vlevo nahoře, nezapomeňte si tuto informaci napsat na později, až budeme pracovat s kódem z github.

Pokud z nějakého důvodu nefunguje, zkontrolujte tento odkaz, který jde hlouběji.

Krok 4: MCP3008 - Analogové snímání

MCP3008 - Analogové snímání
MCP3008 - Analogové snímání
MCP3008 - Analogové snímání
MCP3008 - Analogové snímání

Jak jsme provedli změnu na teplotním senzoru, musíme také provést nějaké změny na ostatních senzorech, protože musíme číst analogová data. V tomto bodě, kde nám MCP3008 přijde vhod, musíme také změnit rozhraní SPI.

sudo raspi-config

Přejděte na Možnosti rozhraní -> Vyberte SPI -> povolit.

Poté Dokončit.

Krok 5: Hardware

Nejsme úplně hotovi s Rpi, ale dost na to, abychom mohli začít stavět a dávat hardware dohromady.

Nějaká rada je důkladně zkontrolovat vaše připojení při stavbě, abyste se ujistili, že … nevyhodíte do povětří Rpi.

Také ve schématu si všimnete, že některé komponenty jsou na něm pouze jednou, přestože budeme pracovat s více než 1 stejnou komponentou. Znamená to jen, že musíte opakovat stejný proces budování té 1 komponenty. Existuje 1 malá výjimka, senzory mq-x nepotřebují převodník další úrovně nebo MCP3008. Stačí přidat další zelený kabel (v pdf) do převodníku úrovní a MCP3008.

Extra úprava: Fanoušci musí jako tranzistor použít tranzistor. Pro 1 ventilátor používám tranzistor 2n2222A, protože 2 ventilátory mohou být příliš těžké.

Pokud máte tranzistor, který zvládne větší proud, pak dobrý, přeskočte poslední část tohoto kroku.

Pokud nemáte jeden jako já, budete to muset udělat takto: 1 ventilátor = 1 tranzistor, 2 ventilátory = 2 tranzistory atd. (Každý ventilátor má vlastní tranzistor + dioda jako v pdf).

Budete také muset přidat nějaký kód na app.py v backend_project později v kroku 7: Git kód….

Krok 6: Vytvoření databáze Mariadb

Vytvoření databáze Mariadb
Vytvoření databáze Mariadb

Jak naznačuje název, vytvoříme databázi, abychom měli kam ukládat data ze senzorů.

Nejprve si stáhněte Mariadb na Rpi.

sudo apt-get install mariadb-server

Po instalaci jej použijeme.

mysql -u root

Heslo je prázdné, takže není třeba nic psát. Stiskněte Enter.

Pojďme nyní vytvořit uživatele.

VYTVOŘIT UŽIVATELE 'user'@'%' IDENTIFIKOVANÉ 'userdb';

UDĚLIT VŠECHNY PRIVILEGY NA *. * TO 'user'@'%' S GRANT OPTION;

FLUSH PRIVILEGES;

Stisknutím Ctrl + C ukončíte a provedete rychlý restart služby:

sudo service mysql restart

Přihlášení pomocí uživatelského jména: uživatel a heslo: userdb:

mysql -u uživatel -p

Čas na vytvoření databáze nyní.

VYTVOŘIT DATABÁZI project_db SADA VÝCHOZÍCH ZNAKU utf8;

USE project_db

Vytvořte tabulku „historiek“(znamená historii).

VYTVOŘIT TABULKU, KDYŽ NEEXISTUJE `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;

A voila, databáze je vytvořena.

Krok 7: Kód Github a testování

Kód Github a testování
Kód Github a testování

Blížíme se ke konci našeho projektu.

Než získáme kód, budeme muset importovat některé moduly do Rpi:

pip3 nainstalujte Flask_MySQL

pip3 install flask-socketio

pip3 install -U flask -cors

pip3 nainstalovat spidev

Nyní potřebujeme kód, aby fungoval, zadejte terminál:

klon git

Zkontrolujte, zda je tam složka, pomocí:

ls

Nyní budete potřebovat 2 terminály, takže je praktické kliknout pravým tlačítkem na terminál a kliknout na Duplikovat relace:

Přejděte na backend_project a teplotu pomocí příkazu cd.

Nyní před spuštěním programů pro účely testování. Pamatujete si ještě krok 3 s 1vodičovým senzorem, kam si potřebujete zapsat nějaká čísla? Pokud máte, nemusíte mít obavy, stačí se znovu rychle podívat na krok 3.

Tato čísla přidáme do kódu, protože při použití bude potřebovat znát správný senzor.

Terminál s teplotní složkou najdete app.py. Jdeme otevřít.

sudo nano app.py

Vyhledejte funkci, která se nazývá „def temperatuur ():“, tam budete muset „**“nahradit čísly, která jste si zapsali. V mém případě bych dostal tento řádek kódu (každé číslo je jedinečné).

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

Doba testování. Oba terminály ve složce backend_project i teplota zadejte:

python3 app.py

Nyní si pamatujte krok 5: hardware, kam potřebujete přidat kód, pokud používáte více ventilátorů a tranzistorů?

Dobrá, pokud ne, vraťte se ke kroku 5.

Nyní musíme přidat kód, jak jsem zmínil na app.py v backend_project. Aby to bylo snazší, udělal jsem v kódu příklad. Každý řádek kódu komentáře, který obsahuje „fan1“, odkomentujte tyto řádky a voila, nyní můžete použít 2 ventilátory.

Pokud chcete použít více než jen 2 ventilátory, zkopírujte a vložte stejný kód pod něj, ale s jiným číslem. Nevýhodou je pro vás více osobní práce a méně dostupných souborů gpio.pins. Vím o tom žádné výhody.

Krok 8: Spusťte kód při spuštění

Spustit kód při spuštění
Spustit kód při spuštění

Chceme, aby se tyto 2 pythonové skripty spustily v okamžiku, kdy se spustí naše Rpi, a v případě, že by skript spadl, měl by se sám restartovat. K tomu uděláme 2 služby.

Chcete -li to provést, zadejte:

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

Zkopírujte a vložte pro službu temperature.service:

[Jednotka] Popis = Teplotní servis 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

Restartovat = při selhání

RestartSec = 60 s

[Nainstalujte]

WantedBy = multi-user.target

Zavřete a proveďte znovu, ale pak pro backend_project.service:

První otevřený text:

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

Poté znovu zkopírujte a vložte:

[Jednotka] Popis = služba backend_project

After = multi-user.target

[Servis]

Typ = jednoduchý

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

StandardInput = tty-force

Restartovat = při selhání

RestartSec = 60 s

[Nainstalujte]

WantedBy = multi-user.target

Uložit a zavřít.

Poslední část je psaní tohoto:

sudo systemctl daemon-reload

sudo systemctl povolit teplotu. služba sudo restart

Nyní by se při spuštění měly automaticky spouštět naše 2 skripty pythonu.

Krok 9: Nastavení webových stránek

Když jste si stáhli úložiště, měli byste také získat složku s názvem front. Zde je obsah webových stránek.

Než budeme moci složku použít, potřebujeme nejprve apache. Pro apache postupujte podle pokynů na tomto odkazu.

Až budete připraveni. Přejděte na místo, kde se nachází přední složka:

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

Poté zadejte:

sudo mv front/var/www/html

Až to bude hotové, přejděte do složky html, připravte se na nějakou únavnou práci (moje chyba).

cd/var/www/html/

pak přejděte do přední složky a začněte přesouvat vše do složky html.

příklad:

sudo mv css/var/www/html

Poté odstraňte přední složku.

A jsme se vším hotovi.

Hodně štěstí:).

Krok 10: Volitelné - miniaturní prototyp

Volitelné - miniaturní prototyp
Volitelné - miniaturní prototyp
Volitelné - miniaturní prototyp
Volitelné - miniaturní prototyp

Z testovacích důvodů jsem vytvořil prototyp pouhé krabice s veškerým hardwarem uvnitř, abych viděl, zda vše funguje na zakázku.

Obvykle by tento projekt probíhal ve větším měřítku. Například: místnost, dům, továrna, obchod atd.…

Ale evidentně než začneme dělat díry ve zdech (pěkná říkanka). Nejprve chceme zjistit, zda to funguje. Ve skutečnosti nemusíte vyrábět krabici pro testování, ale vždy je zábavné udělat nějaké řemeslo.

Zde je můj příklad.

Doporučuje: