Turinys:
- Prekės
- 1 žingsnis: Aparatūra
- 2 veiksmas: Raspberry Pi OS programinės įrangos sąranka
- 3 veiksmas: nustatykite „Dataplicity“, kad leistumėte nuotolinę prieigą
- 4 žingsnis: patikrinkite jutiklius
- 5 veiksmas: UFW užkarda
- 6 veiksmas: S baigiant temperatūros duomenis kaip JSON
- 7 veiksmas: siųskite duomenis iš abiejų jutiklių
- 8 žingsnis: automatinis paleidimas
- 9 veiksmas: rodykite duomenis „Freeboard.io“(1)
- 10 veiksmas: rodykite duomenis „Freeboard.io“(2)
- 11 žingsnis: surinkite projektą į dėžutę
- 12 žingsnis: Baigta
Video: Dvigubos temperatūros duomenų serveris: 12 žingsnių (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Tai pirmas mano bandymas parašyti „Instructable“, todėl prašau neskubėkite! Jei manote, kad tai nėra labai blogai, balsuokite už mane pirmojo autoriaus konkurse.
Tai yra mano „Lock-Down“projektas, skirtas nuotoliniu būdu stebėti 2 temperatūras šiltnamyje, vieną grindų lygyje, o kitą po stogu. Nors anksčiau naudoju „Raspberry Pi“(RPi), šis projektas apėmė keletą elementų, kurių nenaudojau, ir pakeliui radau keletą pamokymų, kurios buvo pasenusios arba tiesiog neteisingos. Tai yra mano žinių rinkinys, kaip pasigaminti veikiantį dvigubą nuotolinį temperatūros monitorių iš „Pi Zero & 2 DS18B20+ One Wire“skaitmeninių temperatūros jutiklių.
Dalykai, apie kuriuos sužinojau:
- Duomenų teikimas iš įrenginio kaip daiktų interneto (daiktų interneto) dalis
- 1 laido sąsaja su 2 įrenginiais
- Dataplicity
- JSON duomenys
- UFW užkardos nustatymas
- „Freeboard.io“naudojimas duomenims rodyti
- RPi konfigūravimas automatiškai paleisti programą
Yra daug duomenų, kuriuos galima rasti paprastu paiešku visomis šiomis temomis, tačiau ne taip aišku, kaip sujungti visus šiuos atskirus elementus.
Prekės
- Jums reikės „Raspberry Pi“(su monitoriumi, pele ir klaviatūra, kad galėtumėte nustatyti, bet ne tada, kai vykdote baigtą projektą)
- Veikiantis interneto ryšys.
- PSU su „Micro USB“jungtimi
- 2 iš DS18B20+ vieno laido skaitmeninių temperatūros jutiklių. Radau, kad „Amazon“buvo pigiausia
- 4K7 omų rezistorius arba aš naudoju 2 10K omų rezistorius.
- Maža duonos lentelė ir keli laidai, skirti bandymams ant suoliuko
- Mažas juostelės gabalas galutiniam surinkimui
- Paprasti įrankiai litavimui ir vielos nuėmimui.
- Maža plastikinė dėžutė, skirta galutiniam dizainui
1 žingsnis: Aparatūra
Aš jau turėjau „Raspberry Pi Zero W“(su belaidžiu ryšiu), bet esu tikras, kad šis paprastas projektas veiks gerai bet kuriame RPI. Keistų elektroninių bitų dėžutėje mano dirbtuvėse buvo visa kita (duonos plokštė, viela, PSU ir kt.), Todėl viskas, ką turėjau nusipirkti, buvo du 2 x DS18B20 jutikliai iš „Amazon“. Tai yra įprastos DS18B20 mikroschemos, patogiai sumontuotos vandeniui atspariame korpuse ir 3 m kabeliu. Iš kabelio yra 3 laidai:
- Raudona - maitinimas - prijunkite prie 3.3V kaiščio 1
- Juoda - grįžkite - prijunkite prie įžeminimo kaiščio 6
- Geltona - duomenys - prisijunkite prie GPIO4 kaiščio 7
Jutikliai naudoja 1 laido sąsają ir buvo labai lengvai prijungiami ir gaunami duomenys. Internete yra keli puslapiai, kuriuose pateikiama išsami informacija apie 1 įrenginio prijungimą, bet labai mažai apie 2 (ar daugiau) prijungimą.
Bandymams ant stendo grandinė buvo surinkta naudojant duonos lentą. Pamokose, kurias radau, teigiama, kad duomenų linijai šalinti naudojamas 4K7 rezistorius, tačiau nepavyko rasti vieno, taigi lygiagrečiai naudojamo 2* 10K, ir jis veikė puikiai. Internete yra daug išteklių, skirtų naudoti duonos lentą RPi grandinėms surinkti, todėl čia jų nekartosiu.
Diagrama sukurta naudojant grandinės schemą
2 veiksmas: Raspberry Pi OS programinės įrangos sąranka
Kadangi anksčiau naudoju šį RPi, nusprendžiau pradėti nuo švaraus OS diegimo, iš naujo suformataviau SD kortelę ir įdiegiau švarią NOOBS versiją. Tada įdiegiau visą „Raspian“darbalaukio versiją (viršutinė parinktis), nes taip pat būtų įdiegta „PIP & GIT“, o ne „Lite“versija. Nors projektui man nereikėjo grafinės vartotojo sąsajos (GUI), tai yra paprastas būdas nustatyti visas parinktis, o naudojant 16 GB SD kortelę vietos netrūko.
Aš sukūriau WI-FI prieigą, tada paleidau visą diegimą, tada vedlį su atnaujinimais ir atnaujinimais ir tt Naudodama GUI, aš nustatiau RPI kaip reikia tik todėl, kad GUI naudojimas yra paprastesnis nei komandinės eilutės sąsaja (CLI). Meniu nuėjau į konfigūracijos langą ir tada:
- Sistemos skirtuke pakeičiau slaptažodį, nustatiau paleisti į CLI ir nepažymėjau automatinio prisijungimo
- Sąsajų skirtuke įgalinau 1 laidą
- Spustelėkite Gerai ir paleiskite iš naujo
Jei jums reikia bet kada grįžti prie GUI, tiesiog įveskite startx CLI
startas
3 veiksmas: nustatykite „Dataplicity“, kad leistumėte nuotolinę prieigą
Radau tikrai naudingą tinklaraščio įrašą „Dataplicity“svetainėje adresu https://blog.dataplicity.com/how-to-build-a-raspb… ir panaudojau keletą jo dalių. Tinklaraščio 3 skyriuje aprašoma „Dataplicity“nustatymas nuotolinei prieigai prie RPi. Niekada anksčiau nenaudojau „Dataplicity“, tačiau turiu pasakyti, kad aš labai rekomenduoju jį kaip labai paprastą nuotolinės prieigos įrankį. Nors ekrano kopijos (aukščiau esančiame tinklaraštyje) yra šiek tiek pasenusios, principas yra geras.
Kompiuteryje eikite į Dataplicity.com ir sukurkite paskyrą (galite naudoti naršyklę GUI, bet gana lėtai RPi Zero). Tada spustelėkite mygtuką „Pridėti naują įrenginį“ir iššokančiajame lange rodoma kodo eilutė. Tada eikite į RPI CLI ir įveskite teksto eilutę. Jei viskas gerai, pasirodys „Dataplicity“logotipas ir bus paleista diegimo programa.
Grįžęs į kompiuterį, naujasis įrenginys dabar turėtų būti rodomas „Dataplicity“svetainėje. Spustelėkite įrenginį ir turėtumėte pamatyti RPi terminalo ekraną.
Čia reikia atkreipti dėmesį į keletą dalykų:
- Jei norite prisijungti, įveskite „su pi“(prieigai prie viršininko) ir būsite paraginti įvesti slaptažodį (kaip nustatyta anksčiau)
- Turite įgalinti kirmgraužą (bus naudojama vėliau)
- Jums reikės „Kirminų skylės“adreso, kad vėliau galėtumėte rodyti duomenis (dešiniuoju pelės mygtuku spustelėkite, jei norite nukopijuoti)
Šią nuotolinę prieigą galite naudoti atlikdami visus šiuos veiksmus ir daug lengviau kopijuoti duomenis, programas ir tt, nei tiesiogiai RPi.
4 žingsnis: patikrinkite jutiklius
Dabar galite naudoti „Dataplicity“nuotolinę prieigą prie RPI visuose kituose skyriuose.
Jei dabar viskas gerai prijungta, turėtumėte matyti, kaip temperatūra grįžta iš DS18B20. Aš dirbau per „Pi Hut“vadovėlį, tačiau dauguma to nebuvo privalomi. Jei norite išsamios informacijos, jas rasite čia:
Svarbiausia yra patekti į įrenginių katalogą ir įsitikinti, kad rodomi 2 skirtingi jutikliai.
cd/sys/bus/w1/devices/
Tai turėtų parodyti 2 įrenginius, prasidedančius 28 ir magistralės magistralę. Mano rodo:
28-011453ebfdaa 28-0114543d5daa w1_bus_master1
Šie 2 ID numeriai yra svarbūs ir bus reikalingi vėliau! Tada pakeiskite vieną iš jutiklių katalogų:
cd 28-011453ebfdaa
(pavyzdžiui) ir tada nuskaityti vertę iš jutiklio
katė w1_slave
Turėtų būti rodomos 2 teksto eilutės:
53 01 4b 46 7f ff 0c 10 2d: crc = 2d TAIP
53 01 4b 46 7f ff 0c 10 2d t = 21187
TAIP rodo, kad jutiklis skaito teisingai, o 21187 rodo temperatūrą Celsijaus laipsniu 21,187 (padalykite iš 1000) Pakartokite tai, kad patikrintumėte antrąjį jutiklį. Jei abu skaito gerai, galime pereiti prie duomenų skaitymo naudojant „Python3“.
Nukopijavau ir pritaikiau šį kodą, kurį radau internete, bet nepamenu, iš kur. Jei tai atrodo kaip jūsų kodas, atsiprašau, nes nebuvo skirtas plagiatas; praneškite man ir aš pripažinsiu jūsų darbą.
Sukurkite katalogą pavadinimu projektai ir pereikite prie to katalogo.
mkdir ~/projektai
cd ~/projektai
Šiame kataloge naudokite teksto redaktorių (nano), kad sukurtumėte ir redaguotumėte failą, pavadintą thermo-test.py
sudo nano termotestas.py
Tai turėjo atidaryti redaktorių ir, kai naudojate „Dataplicity“, galite tiesiog nukopijuoti žemiau esantį kodą (thermo-test.py) ir įklijuoti į redaktorių. Turėsite pakeisti 2 įrenginių pavadinimus (pradedant 28–…) į aukščiau paminėtus. Kai viskas atrodo teisingai, paspauskite „Ctrl“+X, kad baigtumėte, „Y“, kad išsaugotumėte ir grįžtumėte naudoti esamą pavadinimą. Jei norite naudoti GUI, Thonny padarys tą patį.
Norėdami paleisti testavimo programą:
sudo python3 termotestas.py
Jei viskas gerai, failą reikia vykdyti naudojant „python 3“ir kas 10 sekundžių spausdinti ekrane 2 temperatūras. Galite patikrinti, ar viskas gerai, įdėję 1 jutiklį į ledinį vandenį arba švelniai pašildydami plaukų džiovintuvu. Jei viskas atrodo gerai, galime judėti toliau!
5 veiksmas: UFW užkarda
Kadangi šis RPi buvo nuolat prijungtas prie interneto, nusprendžiau, kad ugniasienė bus gera idėja, o paprasta naudoti - nesudėtinga užkarda (ufw). Čia yra labai paprasta pamoka
Aš nesigilinu į didelį gilumą, nes tai nėra šios instrukcijos tikslas, bet trumpai:
Įdiekite užkardą naudodami:
sudo apt-get install ufw
Nustatykite numatytąsias taisykles:
sudo ufw numatytasis leidimas išeinantis
sudo ufw numatytasis paneigti gaunamus
Atidarykite 80 prievadą „Dataplicity“
sudo ufw leidžia 80
Įjunkite užkardą
sudo ufw įjungti
Patikrinkite būseną ir įsitikinkite, kad viskas veikia
sudo ufw būsena
6 veiksmas: S baigiant temperatūros duomenis kaip JSON
Grįžkite į Tim Fernando tinklaraštį ir 5 skyrių.
Atlikite nurodytus veiksmus (išskyrus tai, kad jau sukūrėme projektų katalogą) ir viskas turėtų veikti gerai. Naudodami GIT atsisiųsite Tim programos failus ir PIP užtikrins, kad visos reikalingos programos būtų įdiegtos jūsų RPi. Tada supratau, kad reikia iš naujo paleisti, kad įsitikintumėte, jog visi paketai buvo teisingai nustatyti.
Tada paleiskite Timo programą ir jūsų RPi turėtų pateikti JSON duomenis pirmajam jutikliui.
cd home/pi/projektai/temperatura-serv-pi
sudo gunicorn temperatūra: programa -b 0.0.0.0:80
Tinklaraštyje galite pereiti prie 6 skyriaus, kuriame rasite duomenis apie vieną jutiklį.
Taip pat galite naudoti „JSON Viewer“, kad pamatytumėte duomenis https://codebeautify.org/jsonviewer Spustelėkite mygtuką „įkelti URL“ir įklijuokite anksčiau nurodytą kirminų skylės adresą. Kairiojoje srityje turėtumėte pamatyti du įrašus: vieną Celsijaus ir vieną Fahrenheit.
7 veiksmas: siųskite duomenis iš abiejų jutiklių
Remdamasis temperatūrose.py ir thermo-test.py esančiais kodais, sukūriau 2temps.py Redaguotas, kaip ir anksčiau, kataloge / / / /temperatūra-serv-pi, įklijavau į kodą ir išsaugojau. Tada bėgau
„sudo gunicorn 2temps“: programa -b 0.0.0.0:80
Dabar, kai iš naujo paleidau „JSON Viewer“, gavau temp1 ir temp2 reikšmes
Sėkmė:)
8 žingsnis: automatinis paleidimas
Kadangi šiltnamio energija kartais išjungiama, norėjau, kad RPi automatiškai įkeltų programą ir pradėtų įrodinėti duomenis. Atrodo, kad paprasčiausias būdas yra redaguoti rc.local failą ir pridėti reikiamą kodą apačioje virš išėjimo 0 eilutės.
cd ir kt
sudo nan rc.local
tada priedas
miegoti 10
cd home/pi/projektai/Temperature-serve-pi sudo gunicorn temp04: programa -b 0.0.0.0:80 &
- & Pabaigoje nurodo kompiuteriui paleisti scenarijų antriniame apvalkale, kad jūsų kompiuteris nelauktų, kol baigsis funkcija, ir toliau bus paleistas
- Miego režimas 10 sekundžių užtikrina, kad visos ankstesnės operacijos būtų baigtos prieš pradedant paslaugą.
Išeikite ir išsaugokite kaip anksčiau. Tada iš naujo paleiskite ir iš naujo paleiskite „JSON Viewer“, kad patikrintumėte, ar viskas gerai.
Jei norite gauti daugiau informacijos apie automatiškai paleidžiamas programas, čia yra puiki pamoka
9 veiksmas: rodykite duomenis „Freeboard.io“(1)
Apibendrinant, Timo tinklaraščio veiksmai veikia gerai; susikurkite paskyrą www.freeboard.io ir sukurkite naują „Freeboard“, aš paskambinau „SHEDTEMPERATURES“.
Pirmiausia pridėkite duomenų šaltinį, viršutiniame dešiniajame kampe spustelėkite PRIDĖTI ir iššokančiajame lange pasirinkite tipą JSON, suteikite duomenų šaltiniui PAVADINIMĄ, pridėkite kirmgraužos adresą iš ankstesnio kaip URL ir spustelėkite NE, kad išbandytumėte THINGPROXY. Temperatūra keičiasi tik labai lėtai, todėl atnaujinkite kas 15 sekundžių. Spustelėkite IŠSAUGOTI.
10 veiksmas: rodykite duomenis „Freeboard.io“(2)
Norėdami pridėti pirmąjį valdiklį, spustelėkite PRIDĖTI PANE, o tada +. Galite pasirinkti ir žaisti su įvairiais TIPAIS, bet aš pastebėjau, kad matuoklis buvo puikus. Nurodykite tinkamą PAVADINIMĄ, VIENETUS (C), MINIMUMĄ ir MAXIMUM, kad jis atitiktų jūsų programą. Norėdami gauti duomenų bazę, spustelėkite + ir pasirodys aukščiau sukurtas šaltinis.
Išskleidžiamajame meniu dabar turėtų būti rodomi 2 anksčiau sukurti JSON duomenų šaltiniai (temp2 ir temp2). Pasirinkite tinkamą šaltinį ir spustelėkite išsaugoti.
Pakartokite tai antram matuokliui ir mes visi pasiruošę.
Duomenys dabar turėtų būti rodomi 2 matuokliuose, o jei PRi vis dar prijungtas prie monitoriaus, turėtumėte matyti „Freeboard.io“užklausas, kai jos bus gautos.
11 žingsnis: surinkite projektą į dėžutę
Iki šiol RPi ir kiti komponentai buvo surinkti ant stendo, naudojant duonos lentą. Tada nedidelis juostelės gabalas buvo naudojamas pakeisti duonos lentą, o visi laidai buvo lituojami.
Buvo rasta ryškiai rožinė maža „Lego“laikymo dėžutė, kurioje buvo daug vietos ir kurioje RPI neįkaistų. dėžutės šonuose buvo išgręžtos skylės ir 3 mm nailono tvirtinimo stulpai buvo naudojami RPi ir juostelėms laikyti.
Iš GPIO reikalingi tik 3 ryšiai, 3.3v, GND ir duomenys.
- 3.3Vdc kaištis 1
- GND kaištis 6
- Duomenų (GPIO4) kaištis 7
Dėžutėje taip pat buvo pridėtos skylės, skirtos USB maitinimo šaltiniui ir kabeliams prie temperatūros jutiklių. Kai viskas buvo sumontuota į vietą, į silikono sandariklį buvo įdėta nedidelė dalis, kad vorai negalvotų, jog tai maloni šilta vieta žiemoti!
12 žingsnis: Baigta
Dėžutė buvo įdėta į šiltnamį ir maitinama iš USB įkroviklio. Du jutikliai buvo pastatyti vienas šalia šiltnamio viršaus, o kitas - ant vazonėlio, kad būtų galima patikrinti, kaip naktį šalta sodinukai.
Tai mano pirmasis „Instructable“ir tikiuosi, kad manote, kad viskas gerai. Jei radote klaidų, praneškite man, jei reikia, pataisysiu. Kitas žingsnis gali būti duomenų registravimas kas 60 sekundžių, bet tai įvyks vėliau.
Rekomenduojamas:
„Raspberry Pi NFS“ir „Samba“failų serveris: 11 žingsnių (su paveikslėliais)
„Raspberry Pi NFS“ir „Samba“failų serveris: Šis projektas yra paskutinis rezultatų etapas, apimantis dvi anksčiau sukurtas ir paskelbtas grandines. *** 1. Raspberry Pi procesoriaus temperatūros indikatorius-paskelbtas 2020 m. Lapkričio 20 d. Raspberry Pi
Kaip padaryti drėgmės ir temperatūros realaus laiko duomenų įrašymo įrenginį naudojant „Arduino UNO“ir SD kortelę - DHT11 duomenų kaupiklio modeliavimas „Proteus“: 5 žingsniai
Kaip padaryti drėgmės ir temperatūros realaus laiko duomenų įrašymo įrenginį naudojant „Arduino UNO“ir SD kortelę | DHT11 duomenų kaupiklio modeliavimas „Proteus“: Įvadas: Sveiki, tai „Liono Maker“, čia yra „YouTube“nuoroda. Mes kuriame kūrybinį projektą su „Arduino“ir dirbame prie įterptųjų sistemų
ESP8266 ir Visuino: DHT11 temperatūros ir drėgmės žiniatinklio serveris: 12 žingsnių
ESP8266 ir Visuino: DHT11 temperatūros ir drėgmės žiniatinklio serveris: ESP8266 moduliai yra puikūs pigūs atskiri valdikliai su įmontuotu „Wi-Fi“, ir aš jau sukūriau keletą instrukcijų apie juos. DTH11/DTH21/DTH22 ir AM2301 yra labai populiarios kombinuotos temperatūros ir drėgmės „Arduino“jutikliai, ir aš padariau skaičių
Temperatūros ir drėgmės rodymas ir duomenų rinkimas naudojant „Arduino“ir apdorojant: 13 žingsnių (su nuotraukomis)
Temperatūros ir drėgmės rodymas ir duomenų rinkimas naudojant „Arduino“ir apdorojant: Įvadas: tai projektas, kuriame naudojama „Arduino“plokštė, jutiklis (DHT11), „Windows“kompiuteris ir apdorojimo (nemokama parsisiunčiama) programa, skirta temperatūrai, drėgmei rodyti skaitmeniniu ir juostos diagramos formą, rodyti laiką ir datą bei skaičiuoti laiką
EAL-Industri4.0-RFID duomenų rinkimo duomenų bazė: 10 žingsnių (su nuotraukomis)
EAL-Industri4.0-RFID duomenų kopijavimas iki duomenų bazės: „Dette projekt omhandler opsamling af v æ gtdata“, registruojantis tapatybę. RFID, bauginantys duomenys ir „MySQL“duomenų bazė. „NOD-RED“, „fremvisning“ir „elgsena“naudojant duomenų rinkinius ir C# programą, kurią sudaro „Windows Form Application“