Obsah:
- Zásoby
- Krok 1: Hardware
- Krok 2: Nastavení softwaru Raspberry Pi OS
- Krok 3: Nastavte datovou jednoduchost pro povolení vzdáleného přístupu
- Krok 4: Zkontrolujte senzory
- Krok 5: Firewall UFW
- Krok 6: S ukončení teplotních dat jako JSON
- Krok 7: Odeslání dat z obou senzorů
- Krok 8: Automatické spuštění
- Krok 9: Zobrazte data na Freeboard.io (1)
- Krok 10: Zobrazte data na Freeboard.io (2)
- Krok 11: Sestavte projekt do krabice
- Krok 12: Hotovo
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
Toto je můj první pokus o napsání Instructable, a tak mě prosím uvolněte! Pokud si myslíte, že to není tak špatné, hlasujte prosím pro mě v soutěži First Time Author Contest.
Toto je můj projekt Lock-Down na dálkové monitorování 2 teplot ve skleníku, jedné na úrovni podlahy a jedné těsně pod střechou. Ačkoli jsem dříve používal Raspberry Pi (RPi), tento projekt zahrnoval několik prvků, které jsem nepoužil, a po cestě jsem našel několik návodů, které byly zastaralé nebo prostě špatné. Toto je moje sbírka znalostí k vytvoření funkčního duálního dálkového monitoru teploty z digitálních teplotních senzorů Pi Zero & 2 DS18B20+ One Wire, které byly získány na cestě.
Věci, o kterých jsem se dozvěděl:
- Zpřístupnění dat ze zařízení v rámci internetu věcí (IoT)
- 1-Wire rozhraní se 2 zařízeními
- Dataplicity
- Data JSON
- Nastavení brány firewall UFW
- Zobrazení dat pomocí Freeboard.io
- Konfigurace RPi pro automatické spuštění programu
Existuje velké množství dat, která lze nalézt pomocí jednoduchého vyhledávání na všechna tato témata, ale co není tak jasné, je, jak všechny tyto oddělené prvky kombinovat.
Zásoby
- Budete potřebovat Raspberry Pi (s monitorem, myší a klávesnicí pro nastavení, ale ne při spuštění hotového projektu)
- Fungující připojení k internetu.
- Napájecí zdroj s konektorem Micro USB
- 2 z DS18B20+ One Wire digitálních teplotních senzorů. Zjistil jsem, že Amazon je nejlevnější
- Rezistor 4K7 ohm nebo jsem použil 2 odpory 10K ohmů.
- Malé prkénko a několik vodičů pro testování na lavičce
- Malý kousek lišty pro finální montáž
- Jednoduché nástroje pro pájení a odizolování drátu.
- Malý plastový box k uložení hotového designu
Krok 1: Hardware
Už jsem měl Raspberry Pi Zero W (s bezdrátovým), ale jsem si jistý, že tento jednoduchý projekt bude fungovat dobře na kterémkoli RPI. Krabice lichých elektronických bitů v mé dílně měla všechno ostatní (prkénko, drát, napájecí zdroj atd.), A tak jsem si musel koupit jen dva senzory 2 x DS18B20 od Amazonu. Jedná se o běžné čipy DS18B20, které jsou pohodlně namontovány ve vodotěsném pouzdře a 3m kabelu. Z kabelu jsou 3 vodiče:
- Červená - napájení - připojte ke kolíku 3,3 V 1
- Černá - návrat - připojení k uzemňovacímu kolíku 6
- Žlutá - data - připojení ke kolíku GPIO4 7
Senzory používají rozhraní 1-Wire a bylo velmi snadné je připojit a získat z nich data. Na webu je několik stránek s podrobnostmi o připojení 1 zařízení, ale velmi málo o připojení 2 (nebo více).
Pro testování na lavičce byl obvod sestaven pomocí prkénka. Návody, které jsem našel, uváděly použití rezistoru 4K7 k ovlivnění datové linky, ale nemohl jsem najít jeden a tak jsem použil 2* 10K paralelně a fungovalo to dobře. Na webu je spousta zdrojů pro použití prkénka k sestavování obvodů RPi, a proto je zde nebudu opakovat.
Diagram vytvořený pomocí schématu zapojení
Krok 2: Nastavení softwaru Raspberry Pi OS
Protože jsem toto RPi používal již dříve, rozhodl jsem se začít s čistou instalací OS, přeformátoval jsem SD kartu a nainstaloval čistou verzi NOOBS. Poté jsem nainstaloval plnou verzi Raspian pro stolní počítače (nejlepší možnost), protože by to také nainstalovalo PIP & GIT, což verze lite ne. I když jsem pro projekt nepotřeboval grafické uživatelské rozhraní (GUI), je to snadný způsob, jak nastavit všechny možnosti, a díky 16 GB SD kartě nebyl nedostatek místa.
Nastavil jsem přístup WI-FI, poté spustil úplnou instalaci a poté průvodce aktualizacemi a upgrady atd. Pomocí GUI nastavím RPI podle potřeby jen proto, že používání GUI je jednodušší než rozhraní příkazového řádku (CLI). Šel jsem do konfiguračního okna z nabídky a pak:
- Na záložce systém jsem změnil heslo, nastavil bootování na CLI a nezaškrtl Automatické přihlášení
- Na kartě rozhraní jsem povolil 1vodičový
- Klikl na ok a restartoval
Pokud se potřebujete kdykoli vrátit k GUI, stačí zadat příkaz startx v rozhraní CLI
startx
Krok 3: Nastavte datovou jednoduchost pro povolení vzdáleného přístupu
Našel jsem opravdu užitečný záznam blogu na webu Dataplicity na https://blog.dataplicity.com/how-to-build-a-raspb… a použil jsem několik jeho částí. Část 3 blogu popisuje nastavení Dataplicity pro vzdálený přístup k RPi. Nikdy předtím jsem Dataplicity nepoužíval, ale musím říci, že jej velmi doporučuji jako velmi jednoduchý nástroj pro vzdálený přístup. Přestože jsou screenshoty (na blogu výše) trochu zastaralé, princip je v pořádku.
Na počítači přejděte na Dataplicity.com a vytvořte si účet (můžete použít prohlížeč v GUI, ale na RPi Zero spíše pomalý). Poté klikněte na tlačítko „přidat nové zařízení“a ve vyskakovacím okně se zobrazí řádek kódu. Poté přejděte na CLI na RPi a zadejte řádek textu. Pokud je vše v pořádku, zobrazí se logo Dataplicity a spustí se instalační program.
Zpět na vašem počítači, nové zařízení by se nyní mělo objevit na webu Dataplicity. Klikněte na zařízení a měla by se vám zobrazit obrazovka terminálu pro váš RPi.
Zde je třeba poznamenat několik věcí:
- Chcete -li se přihlásit, zadejte „su pi“(pro přístup superuživatele) a budete vyzváni k zadání hesla (jak bylo nastaveno dříve)
- Musíte povolit Červí díru (bude použito později)
- K pozdějšímu zobrazení dat budete potřebovat adresu Červí díry (v případě potřeby zkopírujte pravým tlačítkem)
Tento vzdálený přístup můžete použít pro všechny následující kroky a je mnohem jednodušší pro kopírování dat, programů atd. Než přímo na RPi.
Krok 4: Zkontrolujte senzory
Nyní můžete použít Dataplicity vzdáleně přístup k RPI pro všechny další sekce.
Pokud je nyní vše v pořádku, měli byste vidět teploty, které se vracejí z DS18B20. Pracoval jsem prostřednictvím tutoriálu Pi Hut, ale většina z toho nebyla vyžadována. Pokud chcete úplné informace, najdete je zde:
Důležité je přejít do adresáře zařízení a ujistit se, že jsou zobrazeny 2 různé senzory.
cd/sys/bus/w1/zařízení/
To by mělo ukázat 2 zařízení začínající na 28 a sběrnicový master. Důl ukazuje:
28-011453ebfdaa 28-0114543d5daa w1_bus_master1
Tato 2 ID čísla jsou důležitá a budou potřeba později! Poté přejděte do jednoho z adresářů senzorů:
cd 28-011453ebfdaa
(například) a poté načíst hodnotu ze snímače
kočka w1_slave
Měly by být zobrazeny 2 řádky textu:
53 01 4b 46 7f ff 0c 10 2d: crc = 2d ANO
53 01 4b 46 7f ff 0c 10 2d t = 21187
ANO ukazuje, že snímač čte správně, a 21187 ukazuje teplotu ve stupních Celsia 21,187 (děleno 1 000) Opakujte toto pro kontrolu druhého snímače. Pokud jsou obě v pořádku, můžeme přejít ke čtení dat pomocí Pythonu3.
Zkopíroval jsem a upravil následující kód, který jsem našel na webu, ale nemohu si vzpomenout odkud. Pokud to vypadá jako váš kód, omlouvám se, protože nebylo zamýšleno žádné plagiátorství; dejte mi prosím vědět a já vaši práci potvrdím.
Vytvořte adresář s názvem projects a přejděte do tohoto adresáře.
mkdir ~/projekty
cd ~/projekty
V tomto adresáři použijte textový editor (nano) k vytvoření a úpravě souboru s názvem thermo-test.py
sudo nano thermo-test.py
Tím se měl otevřít editor a protože používáte Dataplicity, můžete jednoduše zkopírovat následující kód níže (thermo-test.py) a vložit do editoru. Budete muset změnit 2 názvy zařízení (od 28 do…) na výše uvedená. Když vše vypadá správně, stiskněte ctrl+X pro dokončení, Y pro uložení a návrat k použití stávajícího jména. Pokud dáváte přednost používání GUI, Thonny udělá to samé.
Spuštění testovacího programu:
sudo python3 thermo-test.py
Všechno je v pořádku, mělo by to spustit soubor pomocí pythonu 3 a vytisknout na obrazovku 2 teploty každých 10 sekund. Můžete vyzkoušet, zda je vše v pořádku, umístěním 1 senzoru do ledové vody nebo jemným zahřátím fénem. Pokud je vše v pořádku, můžeme pokračovat!
Krok 5: Firewall UFW
Vzhledem k tomu, že tento RPi bude trvale připojen k internetu, rozhodl jsem se, že by byl dobrý firewall a jeho jednoduchým použitím je nekomplikovaný firewall (ufw). Zde je velmi jednoduchý návod
Nejdu do velké hloubky, protože toto není účelem tohoto Instructable, ale ve zkratce:
Nainstalujte bránu firewall pomocí:
sudo apt-get install ufw
Nastavit výchozí pravidla:
sudo ufw default povolit odchozí
sudo ufw výchozí odepřít příchozí
Otevřený port 80 pro Dataplicity
sudo ufw povolit 80
Povolte bránu firewall
sudo ufw povolit
Zkontrolujte stav a ujistěte se, že vše běží
stav sudo ufw
Krok 6: S ukončení teplotních dat jako JSON
Zpět na blog Tima Fernanda a sekci 5.
Postupujte podle uvedených pokynů (kromě toho, že jsme již vytvořili adresář projektů) a vše by mělo fungovat dobře. Pomocí GIT stáhnete Timovy aplikační soubory a PIP zajistí, že jsou do vašeho RPi nainstalovány všechny požadované programy. Poté jsem zjistil, že musím restartovat, abych se ujistil, že všechny balíčky byly správně nastaveny.
Poté spusťte program Tim a váš RPi by pak měl poskytovat data JSON pro první senzor.
cd home/pi/projects/temperature-serve-pi
teplota sudo gunicorn: app -b 0,0.0.0:80
Můžete pokračovat přes blog do sekce 6, kde najdete údaje poskytnuté pro 1 ze senzorů.
K zobrazení dat můžete také použít prohlížeč JSON Viewer https://codebeautify.org/jsonviewer Klikněte na tlačítko „načíst URL“a vložte adresu červí díry, která byla uvedena dříve. V levém podokně byste měli vidět dva záznamy, jeden pro stupně Celsia a jeden pro stupně Fahrenheita.
Krok 7: Odeslání dat z obou senzorů
Na základě kódu v temperature.py a thermo-test.py jsem vytvořil 2temps.py Upravené jako dříve v adresáři /projects /temperature-serve-pi, vložil do kódu a uložil. Pak jsem běžel
sudo gunicorn 2temps: app -b 0,0.0.0:80
Když jsem znovu spustil prohlížeč JSON, dostal jsem hodnoty pro temp1 a temp2
Úspěch:)
Krok 8: Automatické spuštění
Jelikož se napájení skleníku občas vypíná, chtěl jsem, aby RPi automaticky nahrál program a začal prokazovat data. Nejjednodušším způsobem se zdá být úprava souboru rc.local a přidání požadovaného kódu do spodní části těsně nad řádek exit 0.
cd atd
sudo nan rc.local
poté doplněk
spát 10
cd home/pi/projects/temperature-serve-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &
- & Na konci řekne počítači, aby spustil skript v podsvícení, aby váš počítač nečekal na ukončení funkce a pokračoval v zavádění
- Spánek 10 [sekund] zajistí, že všechny předchozí operace budou dokončeny před spuštěním služby.
Ukončete a uložte jako dříve. Poté restartujte a znovu spusťte prohlížeč JSON, abyste zkontrolovali, že je vše v pořádku.
Pokud chcete více informací o automaticky spuštěných programech, zde je skvělý návod
Krok 9: Zobrazte data na Freeboard.io (1)
Kroky v Timově blogu fungují v souhrnu dobře; vytvořte si účet na www.freeboard.io a poté vytvořte nový Freeboard, nazval jsem svůj SHEDTEMPERATURES.
Nejprve přidejte zdroj dat, vpravo nahoře klikněte na PŘIDAT a ve vyskakovacím okně vyberte jako typ JSON, pojmenujte zdroj dat JMÉNO, jako adresu URL přidejte adresu červí díry z dřívější doby a pro VYZKOUŠEJTE VĚCNOST klikněte na NE. Teploty se mění jen velmi pomalu a tak OBNOVIT KAŽDÝCH 15 SEKUND je v pořádku. Klikněte na ULOŽIT.
Krok 10: Zobrazte data na Freeboard.io (2)
První widget přidáte kliknutím na PŘIDAT PANEL a poté na +. Můžete si vybrat a hrát s různými TYPY, ale zjistil jsem, že Gauge je v pořádku. Zadejte vhodný TITLE, UNITS (C), MINIMUM a MAXIMUM, aby vyhovoval vaší aplikaci. U DATASOURCE klikněte na + a objeví se výše vytvořený zdroj.
Rozevírací seznam by měl nyní zobrazovat dříve vytvořené 2 zdroje dat JSON (temp2 a temp2). Vyberte příslušný zdroj a klikněte na Uložit.
Opakujte to pro druhý měřič a jsme připraveni.
Data by se nyní měla zobrazovat na 2 měřidlech a pokud máte stále PRi připojené k monitoru, měli byste vidět požadavky z Freeboard.io, jak přicházejí.
Krok 11: Sestavte projekt do krabice
Až do tohoto bodu byly RPi a ostatní komponenty sestaveny na lavičce pomocí prkénka. Malý kousek stripboardu byl poté použit k výměně prkénka a všechny vodiče byly připájeny na místo.
Byl nalezen jasně růžový malý úložný box Lego, který měl spoustu místa a kde by se RPI příliš nezahřívalo. do boků krabice byly vyvrtány otvory a 3 mm nylonové montážní sloupky byly použity k uchycení RPi a stripboardu na místo.
Z GPIO jsou vyžadována pouze 3 připojení, 3,3 V, GND a data.
- Pin 3,3 Vdc 1
- GND pin 6
- Datový (GPIO4) pin 7
V krabici byly také přidány otvory pro napájení USB a kabely k teplotním senzorům. Jakmile bylo vše namontováno na místo, bylo přidáno malé množství silikonového tmelu, aby se zajistilo, že si pavouci nebudou myslet, že je to příjemné teplé místo k zimování!
Krok 12: Hotovo
Krabice byla umístěna do skleníku a napájena z USB nabíječky. Dva senzory byly umístěny jeden v horní části skleníku a druhý na květináč, aby se zjistilo, jak se sazenice v noci chladí.
Toto je můj první Instructable a doufám, že si myslíte, že je to v pořádku. Pokud najdete nějaké chyby, dejte mi prosím vědět a já je v případě potřeby opravím. Dalším krokem může být protokolování dat každých (řekněme) 60 sekund, ale to přijde později.
Doporučuje:
Zesilovač LM3886, duální nebo můstkový (vylepšený): 11 kroků (s obrázky)
Výkonový zesilovač LM3886, duální nebo můstkový (vylepšený): Kompaktní dvojitý výkonový (nebo můstkový) zesilovač lze snadno sestavit, pokud máte nějaké zkušenosti s elektronikou. Je vyžadováno pouze několik dílů. Samozřejmě je ještě snazší postavit mono zesilovač. Zásadními problémy jsou napájení a chlazení
MOSTER FET - duální 500Amp 40voltový ovladač MOSFET 3d tiskárny s vyhřívanou postelí: 7 kroků (s obrázky)
MOSTER FET - duální 500Amp 40voltový MOSFET 3D tiskárna vyhřívané ovladače postele: Pravděpodobně jste klikli na tuto myslící svatou krávu, 500 AMPS !!!!! Abych byl upřímný, deska MOSFET, kterou jsem navrhl, nebude schopna bezpečně dělat 500Amps. Krátce to mohlo, těsně předtím, než to vzrušeně vzplanulo, nebylo to navrženo tak, aby to bylo
Levný duální napájecí zdroj projektu 30V/2A: 7 kroků (s obrázky)
Levný duální napájecí zdroj pro projekt 30V/2A: Při hledání napájecích modulů a LCD obrazovek jsem narazil na několik těchto levných modulů LCD 35W pro napájení 0,5-30V @3A (50W s chladičem a rázovým proudem 4A). Má nastavení napětí a omezovač proudu. K dispozici je také
Duální 7segmentové displeje ovládané potenciometrem v CircuitPython - ukázka perzistence vize: 9 kroků (s obrázky)
Duální 7segmentové displeje ovládané potenciometrem v CircuitPython-Demonstrace perzistence vidění: Tento projekt používá potenciometr k ovládání displeje na několika 7segmentových LED displejích (F5161AH). Otáčením knoflíku potenciometru se zobrazené číslo mění v rozsahu 0 až 99. V každém okamžiku svítí pouze jedna LED, velmi krátce, ale
Postavte duální 15V napájecí zdroj pomocí modulů na polici za méně než 50 $: 10 kroků (s obrázky)
Vybudujte duální 15V napájecí zdroj pomocí modulů na polici za méně než 50 USD: Úvod: Pokud jste fandové, kteří se zabývají zvukem, budete obeznámeni s napájecími zdroji se dvěma kolejnicemi. Většina zvukových desek s nízkým výkonem, jako jsou předzesilovače, vyžaduje kdekoli od +/- 5V do +/- 15V. Díky duálnímu napájecímu zdroji je