Obsah:
- Zásoby
- Krok 1: Nastavení Raspberry Pi
- Krok 2: Vytvoření připojení a připojení Rpi Wireless k vaší místní síti
- Krok 3: Senzor DS18B20 (teplota)-1vodičový
- Krok 4: MCP3008 - Analogové snímání
- Krok 5: Hardware
- Krok 6: Vytvoření databáze Mariadb
- Krok 7: Kód Github a testování
- Krok 8: Spusťte kód při spuštění
- Krok 9: Nastavení webových stránek
- Krok 10: Volitelné - miniaturní prototyp
Video: TheAir - Projekt senzoru plynu: 10 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
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
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
Spustíme Rpi -> připojíme ethernetový kabel mezi počítačem a Rpi.
-
Spusťte tmel a vyplňte toto:
- Název hostitele (nebo IP adresa): 169.254.10.1
- Přístav: 22
-
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.
- Extra: zadejte „sudo raspi-config“
- Zde budete muset změnit heslo pro uživatele pí (bezpečnostní důvody)
- Poté přejděte na Možnosti lokalizace -> Změnit čas (vyberte správný) -> Poté přejděte na Wifi Country -> vyberte zemi.
- Zavřete raspi-config a restartujte počítač.
- Po přihlášení se dočasně staňte uživatelem root -> sudo -i
-
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ý
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.
- Přejděte na Možnosti rozhraní
- 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í
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
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í
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í
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
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:
Přečtěte si měřič elektřiny a plynu (belgický/nizozemský) a nahrajte ho do programu Thingspeak: 5 kroků
Přečtěte si měřič elektřiny a plynu (belgický/nizozemský) a nahrát do Thingspeak: Pokud vás zajímá vaše spotřeba energie nebo jste jen trochu šprt, pravděpodobně budete chtít vidět data ze svého fantastického nového digitálního měřiče ve svém smartphonu. projektu získáme aktuální data z belgického nebo nizozemského digitálního elektrického
Alarmový systém Arduino pro detekci plynu: 6 kroků
Alarmový systém pro detekci plynu Arduino: Dobrý den, všichni! Právě teď budu vysvětlovat, jak v tinkercadu vybudovat poplašný systém pro detekci plynu Arduino. Tento obvod pomocí senzoru plynu zjišťuje, zda v blízkosti není požár, kouř nebo únik plynu. Pomocí LCD a alarmu tento obvod také
Detektor plynu IoT s Arduino a Raspberry Pi: 5 kroků
Detektor plynu IoT s Arduino a Raspberry Pi: V tomto návodu se naučíte, jak vytvořit detektor plynu IoT pomocí plynového senzoru Arduino, Raspberry Pi a MQ-5. Kromě těchto částí budete potřebovat tři vodiče pro připojení Arduina k plynovému senzoru. Jakmile to budete mít hotové, budete
DETEKTOR PLYNU LPG: 5 kroků
DETEKTOR PLYNOVÉHO PLYNU: v tomto NÁVODU postavím detektor LPG s alarmem
Metody detekce vodní hladiny Arduino pomocí ultrazvukového senzoru a Funduino vodního senzoru: 4 kroky
Metody detekce hladiny vody Arduino pomocí ultrazvukového senzoru a Funduino senzoru vody: V tomto projektu vám ukážu, jak vytvořit levný detektor vody pomocí dvou metod: 1. Ultrazvukový senzor (HC-SR04) .2. Senzor vody Funduino