
Tartalomjegyzék:
- Kellékek
- 1. lépés: Hardver
- 2. lépés: Raspberry Pi OS szoftver telepítése
- 3. lépés: A Dataplicity beállítása a távoli hozzáférés engedélyezéséhez
- 4. lépés: Ellenőrizze az érzékelőket
- 5. lépés: UFW tűzfal
- 6. lépés: S fejezze be a hőmérsékleti adatokat JSON néven
- 7. lépés: Adatok küldése mindkét érzékelőből
- 8. lépés: Automatikus indítás
- 9. lépés: Az adatok megjelenítése a Freeboard.io webhelyen (1)
- 10. lépés: Az adatok megjelenítése a Freeboard.io -n (2)
- 11. lépés: Építse a projektet egy dobozba
- 12. lépés: Kész
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47

Ez az első kísérletem az Instructable írására, és kérem, nyugodtan velem! Ha úgy gondolja, hogy ez nem túl rossz, akkor kérem, szavazzon rám az Első Szerzői Versenyen.
Ez az én Lock-Down projektem, amely távolról figyeli az üvegházban 2 hőmérsékletet, egyet a padló szintjén, egyet pedig a tető alatt. Bár korábban már használtam a Raspberry Pi -t (RPi), ez a projekt több olyan elemet tartalmazott, amelyeket még nem használtam, és útközben több olyan oktatóanyagot találtam, amelyek elavultak vagy éppen rosszak. Ez az én ismereteim gyűjteménye egy működő kettős távoli hőmérséklet -monitor elkészítéséhez az út során megszerzett Pi Zero & 2 DS18B20+ egyvezetékes digitális hőmérséklet -érzékelőkből.
Amit megtudtam:
- Adatok elérhetővé tétele egy eszközről a tárgyak internete (IoT) részeként
- 1 vezetékes interfész 2 eszközzel
- Dataplicity
- JSON adatok
- Az UFW tűzfal beállítása
- A Freeboard.io használata az adatok megjelenítésére
- Az RPi konfigurálása a program automatikus futtatásához
Hatalmas mennyiségű adat található meg egyszerű kereséssel mindezen témákban, de az nem annyira egyértelmű, hogy hogyan lehet ezeket a különálló elemeket kombinálni.
Kellékek
- Szükséged lesz egy Raspberry Pi -re (monitorral, egérrel és billentyűzettel a beállításhoz, de nem a kész projekt futtatásakor)
- Működő internetkapcsolat.
- PSU Micro USB csatlakozóval
- A DS18B20+ egyvezetékes digitális hőmérséklet -érzékelők közül 2. Azt találtam, hogy az Amazon volt a legolcsóbb
- 4K7 ohmos ellenállás, vagy 2 db 10K ohmos ellenállást használtam.
- Kis kenyérsütő lemez és néhány férfi/női vezeték a padon való teszteléshez
- Kis darab szalagpapír a végső összeszereléshez
- Egyszerű eszközök forrasztáshoz és huzalcsupaszításhoz.
- Kis műanyag doboz a kész design elhelyezésére
1. lépés: Hardver


Volt már Raspberry Pi Zero W (vezeték nélküli), de biztos vagyok benne, hogy ez az egyszerű projekt minden RPI -n jól fog működni. A műhelyemben található páratlan elektronikus bitek dobozában minden más megtalálható volt (kenyérlap, vezeték, tápegység stb.), Így csak két 2 x DS18B20 érzékelőt kellett vásárolnom az Amazon -tól. Ezek a normál DS18B20 chipek, amelyeket kényelmesen vízálló házba és 3 méteres kábelbe szereltek. A kábelből 3 vezeték van:
- Piros - tápellátás - csatlakoztassa a 3.3V -os tüskéhez 1
- Fekete - visszatérő - csatlakoztassa a földelőcsaphoz 6
- Sárga - adatok - csatlakozzon a GPIO4 7. tűhöz
Az érzékelők az 1 vezetékes interfészt használják, és nagyon könnyen csatlakoztathatók voltak és adatokat szerezhettek be. Az interneten több oldal található, amelyek 1 eszköz csatlakoztatásának részleteit tartalmazzák, de nagyon keveset a 2 (vagy több) csatlakoztatásáról.
A padon végzett teszteléshez az áramkört kenyérsütő deszkával állították össze. Az általam megtalált oktatóanyagok azt állították, hogy 4K7 ellenállást használnak az adatvonal torzítására, de nem találtam egyet, és ezzel párhuzamosan használt 2* 10K -t, és jól működött. Rengeteg erőforrás található a weben a kenyértábla használatához RPi áramkörök összeállításához, ezért itt nem ismétlem meg őket.
A diagram az áramkör diagram segítségével készült
2. lépés: Raspberry Pi OS szoftver telepítése



Mivel korábban ezt az RPi -t használtam, úgy döntöttem, hogy az operációs rendszer tiszta telepítésével kezdem, újraformáztam az SD -kártyát, és telepítettem a NOOBS tiszta verzióját. Ezután feltelepítettem a Raspian teljes asztali verzióját (a legfelső opció), mivel ez telepítené a PIP & GIT -t is, amelyet a Lite verzió nem. Annak ellenére, hogy a projekthez nem volt szükségem a grafikus felhasználói felületre (GUI), ez egy egyszerű módja az összes lehetőség beállításának, és egy 16 GB -os SD -kártyával nem volt helyhiány.
Beállítottam a WI-FI hozzáférést, majd futtattam a teljes telepítést, majd a varázslót frissítésekkel és frissítésekkel stb. A GUI használatával szükség szerint beállítom az RPI-t, csak mert a GUI használata egyszerűbb, mint a parancssori felület (CLI). A menüből a konfigurációs ablakba mentem, majd:
- A rendszer lapon megváltoztattam a jelszót, beállítottam, hogy CLI -re induljon, és nem jelöltem be az Automatikus bejelentkezést
- Az interfész lapon engedélyeztem az 1 vezetékes csatlakozást
- Kattintson az OK gombra és indítsa újra
Ha bármikor vissza kell térnie a grafikus felülethez, írja be a startx parancsot a CLI -be
startx
3. lépés: A Dataplicity beállítása a távoli hozzáférés engedélyezéséhez



Egy igazán hasznos blogbejegyzést találtam a Dataplicity oldalon a https://blog.dataplicity.com/how-to-build-a-raspb… címen, és ennek néhány részét használtam fel. A blog 3. szakasza leírja a Dataplicity beállítását az RPi távoli eléréséhez. Még soha nem használtam a Dataplicityt, de meg kell mondanom, alaposan ajánlom, mint egy nagyon egyszerű távoli elérési eszközt. Bár a képernyőképek (a fenti blogban) kissé elavultak, az elv rendben van.
Számítógépén nyissa meg a Dataplicity.com webhelyet, és hozzon létre egy fiókot (használhatja a böngészőt a grafikus felületen, de lassú az RPi Zero esetén). Ezután kattintson az „új eszköz hozzáadása” gombra, és az előugró ablakban megjelenik egy kódsor. Ezután lépjen a CLI -re az RPi -n, és írja be a szöveg sorát. Ha minden rendben van, megjelenik a Dataplicity logó, és a telepítőprogram fut.
A számítógépen most az új eszköznek meg kell jelennie a Dataplicity webhelyen. Kattintson az eszközre, és látnia kell az RPi terminál képernyőjét.
Itt néhány dolgot meg kell jegyezni:
- A bejelentkezéshez írja be a "su pi" parancsot (a superuser hozzáféréshez), és a rendszer kéri a jelszót (a korábban beállított módon)
- Engedélyeznie kell a féreglyukat (későbbi használatra)
- Szüksége lesz a féreglyukcímre az adatok későbbi megjelenítéséhez (kattintson a jobb gombbal a másoláshoz, ha szükséges)
Ezt a távoli hozzáférést a következő lépésekhez használhatja, és sokkal könnyebb adatokat, programokat stb. Másolni, mint közvetlenül az RPi -n.
4. lépés: Ellenőrizze az érzékelőket
Mostantól a Dataplicity távolról is hozzáférhet az RPI -hez az összes következő szakaszhoz.
Ha most minden rendben van, akkor látnia kell a DS18B20 -ból visszatérő hőmérsékletet. A Pi Hut bemutatóján keresztül dolgoztam, de ennek nagy része nem volt kötelező. Ha szeretné a részleteket, itt megtalálhatja:
A legfontosabb bitek az eszközök könyvtárába való belépés és a 2 különböző érzékelő megjelenítése.
cd/sys/bus/w1/devices/
Ennek két eszközt kell megjelenítenie, amelyek 28-tól kezdődnek, és a buszmestert. Az enyém mutatja:
28-011453ebfdaa 28-0114543d5daa w1_bus_master1
Ez a 2 azonosító szám fontos, és szükség lesz rájuk később! Ezután váltson az egyik érzékelőkönyvtárra:
cd 28-011453ebfdaa
(például), majd olvassa ki az értéket az érzékelőből
macska w1_szolga
2 sornyi szöveget kell megjeleníteni:
53 01 4b 46 7f ff 0c 10 2d: crc = 2d IGEN
53 01 4b 46 7f ff 0c 10 2d t = 21187
A YES azt mutatja, hogy az érzékelő helyesen olvas, a 21187 pedig 21,187 Celsius -fokos hőmérsékletet (osztva 1000 -el) Ismételje meg ezt a második érzékelő ellenőrzéséhez. Ha mindkettő rendben van, akkor folytathatjuk az adatok Python3 -mal történő olvasását.
Másoltam és adaptáltam a következő kódot, amelyet a weben találtam, de nem emlékszem, honnan. Ha ez úgy néz ki, mint a kódja, akkor elnézést kérek, mivel nem plagizáltak; kérlek jelezd és elismerem a munkádat.
Hozzon létre egy projektek nevű könyvtárat, és váltson arra a könyvtárra.
mkdir ~/projektek
cd ~/projektek
Ebben a könyvtárban használja a szövegszerkesztőt (nano) a thermo-test.py nevű fájl létrehozásához és szerkesztéséhez
sudo nano thermo-test.py
Ennek meg kellett volna nyitnia a szerkesztőt, és a Dataplicity használata során egyszerűen másolja ki az alábbi kódot (thermo-test.py), és illessze be a szerkesztőbe. Meg kell változtatnia a két eszköznevet (28–… kezdve) a fentiekre. Ha minden megfelelőnek tűnik, nyomja meg a ctrl+X billentyűt a befejezéshez, az Y gombot a mentéshez és a visszatéréshez a meglévő név használatához. Ha inkább a grafikus felületet szeretné használni, akkor Thonny is ezt fogja tenni.
A tesztprogram futtatásához:
sudo python3 thermo-test.py
Ha minden rendben van, akkor futtassa a fájlt a python 3 használatával, és 10 másodpercenként nyomtassa ki a képernyőre a 2 hőmérsékletet. Megvizsgálhatja, hogy minden rendben van -e, ha 1 érzékelőt jeges vízbe tesz, vagy óvatosan hajszárítóval melegíti. Ha minden rendben van, akkor léphetünk tovább!
5. lépés: UFW tűzfal

Mivel ez az RPi állandóan kapcsolódni fog az internethez, úgy döntöttem, hogy egy tűzfal jó ötlet, és egyszerűen használható az egyszerű (nem egyszerű) tűzfal (ufw). Van egy nagyon egyszerű oktatóanyag itt:
Nem megyek mélyre, mert nem ez a célja ennek az utasításnak, de röviden:
Telepítse a tűzfalat az alábbiakkal:
sudo apt-get install ufw
Állítsa be az alapértelmezett szabályokat:
sudo ufw alapértelmezés szerint engedélyezi a kimenő üzeneteket
sudo ufw alapértelmezett megtagadja a bejövőt
Nyissa meg a 80 -as portot a Dataplicity számára
sudo ufw engedélyezi a 80 -at
Engedélyezze a tűzfalat
sudo ufw enable
Ellenőrizze az állapotot, és győződjön meg arról, hogy minden fut
sudo ufw állapot
6. lépés: S fejezze be a hőmérsékleti adatokat JSON néven

Vissza Tim Fernando blogjához és az 5. részhez.
Kövesse a leírt lépéseket (kivéve, ha már létrehoztuk a projektek könyvtárát), és mindennek jól kell működnie. A GIT használatával letölti Tim alkalmazásfájljait, és a PIP gondoskodik arról, hogy az összes szükséges program telepítve legyen az RPi -re. Aztán rájöttem, hogy újra kell indítanom, hogy megbizonyosodjak arról, hogy a csomagok megfelelően vannak beállítva.
Ezután futtassa Tim programját, és az RPi -nek JSON -adatokat kell szolgáltatnia az első érzékelőhöz.
cd home/pi/projektek/hőmérséklet-szerviz-pi
sudo gunicorn hőmérséklet: kb -b 0.0.0.0:80
Folytathatja a blogon a 6. részt, ahol az egyik érzékelő adatait szolgáltatja.
A JSON Viewer segítségével megtekintheti az adatokat is. Https://codebeautify.org/jsonviewer Kattintson az „URL betöltése” gombra, és illessze be a féreglyuk címét. A bal oldali ablaktáblán két bejegyzést kell látnia, az egyik Celsius -fokot és a Fahrenheit -értéket.
7. lépés: Adatok küldése mindkét érzékelőből

A Tempera..py és a thermo-test.py fájlban található kód alapján létrehoztam a 2temps.py Edited-t a /projektek /Temperature-serve-pi könyvtárban, beillesztettem a kódba és elmentettem. Aztán futottam
sudo gunicorn 2temps: app -b 0.0.0.0:80
Most, amikor újra futtattam a JSON Viewer programot, a temp1 és temp2 értékeket kaptam
Siker:)
8. lépés: Automatikus indítás

Mivel az üvegház áramellátása időnként leáll, azt akartam, hogy az RPi automatikusan betöltse a programot, és elkezdje bizonyítani az adatokat. A legegyszerűbb módja az rc.local fájl szerkesztése és a szükséges kód hozzáadása az alján, közvetlenül a exit 0 sor fölött.
cd stb
sudo nan rc.local
majd add-in
aludni 10
cd home/pi/projektek/Temperature-serve-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &
- A & végén azt mondja a számítógépnek, hogy futtassa a szkriptet egy alhéjban, hogy a számítógép ne várja meg, amíg a funkció leáll, és folytatja a rendszerindítást
- A Sleep 10 [másodperc] biztosítja, hogy a szolgáltatás megkezdése előtt minden korábbi művelet befejeződött.
Lépjen ki és mentse, mint korábban. Ezután indítsa újra és futtassa újra a JSON Viewer alkalmazást, hogy ellenőrizze, minden rendben van-e.
Ha további információra van szüksége az automatikusan futó programokról, itt talál egy nagyszerű oktatóanyagot
9. lépés: Az adatok megjelenítése a Freeboard.io webhelyen (1)

Tim blogjának lépései jól működnek, összefoglalva; hozzon létre egy fiókot a www.freeboard.io webhelyen, majd hozzon létre egy új Freeboard -ot, az enyém SHEDTEMPERATURES.
Először adjon hozzá egy adatforrást, kattintson a Hozzáadás gombra a jobb felső sarokban, és az előugró ablakban válassza ki a JSON típust, adjon meg egy nevet az adatforrásnak, adja hozzá a korábbi féreglyukcímet URL-ként, és kattintson a NEM gombra a TRY THINGPROXY elemhez. A hőmérséklet csak nagyon lassan változik, így 15 másodpercenként MINDENKÉppen frissíteni kell. Kattintson a MENTÉS gombra.
10. lépés: Az adatok megjelenítése a Freeboard.io -n (2)




Kattintson az ADD PANE, majd a + gombra az első modul hozzáadásához. Választhatsz és játszhatsz különböző TYPE -kkal, de azt találtam, hogy a Gauge rendben volt. Adja meg az alkalmazásának megfelelő CÍMET, EGYSÉGEKET (C), MINIMUMAT és MAXIMUMOT. Az DATASOURCE esetében kattintson a + gombra, és megjelenik a fent létrehozott forrás.
A legördülő menüben most a 2 JSON adatforrást (temp2 és temp2) kell megjeleníteni. Válassza ki a megfelelő forrást, majd kattintson a Mentés gombra.
Ismételje meg ezt a második mérővel, és készen állunk.
Az adatokat most meg kell jeleníteni a 2 mérőn, és ha a PRi továbbra is monitorhoz van csatlakoztatva, akkor látnia kell a Freeboard.io kéréseit, amint megérkeznek.
11. lépés: Építse a projektet egy dobozba




Eddig a pontig az RPi -t és a többi alkatrészt a padon szerelték össze kenyérsütő deszkával. Ezután egy kis darab szalaglemezt használtak a kenyértábla és a vezetékek helyére forrasztására.
Egy élénk rózsaszín kis Lego tároló dobozt találtak, amelyben sok hely volt, és ahol az RPI nem melegszik fel túlságosan. lyukakat fúrtak a doboz oldalába, és 3 mm -es nejlon rögzítőoszlopokat használtak az RPi és a szalaglemez helyén tartására.
A GPIO -tól mindössze 3 kapcsolat szükséges, 3.3v, GND és adat.
- 3.3Vdc pin 1
- GND csap 6
- Adatok (GPIO4) 7. tű
A dobozba lyukakat is hozzáadtak az USB tápellátáshoz és a hőmérsékletszenzorok kábeleihez. Miután minden a helyére került, kis mennyiségű szilikon tömítőanyagot adtak hozzá annak biztosítására, hogy a pókok ne gondolják, hogy ez egy kellemes meleg hely a télre!
12. lépés: Kész


A dobozt az üvegházba helyezték, és USB töltőről táplálták. A két érzékelőt az egyik az üvegház teteje közelében, a másikat egy növénycserepre helyezték, hogy ellenőrizzék, mennyire hideg a palánták éjjel.
Ez az első Instructable, és remélem, úgy gondolja, hogy rendben van. Ha hibát talál, kérem jelezze, és szükség esetén módosítom. A következő lépés lehet az adatok naplózása (mondjuk) 60 másodpercenként, de ez később lesz.
Ajánlott:
Dual Trace oszcilloszkóp: 11 lépés (képekkel)

Kettős nyomú oszcilloszkóp: Amikor megépítettem az előző mini oszcilloszkópomat, látni akartam, hogy mennyire tudom elérni, hogy a legkisebb ARM mikrovezérlőm STM32F030 (F030) teljesítményt nyújtson, és szép munkát végzett. Az egyik megjegyzésben azt javasolták, hogy egy " Kék pirula " STM32F103 -mal
MOSTER FET - Dual 500Amp 40 voltos MOSFET 3d nyomtató fűtött ágy meghajtók: 7 lépés (képekkel)

MOSTER FET - Dual 500Amp 40 Voltos MOSFET 3d nyomtatóval fűtött ágy meghajtók: Valószínűleg erre a gondolkodó szent tehénre kattintott, 500 AMPS !!!!!. Hogy őszinte legyek, az általam tervezett MOSFET tábla nem képes biztonságosan 500Amp -re. Lehet, hogy egy rövid ideig, közvetlenül azelőtt, hogy izgatottan lángba borulna. Ezt nem úgy tervezték, hogy ügyes legyen
Dual Sensor Echo Locator: 7 lépés (képekkel)

Dual Sensor Echo Locator: a.cikkek {font-size: 110,0%; betűtípus súlya: félkövér; betűtípus: dőlt; szövegdíszítés: nincs; háttérszín: piros;} a.cikkek: lebegés {background-color: fekete;} Ez az utasítás elmagyarázza, hogyan lehet pontosan meghatározni egy objektum helyét egy
Dual Axis Tracker V2.0: 15 lépés (képekkel)

Dual Axis Tracker V2.0: Még 2015 -ben terveztünk egy egyszerű Dual Axis Tracker programot szórakoztató diák- vagy hobbiprojektként. Kicsi volt, zajos, kicsit bonyolult, és sok nagyon furcsa közösségi megjegyzést váltott ki. Mondjuk három és fél év múlva
Légszennyezés -ellenőrzés - IoT-Data Viz-ML: 3 lépés (képekkel)

Légszennyezés -ellenőrzés | IoT-Data Viz-ML: Tehát ez alapvetően egy teljes IoT-alkalmazás, amely hardveres és szoftveres részt is tartalmaz. Ebben az oktatóanyagban láthatja, hogyan kell beállítani az IoT -eszközt, és hogyan figyelhetjük meg a levegőben lévő különböző típusú szennyező gázokat