Sadržaj:
- Pribor
- Korak 1: Hardver
- Korak 2: Postavljanje softvera Raspberry Pi OS
- Korak 3: Postavite Dataplicity za dopuštanje udaljenog pristupa
- Korak 4: Provjerite senzore
- Korak 5: UFW vatrozid
- Korak 6: S završava podatke o temperaturi kao JSON
- Korak 7: Pošaljite podatke s oba senzora
- Korak 8: Automatsko pokretanje
- Korak 9: Prikažite podatke na Freeboard.io (1)
- Korak 10: Prikažite podatke na Freeboard.io (2)
- Korak 11: Izgradite projekt u kutiju
- Korak 12: Završeno
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-23 14:47
Ovo je moj prvi pokušaj da napišem Instructable i zato me polako! Ako mislite da ovo nije tako loše, glasajte za mene na Prvom natječaju za autore.
Ovo je moj projekt zaključavanja za daljinsko praćenje 2 temperature u stakleniku, jedne na razini poda i jedne ispod krova. Iako sam ranije koristio Raspberry Pi (RPi), ovaj projekt je uključivao nekoliko elemenata koje nisam koristio i usput sam pronašao nekoliko vodiča koji su zastarjeli ili jednostavno pogrešni. Ovo je moja zbirka znanja o izradi funkcionalnog dvostrukog daljinskog monitora temperature od Pi Zero & 2 DS18B20+ jednožičnih digitalnih temperaturnih senzora koji je nabavljen usput.
Stvari o kojima sam naučio:
- Omogućavanje dostupnosti podataka s uređaja u sklopu Interneta stvari (IoT)
- 1-žično sučelje s 2 uređaja
- Jačina podataka
- JSON podaci
- Postavljanje vatrozida UFW
- Korištenje programa Freeboard.io za prikaz podataka
- Konfiguriranje RPi za automatsko pokretanje programa
Ogromne su količine podataka koje se mogu pronaći jednostavnim pretraživanjem svih ovih tema, ali ono što nije tako jasno je kako kombinirati sve te zasebne elemente.
Pribor
- Trebat će vam Raspberry Pi (s monitorom, mišem i tipkovnicom za postavljanje, ali ne i pri pokretanju gotovog projekta)
- Radna internetska veza.
- Napajanje s mikro USB priključkom
- 2 DS18B20+ jednožičnih digitalnih temperaturnih senzora. Otkrio sam da je Amazon najjeftiniji
- 4K7 ohm otpornik ili sam koristio 2 10K ohm otpornika.
- Mala ploča i nekoliko muških/ženskih žica za testiranje na klupi
- Mali komad trake za završnu montažu
- Jednostavni alati za lemljenje i skidanje žice.
- Mala plastična kutija za smještaj gotovog dizajna
Korak 1: Hardver
Već sam imao Raspberry Pi Zero W (s bežičnom), ali siguran sam da će se ovaj jednostavan projekt dobro izvesti na bilo kojem od RPI -ja. U kutiji čudnih elektroničkih bitova u mojoj radionici bilo je svega ostalog (matična ploča, žica, napajanje itd.) Pa sam sve što sam morao kupiti bila dva 2x senzora DS18B20 iz Amazona. Ovo su normalni čipovi DS18B20 koji su prikladno postavljeni u vodootporno kućište i kabel od 3 metra. Iz kabela postoje 3 žice:
- Crveno - napajanje - spojite se na 3.3V pin 1
- Crna - povratak - spojite na pin 6 za uzemljenje
- Žuta - podaci - spojite se na GPIO4 pin 7
Senzori koriste 1-Wire sučelje i bilo ih je vrlo lako spojiti i dobiti podatke. Na webu postoji nekoliko stranica s pojedinostima o povezivanju 1 uređaja, ali vrlo malo o povezivanju 2 (ili više).
Za testiranje na klupi, sklop je sastavljen pomoću ploče. Vodiči koje sam pronašao navode da koriste otpornik 4K7 za pristranost podatkovne linije, ali nisam ih mogao pronaći, pa sam paralelno koristio 2* 10K i radio je sasvim u redu. Na Internetu postoji mnogo resursa za korištenje matične ploče za sastavljanje RPi sklopova, pa ih ovdje neću ponavljati.
Dijagram kreiran pomoću sheme kola
Korak 2: Postavljanje softvera Raspberry Pi OS
Kako sam već koristio ovaj RPi, odlučio sam početi s čistom instalacijom OS -a, formatirao sam SD karticu i instalirao čistu verziju NOOBS -a. Zatim sam instalirao punu verziju Raspiana za stolna računala (gornja opcija) jer bi se time instalirao i PIP & GIT koji verzija Lite nema. Iako mi za projekt nije bilo potrebno grafičko korisničko sučelje (GUI), to je jednostavan način za postavljanje svih opcija, a uz SD karticu od 16 GB nije nedostajalo prostora.
Postavio sam WI-FI pristup, zatim pokrenuo potpunu instalaciju, a zatim čarobnjak s ažuriranjima i nadogradnjama itd. Pomoću grafičkog sučelja postavio sam RPI prema potrebi samo zato što je korištenje grafičkog sučelja jednostavnije od sučelja naredbenog retka (CLI). Otvorio sam prozor za konfiguraciju s izbornika, a zatim:
- Na kartici sustava promijenio sam lozinku, postavio za podizanje sustava na CLI i bez potvrde Automatska prijava
- Na kartici sučelja omogućio sam 1-žicu
- Kliknuo je u redu i ponovno se pokrenuo
Ako se u bilo kojem trenutku trebate vratiti na GUI, samo upišite startx u CLI
startx
Korak 3: Postavite Dataplicity za dopuštanje udaljenog pristupa
Našao sam zaista koristan zapis na blogu na web stranici Dataplicity na https://blog.dataplicity.com/how-to-build-a-raspb… i upotrijebio nekoliko dijelova ovoga. Odjeljak 3 bloga opisuje postavljanje Dataplicity za daljinski pristup RPi -u. Nikada prije nisam koristio Dataplicity, ali moram reći da ga temeljito preporučujem kao vrlo jednostavan alat za daljinski pristup. Iako su snimke zaslona (na gornjem blogu) malo zastarjele, princip je u redu.
Na računalu idite na Dataplicity.com i stvorite račun (mogli biste koristiti preglednik u grafičkom sučelju, ali radije sporo na RPi Zero). Zatim kliknite gumb "dodaj novi uređaj" i u skočnom prozoru prikazuje se redak koda. Zatim idite na CLI na RPi i upišite redak teksta. Ako je sve u redu, prikazat će se logotip Dataplicity i pokrenut će se instalacijski program.
Na vašem računalu, novi uređaj trebao bi se sada pojaviti na web stranici Dataplicity. Pritisnite uređaj i trebali biste vidjeti terminalni zaslon za svoj RPi.
Ovdje treba napomenuti nekoliko stvari:
- Za prijavu upišite "su pi" (za pristup superkorisniku) i od vas će se zatražiti lozinka (kao što je ranije postavljeno)
- Morate omogućiti Wormhole (kasnije će se koristiti)
- Za kasnije prikaz podataka trebat će vam adresa crvotočine (desnom tipkom miša kliknite za kopiranje po potrebi)
Ovaj daljinski pristup možete koristiti za sve sljedeće korake i mnogo je lakše kopirati podatke, programe itd. Nego izravno na RPi.
Korak 4: Provjerite senzore
Sada možete koristiti Dataplicity daljinski pristup RPI -u za sve sljedeće odjeljke.
Ako je sada sve u redu, trebali biste moći vidjeti temperature koje se vraćaju s DS18B20. Radila sam kroz tutorial Pi Hut, ali većina toga nije bila potrebna. Ako želite potpune pojedinosti, mogu se pronaći ovdje:
Važni dijelovi moraju ići u direktorij uređaja i provjeriti jesu li prikazana 2 različita senzora.
cd/sys/bus/w1/devices/
Ovo bi trebalo prikazati 2 uređaja koji počinju s 28- i sabirnicu. Moji pokazuju:
28-011453ebfdaa 28-0114543d5daa w1_bus_master1
Ova 2 identifikacijska broja su važna i bit će vam potrebna kasnije! Zatim promijenite u jedan od direktorija senzora:
cd 28-011453ebfdaa
(na primjer), a zatim očitati vrijednost sa senzora
mačka w1_slave
Trebala bi biti prikazana 2 retka teksta:
53 01 4b 46 7f ff 0c 10 2d: crc = 2d DA
53 01 4b 46 7f ff 0c 10 2d t = 21187
DA pokazuje da senzor ispravno čita, a 21187 prikazuje temperaturu u Celzijusima od 21,187 (podijeli s 1000) Ponovite ovo za provjeru drugog senzora. Ako oboje čitaju u redu, možemo prijeći na čitanje podataka s Python3.
Kopirao sam i prilagodio sljedeći kôd koji sam pronašao na webu, ali se ne mogu sjetiti odakle. Ako ovo izgleda kao vaš kôd, ispričavam se jer nije bilo namjere plagiranja; javite mi i priznat ću vaš rad.
Napravite direktorij koji se zove projekti i promijenite ga u taj direktorij.
mkdir ~/projekti
cd ~/projekti
U ovom direktoriju koristite uređivač teksta (nano) za stvaranje i uređivanje datoteke pod nazivom thermo-test.py
sudo nano thermo-test.py
Ovo je trebalo otvoriti uređivač, a dok koristite Dataplicity, možete jednostavno kopirati sljedeći kôd u nastavku (thermo-test.py) i zalijepiti u uređivač. Morat ćete promijeniti dva naziva uređaja (počevši od 28- …) do gore navedenih. Kad sve izgleda ispravno, pritisnite ctrl+X za završetak, Y za spremanje i povratak na korištenje postojećeg naziva. Ako više volite koristiti GUI, Thonny će učiniti isto.
Da biste pokrenuli testni program:
sudo python3 thermo-test.py
Sve u redu, ovo bi trebalo izvršiti datoteku koristeći python 3 i ispisati na zaslon 2 temperature svakih 10 sekundi. Možete provjeriti je li sve u redu stavljanjem 1 senzora u ledenu vodu ili nježnim zagrijavanjem sušilom za kosu. Ako vam se čini da je sve u redu, možemo nastaviti dalje!
Korak 5: UFW vatrozid
Budući da će ovaj RPi biti trajno spojen na internet, odlučio sam da bi Vatrozid bio dobra ideja, a jednostavan za korištenje je Nekomplicirani vatrozid (ufw). Ovdje postoji vrlo jednostavan vodič
Ne ulazim u dubinu jer ovo nije svrha ovog Instructable -a, ali ukratko:
Instalirajte vatrozid sa:
sudo apt-get install ufw
Postavite zadana pravila:
sudo ufw zadano dopušta odlazne
sudo ufw default demanti dolazni
Otvorite port 80 za Dataplicity
sudo ufw dopustiti 80
Omogućite vatrozid
sudo ufw omogućiti
Provjerite status i provjerite radi li sve
sudo ufw status
Korak 6: S završava podatke o temperaturi kao JSON
Natrag na blog Tima Fernanda i odjeljak 5.
Slijedite navedene korake (osim što smo već stvorili direktorij projekata) i sve bi trebalo funkcionirati. Pomoću GIT -a preuzimate Timove datoteke aplikacija, a PIP će se pobrinuti da su svi potrebni programi instalirani na vaš RPi. Tada sam otkrio da se moram ponovno pokrenuti kako bih provjerio jesu li svi paketi ispravno postavljeni.
Zatim pokrenite Timov program i vaš bi RPi tada trebao pružiti JSON podatke za prvi senzor.
cd home/pi/projects/temperature-serve-pi
temperatura sudo gunicorn: app -b 0.0.0.0:80
Preko bloga možete nastaviti do odjeljka 6 gdje ćete pronaći podatke o jednom od senzora.
Također možete upotrijebiti JSON Viewer za pregled podataka https://codebeautify.org/jsonviewer Pritisnite gumb "učitaj URL" i zalijepite na prethodno spomenutu adresu Wormhole. U lijevom oknu trebali biste vidjeti dva unosa, jedan za Celsius i jedan za Fahrenheit.
Korak 7: Pošaljite podatke s oba senzora
Na temelju koda u temperature.py i thermo-test.py, stvorio sam 2temps.py Uređen kao i prije u direktoriju /projects /temperature-serve-pi, zalijepljen u kôd i spremljen. Tada sam potrčao
sudo gunicorn 2temps: app -b 0.0.0.0:80
Kad sam ponovno pokrenuo JSON Viewer, dobio sam vrijednosti za temp1 i temp2
Uspjeh:)
Korak 8: Automatsko pokretanje
Budući da se napajanje staklenika povremeno isključuje, htio sam da RPi automatski učita program i počne dokazivati podatke. Čini se da je najjednostavniji način uređivanje datoteke rc.local i dodavanje potrebnog koda pri dnu neposredno iznad redaka za izlaz 0.
cd itd
sudo nan rc.lokalno
zatim dodatak
spavaj 10
cd home/pi/projects/temperature-serve-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &
- & Na kraju govori računalu da pokrene skriptu u podljusci tako da vaše računalo ne čeka da se funkcija završi i da će nastaviti s pokretanjem
- Spavanje 10 [sekundi] osigurava da su sve prethodne operacije dovršene prije pokretanja usluge.
Izađite i spremite kao i prije. Zatim ponovno pokrenite i ponovno pokrenite JSON Viewer kako biste provjerili je li sve u redu.
Ako želite više informacija o programima koji se automatski pokreću, ovdje je sjajan vodič
Korak 9: Prikažite podatke na Freeboard.io (1)
Ukratko, koraci na Timovu blogu dobro funkcioniraju; stvoriti račun na www.freeboard.io, a zatim stvoriti novi Freeboard, ja sam svoj nazvao SHEDTEMPERATURES.
Prvo dodajte izvor podataka, kliknite DODAJ u gornjem desnom kutu i u skočnom prozoru odaberite JSON kao vrstu, dajte izvoru podataka IME, dodajte adresu crvotočine od ranije kao URL i kliknite NE za TRY THINGPROXY. Temperature se mijenjaju vrlo sporo pa je OSVJEŽITI SVAKIH 15 SEKUNDA u redu. Pritisnite SPREMI.
Korak 10: Prikažite podatke na Freeboard.io (2)
Pritisnite DODAJ PANE, a zatim + za dodavanje prvog widgeta. Možete birati i igrati se s raznim vrstama, ali otkrio sam da je Gauge sasvim u redu. Dajte odgovarajući NASLOV, JEDINICE (C), MINIMUM i MAKSIMUM koji odgovaraju vašoj prijavi. Za IZVOR PODATAKA kliknite + i pojavit će se gore stvoreni izvor.
Padajući izbornik sada bi trebao prikazati 2 JSON izvora podataka (temp2 & temp2) izgrađena ranije. Odaberite odgovarajući izvor i kliknite Spremi.
Ponovite ovo za drugi mjerač i sve je spremno.
Podaci bi se sada trebali prikazati na dva mjerača, a ako još uvijek imate PRi spojen na monitor, trebali biste vidjeti zahtjeve s Freeboard.io čim stignu.
Korak 11: Izgradite projekt u kutiju
Do ovog trenutka svi RPi i ostale komponente bile su sastavljene na klupi pomoću ploče. Zatim je upotrijebljen mali komad trake za zamjenu matične ploče, a svi su vodiči zalemljeni na svoje mjesto.
Pronađena je svijetlo ružičasta mala Lego kutija za pohranu koja je imala dosta prostora i gdje se RPI ne bi previše zagrijao. izbušene su rupe na stranama kutije; 3 mm najlonski stupovi za montažu korišteni su za držanje RPi i trakaste ploče na mjestu.
Za GPIO su potrebne samo 3 veze, 3.3v, GND i podatkovna veza.
- 3.3vdc pin 1
- GND pin 6
- Podatkovni (GPIO4) pin 7
U kutiju su dodane i rupe za USB napajanje i kabele temperaturnih senzora. Nakon što je sve postavljeno na mjesto, dodana je mala količina silikonskog brtvila kako bi se osiguralo da pauci ne misle da je to lijepo toplo mjesto za zimovanje!
Korak 12: Završeno
Kutija je stavljena u staklenik i napajana iz USB punjača. Dva senzora postavljena su jedan blizu vrha staklenika, a drugi na posudu za biljke kako bi provjerili koliko se sadnice hlade noću.
Ovo mi je prvi Instructable i nadam se da mislite da je to u redu. Ako pronađete bilo kakve pogreške, obavijestite me i ja ću ih promijeniti prema potrebi. Sljedeći korak mogao bi biti bilježenje podataka svakih (recimo) 60 sekundi, ali to će doći kasnije.
Preporučeni:
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD karticom - DHT11 Simulator zapisivača podataka u Proteusu: 5 koraka
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD karticom | Simulacija DHT11 zapisničara u Proteusu: Uvod: Bok, ovdje Liono Maker, ovdje je veza na YouTube. Radimo na kreativnom projektu s Arduinom i radimo na ugrađenim sustavima. Zapisnik podataka: Zapisnik podataka (ujedno i zapisnik podataka ili snimač podataka) je elektronički uređaj koji bilježi podatke tijekom vremena s
ESP8266 NodeMCU pristupna točka (AP) za web poslužitelj s senzorom temperature DT11 i temperaturom i vlagom ispisa u pregledniku: 5 koraka
ESP8266 NodeMCU pristupna točka (AP) za web poslužitelj s senzorom temperature DT11 i temperaturom i vlažnošću ispisa u pregledniku: Pozdrav, momci, u većini projekata koristimo ESP8266, a u većini projekata koristimo ESP8266 kao web poslužitelj tako da se može pristupiti podacima na bilo koji uređaj preko WiFi -a pristupom web -poslužitelju na ESP8266, ali jedini problem je što nam treba radni usmjerivač za
Sustav prisutnosti slanjem RFID podataka na MySQL poslužitelj pomoću Pythona s Arduinom: 6 koraka
Sustav prisutnosti slanjem RFID podataka na MySQL poslužitelj pomoću Pythona s Arduinom: U ovom projektu sam spojio RFID-RC522 s arduinom, a zatim šaljem podatke RFID-a u bazu podataka phpmyadmin. Za razliku od naših prethodnih projekata, u ovom slučaju ne koristimo nikakav ethernet štit, ovdje samo čitamo serijske podatke koji dolaze iz ar
Svjetlo upozorenja za rotacijske svjetionike u dvije boje u dvije boje: 6 koraka
Svjetlo upozorenja rotacijskog svjetionika u dvije boje: U ovom Instructable -u stvorit ćemo mini svjetlo. Znate, jedno od onih starinskih rotirajućih svjetala koje su stavljali na građevinsku opremu prije nego što su LED diode postale velike? Da. Jedan od onih. Ovaj će biti relativno jednostavan i malen
EAL-Industri4.0-RFID skupljanje podataka do baze podataka: 10 koraka (sa slikama)
EAL-Industri4.0-RFID skupljanje podataka u bazi podataka: Dette projekt omhandler opsamling iz v æ gtdata, registracija od identiteta vha. RFID, zaostajanje podataka u MySQL bazi podataka. node-RED, samo ažuriranje i ponašanje u skladu s opsamlede podacima u et C# programu formiranim u aplikaciji Windows Form