Obsah:

Fanair: meteorologická stanice pro váš pokoj: 6 kroků (s obrázky)
Fanair: meteorologická stanice pro váš pokoj: 6 kroků (s obrázky)

Video: Fanair: meteorologická stanice pro váš pokoj: 6 kroků (s obrázky)

Video: Fanair: meteorologická stanice pro váš pokoj: 6 kroků (s obrázky)
Video: Метеостанция 2024, Listopad
Anonim
Fanair: meteorologická stanice pro váš pokoj
Fanair: meteorologická stanice pro váš pokoj

Existuje nespočet způsobů, jak zjistit aktuální počasí, ale pak znáte počasí pouze venku. Co když chcete znát počasí uvnitř vašeho domu, v konkrétní místnosti? To se pokouším vyřešit tímto projektem.

Fanair používá několik senzorů ke snímání:

  • teplota
  • vlhkost vzduchu
  • světlo
  • určité plyny
  • tlak vzduchu

Je velmi kompaktní a využívá Raspberry Pi 3 B pro získávání hodnot, jejich ukládání do databáze MySQL a jejich snadné zpřístupnění na webových stránkách. Součástí kódu a webových stránek je možnost získat aktuální údaje o počasí pro vaši polohu, aby bylo možné webové stránky použít také ke kontrole vnějšího počasí.

Krok 1: Získejte všechny požadované položky

Získejte všechny požadované položky
Získejte všechny požadované položky

Nejprve budete potřebovat základní elektroniku, jako jsou vodiče / propojovací kabely. Pokud máte v plánu pájet vše dohromady jako trvalý projekt, pak samozřejmě budete také potřebovat páječku, pájku a pro své vlastní pohodlí desku plošných spojů k pájení všeho.

Pro konkrétnější položky jsem vytvořil tento kusovník.

  • Raspberry Pi 3 B
  • MPC3008-8kanálový 10bitový ADC
  • Teploměr AM2301 Snímač teploty a vlhkosti
  • WR Rademacher WR-tyoe 930-1 PCB
  • ABS pouzdro pro prototypování (černé)
  • LDR
  • Plynový senzor MQ135
  • 2x BC517 Darlingtonův tranzistor
  • RGB LED
  • Balíček odporů
  • Bzučák
  • Dráty
  • Barometr BMP280
  • Tichý USB ventilátor (5V)

Celkově by to mělo stát asi 110 EUR. Celková cena je pouze přibližná. Také můj projekt má na fotografii LCD obrazovku, ale není připojen, protože v mém případě nebylo dost místa, takže není zahrnut v pokynech.

Krok 2: Připravte si Raspberry Pi

Získejte Raspian Jessie s operačním systémem Pixel z oficiálního webu Raspberry Pi a po stažení jej rozbalte. Získáte soubor obrázku. Abyste to dostali na Pi, musíte to zapsat na SD kartu pomocí Win32 Disk Imager. Jakmile je nainstalován, vyberte soubor s obrázkem a jednotku, na které se nachází vaše SD karta. Poté stiskněte zápis a počkejte, až bude hotovo.

Po dokončení klikněte na kartu SD v Průzkumníku souborů a otevřete soubor s názvem „cmdline.txt“, přejděte na konec textového souboru těsně před rootwait a napište „ip = 254.169.10.2“s mezerami kolem. Po uložení byste měli kliknout pravým tlačítkem někam do okna a vytvořit nový soubor s názvem 'ssh'. Všimněte si, že tento soubor nemá příponu. Chcete -li se ujistit, že nemá příponu, klikněte na „zobrazit“v Průzkumníku souborů a zkontrolujte „skryté soubory“. Pokud jej přejmenuje a smaže příponu, zobrazí se pouze „ssh“.

Poté, co to uděláte, můžete konečně vložit SD kartu do Raspberry Pi. Stáhněte si ssh klienta (doporučuji MobaXterm). A připojte se pomocí ssh s IP, kterou jste nastavili dříve '254.169.10.2'. Uživatelské jméno je „pi“, heslo „malina“. Pokud chcete, můžete heslo změnit tak, že do terminálu zadáte příkaz 'sudo passwd' a budete postupovat podle pokynů. Protože pro Fanair použijeme značnou část karty SD, měli byste rozšířit dostupné úložiště zadáním 'sudo rapi-config' výběrem 'Advanced Options' a poté 'Expand File System'. Pokud budete vyzváni k restartu.

Budeme využívat rozhraní 1-Wire, SPI a I2C. Abyste je mohli používat, musíte je nejprve nastavit!

Krok 3: Spojte vše dohromady

Propojte vše dohromady
Propojte vše dohromady
Propojte vše dohromady
Propojte vše dohromady

Je čas udělat obvod! Poprvé byste to měli pravděpodobně vyzkoušet na prkénku, ale pokud na to nemáte čas, můžete to zkusit spojit dohromady.

Okruh, který budete potřebovat, vypadá jako výše, pro pohodlí je také zahrnuta verze pro prkénko.

Krok 4: Vytvořte svou databázi

Abychom efektivně uložili všechna data, která obdržíme, použijeme databázi TSQL MySQL. Před instalací MySQL se ujistěte, že je vše aktuální, zadáním několika příkazů do terminálu:

  • 'sudo apt-get update'
  • 'sudo apt-get upgrade'
  • 'sudo apt-get dist-upgrade'

Přijměte každou výzvu zadáním „y“a zadejte.

Chcete -li nainstalovat typ MySQL:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

Po vyzvání vytvořte heslo uživatele root podle svého výběru.

Po dokončení instalace přihlášení pomocí:

'mysql -uroot -p'

A zadáním hesla.

Získejte kód Fanair z My Github! Klikněte na „Klonovat nebo stáhnout“a poté na „Stáhnout ZIP“. Rozbalte kód ve složce podle vašeho výběru. Dotaz na vytvoření plně funkční databáze je ve složce databáze. Otevřete soubor, zkopírujte kód a vložte jej do terminálu s otevřeným MySQL. Poté klikněte na Enter a databáze je hotová!

Krok 5: Čas na kód

Abyste mohli využívat všechna čidla, zjevně potřebujete spustit program. Naštěstí je kód již hotový (z velké části) a my jsme ho již stáhli při získávání dotazu na databázi SQL.

Jak jsem řekl, je několik věcí, které je třeba ještě změnit / přidat, aby program správně fungoval. Nejprve program používá API Darksky k získání údajů o počasí na základě zeměpisné délky a šířky. Abyste toho mohli využít, musíte se zaregistrovat. Prvních 1000 hovorů je zdarma a poté stojí 0,0001 $ za hovor. Slyšel jsem, že pokud nezaplatíte, váš účet bude zablokován. Abych byl spravedlivý, 0,0001 $ za hovor je docela levné. Společnost Fanair volá nejnovější data každou hodinu, což znamená, že za rok, pokud je spuštěna na plný úvazek, vás to bude stát pouze 0,876 USD. Pokud Fanair poběží na plný úvazek, získáte také 41 dní zdarma.

Jakmile se zaregistrujete, vyhledejte svůj klíč API. Vyhledejte na mapách Google zeměpisnou délku a šířku svého místa nebo ji zkuste vygooglit. Vytvořte nový textový soubor v kořenovém adresáři Fanairu (s třídami, main.py…). Pojmenujte soubor 'key_location.txt'. Otevřete textový soubor a na první řádek vložte klíč API Darksky. Na druhý řádek vložte svou zeměpisnou délku a na třetí řádek vložte svou zeměpisnou šířku (oba v desítkovém formátu). Až budete hotovi, uložte soubor.

Ve stejném adresáři vytvořte další textový soubor s názvem 'database_dsn.txt'. První řádek by měl říkat 'localhost'. Druhý řádek je 'root'. Do třetího řádku byste měli zadat heslo, které jste pro databázi vytvořili dříve, a do čtvrtého a posledního řádku zadejte „fanair“.

Klepněte pravým tlačítkem na soubor main.py a vyberte Upravit. Je třeba změnit 'fanair = Fanair (5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")'. Pokud jste postupovali podle obrázku, prvních 5 hodnot by mělo být změněno z '5, 26, 17, 27, 22, 4' na '20, 21, 26, 19, 13 '. '/home/muhsin/Applications/Fanair' by měl být také změněn na vaši kořenovou cestu Fanair (kde je main.py). Ujistěte se, že jste před „domovem“dali lomítko, ale ne za „Fanair“.

Nyní je to všechno skvělé, ale kód se musí dostat do Pi. Naštěstí pro nás existuje protokol sftp. Chcete -li soubory umístit na Pi, použijte klienta sftp, jako je FileZilla, nebo pokud jste se rozhodli použít MobaXterm, můžete soubory snadno nahrát do rozhraní sftp vlevo od terminálu.

Podle mých zkušeností ne vždy dostanu správné datum a čas na Raspberry Pi. Abyste se ujistili, že obdržíte správný datetime, doporučuji postupovat podle této příručky: Datum a čas synchronizace Raspberry Pi.

A v neposlední řadě je třeba nainstalovat několik knihoven a aktivovat několik rozhraní:

'sudo apt-get install build-essential python-dev'

Adafruit DHT:

'pip3 install adafruit_python_dht'

1-vodič:

  1. 'sudo raspi-config'
  2. 'Možnosti rozhraní'
  3. '1 drát'
  4. Umožnit
  5. 'sudo nano /boot/config.txt'
  6. Přidejte do souboru tento řádek: 'dtoverlay = w1-gpio'
  7. 'sudo restart'

SPI:

  1. 'sudo raspi-config'
  2. 'Možnosti rozhraní'
  3. 'SPI'
  4. Umožnit
  5. 'sudo restart'
  6. 'sudo nano /boot/config.txt'
  7. Vyhledejte 'dtparam = spi = on' a odkomentujte jej odstraněním hashtagu.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config' '
  2. 'Možnosti rozhraní'
  3. 'I2C'
  4. Umožnit
  5. 'sudo restart'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Vyhledejte dtparam = i2c_arm = on a zrušte jeho přidání odebráním hashtag.

baňka

pip3 nainstalujte Flask

mysql konektor

'pip3 install -Iv mysql -connector == 2.1.4'

spidev

'pip3 install py-spidev'

temná obloha

'pip3 install darkskylib'

Krok 6: Vyzkoušejte to

Pokud se vám to podařilo dotáhnout až sem, klepněte si na záda. Nyní je vše provedeno, aby Fanair fungoval správně. Chcete -li to vyzkoušet, zadejte 'cd ""'. Umístění souboru je "/home/pi", například pokud jste právě vložili do svého domovského adresáře. Poté zadejte 'python3 main.py' a nechte jej 15 minut odpočívat, aby po dokončení měl data v databázi. Poté stiskněte 'ctrl + c' stop, zastavte program a zadejte 'python3 Flask.py'. Chcete -li zjistit, zda váš web funguje, musíte přejít na IP adresu vašeho Pi, kterou jste zadali s ': 5000' za ním (například: 169.254.10.1:5000 ').

Aby se spustil automaticky po spuštění:

'sudo nano /etc/rc.local'

Na konci souboru, ALE PŘED ukončením 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Gratulujeme, váš skript by měl běžet od spuštění a jste hotovi! Pokud máte v plánu udržet projekt v chodu a ještě jste to neudělali, doporučil bych vám vše pájet dohromady, abyste se ujistili, že vše zůstane na svém místě. Ačkoli pokud nehrajete, abyste to mohli hodně přesouvat, funguje samozřejmě i prkénko.

Doporučuje: