Obsah:
- Zásoby
- Krok 1: Hardvér
- Krok 2: Nastavenie softvéru Raspberry Pi OS
- Krok 3: Nastavte údaje tak, aby umožňovali vzdialený prístup
- Krok 4: Skontrolujte senzory
- Krok 5: Firewall UFW
- Krok 6: S ukončenie teplotných údajov ako JSON
- Krok 7: Odoslanie údajov z oboch senzorov
- Krok 8: Automatické spustenie
- Krok 9: Zobrazte údaje na Freeboard.io (1)
- Krok 10: Zobrazte údaje na Freeboard.io (2)
- Krok 11: Zostavte projekt do škatule
- Krok 12: Hotovo
Video: Server údajov o duálnej teplote IoT: 12 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Toto je môj prvý pokus o napísanie inštrukcie, a preto mi prosím dajte pokoj! Ak si myslíte, že to nie je zlé, dajte mi prosím hlas v Prvej autorskej súťaži.
Toto je môj projekt Lock-Down na diaľkové monitorovanie 2 teplôt v skleníku, jednej na úrovni podlahy a jednej tesne pod strechou. Napriek tomu, že som predtým používal Raspberry Pi (RPi), tento projekt zahŕňal niekoľko prvkov, ktoré som nepoužil, a počas cesty som našiel niekoľko návodov, ktoré boli zastarané alebo nesprávne. Toto je moja zbierka znalostí, aby som vyrobil funkčný duálny diaľkový monitor teploty z digitálnych snímačov teploty Pi Zero & 2 DS18B20+ One Wire, ktoré sme získali počas cesty.
Veci, o ktorých som sa dozvedel:
- Sprístupnenie údajov zo zariadenia v rámci internetu vecí (IoT)
- 1-Wire rozhranie s 2 zariadeniami
- Dataplicity
- Údaje JSON
- Nastavenie brány firewall UFW
- Na zobrazenie údajov sa používa Freeboard.io
- Konfigurácia RPi na automatické spustenie programu
Existuje veľké množstvo údajov, ktoré je možné nájsť pomocou jednoduchého vyhľadávania na všetky tieto témy, ale to, čo nie je také jasné, je spôsob, ako skombinovať všetky tieto samostatné prvky.
Zásoby
- Budete potrebovať Raspberry Pi (s monitorom, myšou a klávesnicou na nastavenie, ale nie pri spustení dokončeného projektu)
- Fungujúce internetové pripojenie.
- Napájací zdroj s konektorom Micro USB
- 2 z DS18B20+ jednodrátových digitálnych snímačov teploty. Zistil som, že Amazon je najlacnejší
- Rezistor 4K7 ohm alebo som použil 2 odpory 10K ohm.
- Malé nepájivé pole a niekoľko mužských/ženských drôtov na testovanie na lavičke
- Malý kus pásovej dosky na konečnú montáž
- Jednoduché nástroje na spájkovanie a odizolovanie drôtu.
- Malý plastový box na uloženie hotového dizajnu
Krok 1: Hardvér
Už som mal Raspberry Pi Zero W (s bezdrôtovým pripojením), ale som si istý, že tento jednoduchý projekt bude fungovať dobre na akomkoľvek RPI. Krabica nepárnych elektronických bitov v mojej dielni mala všetko ostatné (nepájivú dosku, drôt, PSU atď.), A tak som si musel kúpiť iba dva snímače 2 x DS18B20 od Amazonu. Jedná sa o bežné čipy DS18B20, ktoré sú pohodlne namontované vo vodotesnom kryte a 3 m kábli. Z kábla sú 3 vodiče:
- Červená - napájanie - pripojte ku kolíku 3,3 V 1
- Čierny - návrat - pripojte k uzemňovaciemu kolíku 6
- Žltá - údaje - pripojenie k pinu GPIO4 7
Senzory používajú rozhranie 1-Wire a bolo veľmi jednoduché ich pripojiť a získať z nich údaje. Na webe je niekoľko stránok s podrobnosťami o pripojení 1 zariadenia, ale iba málo o pripojení 2 (alebo viacerých).
Na testovanie na lavičke bol obvod zostavený pomocou nepájivej dosky. Návody, ktoré som našiel, uvádzali, že na rezistenciu voči dátovej linke je použitý odpor 4K7, ale nenašiel som ho, a tak sa používa 2* 10 K paralelne a funguje to dobre. Na webe je veľa zdrojov na použitie nepájivého poľa na zostavenie obvodov RPi, a preto ich tu nebudem opakovať.
Diagram vytvorený pomocou schémy zapojenia
Krok 2: Nastavenie softvéru Raspberry Pi OS
Keďže som toto RPi používal predtým, rozhodol som sa začať s čistou inštaláciou OS, naformátoval som kartu SD a nainštaloval čistú verziu NOOBS. Potom som nainštaloval plnú desktopovú verziu Raspian (najvyššia možnosť), pretože by sa tým nainštaloval aj PIP & GIT, čo verzia lite nie. Aj keď som pre projekt nepotreboval grafické užívateľské rozhranie (GUI), je to ľahký spôsob, ako nastaviť všetky možnosti, a vďaka 16 GB SD karte nebol nedostatok miesta.
Nastavil som prístup WI-FI, potom spustil úplnú inštaláciu a potom sprievodcu s aktualizáciami a aktualizáciami atď. Pomocou GUI nastavím RPI podľa potreby len preto, že používanie GUI je jednoduchšie ako rozhranie príkazového riadka (CLI). V ponuke som prešiel do konfiguračného okna a potom:
- Na karte systém som zmenil heslo, nastavil bootovanie na CLI a nezaškrtol Automatické prihlásenie
- Na karte rozhrania som povolil 1-vodičový
- Kliknite na tlačidlo OK a reštartujte počítač
Ak sa potrebujete kedykoľvek vrátiť k grafickému rozhraniu, zadajte príkaz startx v rozhraní CLI
startx
Krok 3: Nastavte údaje tak, aby umožňovali vzdialený prístup
Našiel som skutočne užitočný záznam v blogu na stránke Dataplicity na https://blog.dataplicity.com/how-to-build-a-raspb… a použil som niekoľko jeho častí. Časť 3 blogu popisuje nastavenie Dataplicity pre vzdialený prístup k RPi. Nikdy predtým som Dataplicity nepoužíval, ale musím povedať, že ho dôrazne odporúčam ako veľmi jednoduchý nástroj na vzdialený prístup. Napriek tomu, že snímky obrazovky (v blogu vyššie) sú trochu zastarané, princíp je v poriadku.
Na počítači prejdite na stránku Dataplicity.com a vytvorte si účet (prehliadač by ste mohli používať v grafickom rozhraní), ale na počítači RPi Zero by ste ho mali spomaliť). Potom kliknite na tlačidlo „pridať nové zariadenie“a v kontextovom okne sa zobrazí riadok kódu. Potom choďte na CLI na RPi a zadajte riadok textu. Ak je všetko v poriadku, zobrazí sa logo Dataplicity a spustí sa inštalačný program.
Späť na vašom počítači, nové zariadenie by sa teraz malo objaviť na webe Dataplicity. Kliknite na zariadenie a mala by sa vám zobraziť obrazovka terminálu pre váš RPi.
Tu je potrebné poznamenať niekoľko vecí:
- Ak sa chcete prihlásiť, zadajte „su pi“(pre prístup superužívateľov) a zobrazí sa výzva na zadanie hesla (ako bolo uvedené vyššie)
- Musíte povoliť Červiu dieru (použiť neskôr)
- Na neskoršie zobrazenie údajov budete potrebovať adresu Červej diery (v prípade potreby skopírujete pravým tlačidlom myši)
Tento vzdialený prístup môžete použiť na všetky nasledujúce kroky a je oveľa jednoduchšie kopírovať údaje, programy atď. Než priamo na RPi.
Krok 4: Skontrolujte senzory
Teraz môžete vo všetkých ďalších častiach používať vzdialený prístup k RPI od spoločnosti Dataplicity.
Ak je teraz všetko v poriadku, mali by ste vidieť teploty vrátené z DS18B20. Pracoval som prostredníctvom tutoriálu Pi Hut, ale väčšina z toho nebola potrebná. Ak chcete úplné informácie, nájdete ich tu:
Dôležité je prejsť do adresára zariadení a uistiť sa, že sú zobrazené 2 rôzne senzory.
cd/sys/bus/w1/zariadenia/
To by malo ukázať 2 zariadenia začínajúce na 28- a master zbernice. Moje ukazuje:
28-011453ebfdaa 28-0114543d5daa w1_bus_master1
Tieto 2 identifikačné čísla sú dôležité a budú potrebné neskôr! Potom prejdite na jeden z adresárov senzorov:
cd 28-011453ebfdaa
(napríklad) a potom odčítajte hodnotu zo snímača
mačka w1_slave
Mali by byť zobrazené 2 riadky textu:
53 01 4b 46 7f ff 0c 10 2d: crc = 2d ÁNO
53 01 4b 46 7f ff 0c 10 2d t = 21187
ÁNO ukazuje, že snímač správne číta a 21187 ukazuje teplotu v stupňoch Celzia 21,187 (delené 1 000) Zopakujte to a skontrolujte druhý snímač. Ak sú obe v poriadku, môžeme pristúpiť k čítaniu údajov pomocou Python3.
Skopíroval som a upravil nasledujúci kód, ktorý som našiel na webe, ale neviem si spomenúť odkiaľ. Ak to vyzerá ako váš kód, ospravedlňujem sa, pretože nebolo určené žiadne plagiátorstvo; dajte mi prosím vedieť a ja vašu prácu potvrdím.
Vytvorte adresár s názvom projects a prejdite do neho.
mkdir ~/projekty
cd ~/projekty
V tomto adresári pomocou textového editora (nano) vytvorte a upravte súbor s názvom thermo-test.py
sudo nano thermo-test.py
Tým sa mal otvoriť editor a pretože používate aplikáciu Dataplicity, stačí skopírovať nasledujúci kód nižšie (thermo-test.py) a vložiť ho do editora. Budete musieť zmeniť 2 názvy zariadení (od 28 do…) na tie, ktoré sú uvedené vyššie. Keď všetko vyzerá správne, dokončite stlačením ctrl+X, stlačením Y uložte a vráťte sa k použitiu existujúceho názvu. Ak dávate prednosť použitiu GUI, Thonny urobí to isté.
Spustenie testovacieho programu:
sudo python3 thermo-test.py
Ak je všetko v poriadku, malo by sa spustiť súbor pomocou pythonu 3 a vytlačiť na obrazovku 2 teploty každých 10 sekúnd. Všetko môžete otestovať vložením 1 senzora do ľadovej vody alebo jemným zahriatím sušičom vlasov. Ak je všetko v poriadku, môžeme pokračovať!
Krok 5: Firewall UFW
Keďže tento RPi bude trvale pripojený k internetu, rozhodol som sa, že bude dobrým riešením firewall a jeho používanie je jednoduché - nekomplikovaný firewall (ufw). Tu je veľmi jednoduchý návod
Nejdem do veľkej hĺbky, pretože toto nie je účelom tohto Pokynu, ale v skratke:
Nainštalujte bránu firewall pomocou:
sudo apt-get install ufw
Nastavte predvolené pravidlá:
sudo ufw predvolené povoliť odchádzajúce
sudo ufw predvolené odmietnuť prichádzajúce
Otvorte port 80 pre Dataplicity
sudo ufw povoliť 80
Povoľte bránu firewall
sudo ufw povoliť
Skontrolujte stav a uistite sa, že je všetko spustené
stav sudo ufw
Krok 6: S ukončenie teplotných údajov ako JSON
Späť na blog Tima Fernanda a časť 5.
Postupujte podľa uvedených pokynov (okrem toho, že sme už vytvorili adresár projektov) a všetko by malo fungovať dobre. Pomocou GIT stiahnete Timove aplikačné súbory a PIP zaistí, aby boli do vášho RPi nainštalované všetky požadované programy. Potom som zistil, že potrebujem reštartovať, aby som sa ubezpečil, že všetky balíky sú správne nastavené.
Potom spustite Timov program a vaše RPi by potom mali poskytovať údaje JSON pre prvý senzor.
cd domov/pi/projekty/teplota-obsluha-pi
teplota sudo gunicorn: app -b 0,0.0,0:80
Prostredníctvom blogu môžete pokračovať do sekcie 6, kde nájdete údaje o 1 zo senzorov.
Na zobrazenie údajov môžete použiť aj prehliadač JSON Viewer https://codebeautify.org/jsonviewer Kliknite na tlačidlo „načítať adresu URL“a prilepte na červenú dieru uvedenú vyššie. Na ľavom paneli by ste mali vidieť dva záznamy, jeden pre stupne Celzia a jeden pre stupne Fahrenheita.
Krok 7: Odoslanie údajov z oboch senzorov
Na základe kódu v temperature.py a thermo-test.py som vytvoril 2temps.py Upravené ako predtým v adresári /projects /temperature-serve-pi, vložené do kódu a uložené. Potom som bežal
sudo gunicorn 2 teploty: aplikácia -b 0,0.0,0:80
Keď som znova spustil prehliadač JSON, dostal som hodnoty pre temp1 a temp2
Úspech:)
Krok 8: Automatické spustenie
Pretože sa napájanie skleníka občas vypína, chcel som, aby RPi automaticky načítal program a začal dokazovať údaje. Zdá sa, že najjednoduchším spôsobom je upraviť súbor rc.local a pridať požadovaný kód v spodnej časti tesne nad riadok ukončenia 0.
cd atď
sudo nan rc.local
potom doplnok
spať 10
cd home/pi/projects/temperature-serve-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &
- & Na konci povie počítaču, aby skript spustil v podskupine, aby váš počítač nečakal na ukončenie funkcie a pokračoval v zavádzaní
- Režim spánku 10 [sekúnd] zaistí, že pred spustením služby budú dokončené všetky predchádzajúce operácie.
Ukončite a uložte ako predtým. Potom reštartujte a znova spustite prehliadač JSON, aby ste zistili, že je všetko v poriadku.
Ak chcete viac informácií o automaticky spustených programoch, nájdete tu skvelý návod
Krok 9: Zobrazte údaje na Freeboard.io (1)
Kroky v Timovom blogu, zhrnuté, fungujú dobre; vytvorte si účet na www.freeboard.io a potom vytvorte nový Freeboard, ktorý som nazval SHEDTEMPERATURES.
Najprv pridajte zdroj údajov, kliknite na položku PRIDAŤ vpravo hore a v rozbaľovacom zozname vyberte typ JSON, pomenujte zdroj údajov NÁZOV, ako adresu URL pridajte adresu červej diery z predchádzajúceho obdobia a kliknutím na položku VYSKÚŠAJTE VECI. Teploty sa menia len veľmi pomaly, a tak OBNOVAŤ KAŽDÝCH 15 SEKÚN je v poriadku. Kliknite na ULOŽIŤ.
Krok 10: Zobrazte údaje na Freeboard.io (2)
Prvú miniaplikáciu pridáte kliknutím na PRIDAŤ PANEL a potom na +. Môžete si vybrať a hrať s rôznymi TYPMI, ale zistil som, že Gauge je v poriadku. Zadajte vhodný TITUL, JEDNOTKY (C), MINIMUM a MAXIMUM, ktoré vyhovujú vašej aplikácii. Pri DATASOURCE kliknite na + a zobrazí sa zdroj vytvorený vyššie.
Rozbaľovacia ponuka by teraz mala zobrazovať 2 zdroje údajov JSON (temp2 a temp2) vybudované skôr. Vyberte príslušný zdroj a kliknite na tlačidlo Uložiť.
Opakujte to pre druhý rozchod a sme pripravení.
Údaje by sa teraz mali zobrazovať na 2 meradlách a ak máte stále PRi pripojené k monitoru, mali by ste vidieť požiadavky z Freeboard.io, ako prichádzajú.
Krok 11: Zostavte projekt do škatule
Až do tohto bodu boli RPi a ostatné komponenty zostavené na lavičke pomocou nepájivej dosky. Malý kus pásovej dosky sa potom použil na výmenu dosky a všetky vodiče boli spájkované na svoje miesto.
Našiel sa jasne ružový malý úložný box Lego, ktorý mal dostatok miesta a kde by sa RPI príliš neohriali. Do bokov škatule boli vyvŕtané otvory a na upevnenie RPi a pásovej dosky na miesto boli použité 3 mm nylonové montážne stĺpiky.
Z GPIO sú potrebné iba 3 pripojenia, 3,3 V, GND a dáta.
- Pin 3,3 V DC 1
- GND pin 6
- Dátový (GPIO4) pin 7
V škatuli boli tiež pridané otvory pre napájanie USB a káble k teplotným senzorom. Akonáhle bolo všetko namontované na svoje miesto, bolo pridané malé množstvo silikónového tmelu, aby sa zaistilo, že pavúky si nemyslia, že je to pekné teplé miesto na zimovanie!
Krok 12: Hotovo
Krabica bola umiestnená do skleníka a napájaná z USB nabíjačky. Dva senzory boli umiestnené jeden v hornej časti skleníka a druhý na kvetináč, aby zistili, ako sa sadenice v noci ochladzujú.
Toto je môj prvý pokyn a dúfam, že si myslíte, že je v poriadku. Ak nájdete nejaké chyby, dajte mi vedieť a v prípade potreby ich opravím. Ďalším krokom môže byť zaznamenanie údajov každých (povedzme) 60 sekúnd, ale to príde neskôr.
Odporúča:
Analýza údajov o teplote/vlhkosti pomocou Ubidotov a tabuliek Google: 6 krokov
Analýza teplôt/vlhkosti pomocou Ubidotov a tabuliek Google: V tomto tutoriáli budeme merať rôzne údaje o teplote a vlhkosti pomocou snímača teploty a vlhkosti. Dozviete sa tiež, ako odoslať tieto údaje do Ubidots. Aby ste ho mohli analyzovať odkiaľkoľvek pre rôzne aplikácie. Tiež odoslaním
Odosielanie údajov o bezdrôtových vibráciách a teplote do tabuliek Google pomocou Node-RED: 37 krokov
Odosielanie údajov o bezdrôtových vibráciách a teplote do tabuliek Google pomocou Node-RED: Predstavujeme priemyselný bezdrôtový snímač vibrácií a teploty IoT s dlhým dosahom NCD od spoločnosti NCD, ktorý sa môže pochváliť dosahom až 2 míle použitím štruktúry bezdrôtovej sieťovej siete. Toto zariadenie obsahuje presný 16-bitový snímač vibrácií a teploty a
Arduino odosiela údaje o teplote a vlhkosti na server MySQL (PHPMYADMIN): 5 krokov
Arduino odosiela údaje o teplote a vlhkosti na server MySQL (PHPMYADMIN): V tomto projekte som prepojil DHT11 s arduino a potom odosielam údaje dht11, čo je vlhkosť a teplota, do databázy phpmyadmin. Tu používame jeden skript PHP na odosielanie údajov do databázy phpmyadmin
Záznamník údajov o teplote a vlhkosti z Arduina do telefónu s Androidom s modulom karty SD cez Bluetooth: 5 krokov
Záznamník údajov o teplote a vlhkosti z Arduina na telefón s Androidom s modulom karty SD cez Bluetooth: Dobrý deň, toto je môj vôbec prvý návod, dúfam, že pomôžem komunite tvorcov, pretože mi to prinieslo úžitok. V našich projektoch často používame senzory, ale nachádzame spôsob, ako zhromažďovať údaje, ukladať ich a okamžite prenášať telefóny alebo iné zariadenia
Ako vytvoriť záznamník údajov o teplote, PH a rozpustenom kyslíku: 11 krokov (s obrázkami)
Ako vytvoriť záznamník údajov o teplote, PH a rozpustenom kyslíku: Ciele: Vytvorte záznamník údajov za ≤ 500 dolárov. Ukladá údaje o teplote, pH a DO s časovým údajom a pomocou komunikácie I2C. Prečo I2C (medziintegrovaný obvod)? Jeden môže nahromadiť toľko senzorov v rovnakom rade, pretože každý z nich má