Sadržaj:
- Supplies
- Korak 1: Hardver
- Korak 2: Postavljanje softvera Raspberry Pi OS
- Korak 3: Postavite Dataplicity da biste omogućili daljinski pristup
- Korak 4: Provjerite senzore
- Korak 5: UFW zaštitni zid
- 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 projekat u kutiju
- Korak 12: Završeno
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
Ovo je moj prvi pokušaj da napišem Instructable i zato me molim vas polako! Ako mislite da ovo nije tako loše, glasajte za mene na Prvom takmičenju autora.
Ovo je moj projekt zaključavanja za daljinsko praćenje 2 temperature u stakleniku, jedne na nivou 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 otkrio 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 senzora temperature 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 sa 2 uređaja
- Dataplicity
- JSON podaci
- Postavljanje zaštitnog zida UFW
- Korištenje Freeboard.io za prikaz podataka
- Konfiguriranje RPi za automatsko pokretanje programa
Ogromne količine podataka mogu se pronaći jednostavnim pretraživanjem svih ovih tema, ali ono što nije tako jasno je kako kombinirati sve te zasebne elemente.
Supplies
- Trebat će vam Raspberry Pi (s monitorom, mišem i tipkovnicom za postavljanje, ali ne i pri pokretanju gotovog projekta)
- Radna internetska veza.
- Napajanje sa mikro USB konektorom
- 2 DS18B20+ jednožilni digitalni temperaturni senzori. Otkrio sam da je Amazon najjeftiniji
- 4K7 ohm otpornik ili sam koristio 2 10K ohm otpornika.
- Mala ploča i nekoliko muško/ž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 odlično izvesti na bilo kojem od RPI -ja. U kutiji čudnih elektronskih bitova u mojoj radionici bilo je svega ostalog (matična ploča, žica, napajanje itd.), Pa sam sve što sam morao kupiti bila dva 2 x DS18B20 senzora 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 pin 3,3v
- Crna - povratak - spojite na pin 6 za uzemljenje
- Žuta - podaci - spojite se na GPIO4 pin 7
Senzori koriste 1-Wire interfejs i bilo ih je vrlo lako povezati i dobiti podatke. Na webu postoji nekoliko stranica s detaljima o povezivanju 1 uređaja, ali vrlo malo o povezivanju 2 (ili više).
Za testiranje na stolu, krug je sastavljen pomoću matične ploče. U vodičima koje sam pronašao navodi se da se koristi 4K7 otpornik za pomicanje podatkovne linije, ali nisam mogao pronaći jedan, pa sam upotrijebio 2* 10K paralelno i radio je sasvim u redu. Na Internetu postoji mnogo resursa za korištenje matične ploče za sastavljanje RPi kola, 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 desktop verziju Raspian -a (gornja opcija) jer bi se na ovaj način instalirao i PIP & GIT koji lite verzija 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. Korištenjem grafičkog sučelja postavio sam RPI po potrebi samo zato što je korištenje grafičkog sučelja jednostavnije od sučelja naredbene linije (CLI). Otvorio sam prozor za konfiguraciju iz menija, a zatim:
- Na sistemskoj kartici promijenio sam lozinku, postavio boot na CLI i neoznačio Auto Login
- Na kartici sučelja omogućio sam 1-žicu
- Kliknuo je u redu i ponovo pokrenuo sistem
Ako se u bilo kojem trenutku trebate vratiti na GUI, samo upišite startx u CLI
startx
Korak 3: Postavite Dataplicity da biste omogućili daljinski pristup
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. Odeljak 3 bloga opisuje postavljanje Dataplicity -a 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 ekrana (na gornjem blogu) pomalo zastarjele, princip je u redu.
Na svom računaru idite na Dataplicity.com i kreirajte račun (mogli biste koristiti preglednik u grafičkom sučelju, ali radije sporo na RPi Zero). Zatim kliknite na dugme „dodaj novi uređaj“i u skočnom prozoru će se prikazati red 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čunaru, novi uređaj bi se sada trebao pojaviti na web stranici Dataplicity. Kliknite na uređaj i trebali biste vidjeti terminalni ekran za svoj RPi.
Ovdje treba napomenuti nekoliko stvari:
- Za prijavu upišite "su pi" (za pristup superkorisniku) i od vas će se traž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 (desni klik 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 direktno 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. Radio sam kroz vodič za Pi Hut, ali većina toga nije bila potrebna. Ako želite potpune detalje, oni se mogu pronaći ovdje:
Važni dijelovi su da odete u direktorij uređaja i provjerite jesu li prikazana 2 različita senzora.
cd/sys/bus/w1/devices/
Ovo bi trebalo prikazati 2 uređaja koji počinju sa 28- i magistralu sabirnice. Moje 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 reda 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 Celzijusovima od 21,187 (podijeljeno s 1000) Ponovite ovo za provjeru drugog senzora. Ako oboje čitaju u redu, možemo prijeći na čitanje podataka pomoću Python3.
Kopirao sam i prilagodio sljedeći kod koji sam pronašao na webu, ali se ne mogu sjetiti odakle. Ako ovo izgleda kao vaš kôd, izvinjavam se jer nije bilo namjere plagiranja; javite mi i priznat ću vaš rad.
Kreirajte direktorij koji se zove projekti i promijenite ga u taj direktorij.
mkdir ~/projects
cd ~/projects
U ovom direktoriju koristite uređivač teksta (nano) za kreiranje 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 donji kod ispod (thermo-test.py) i zalijepiti ga u uređivač. Morat ćete promijeniti 2 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 za korištenje postojećeg imena. 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 pokrenuti datoteku koristeći python 3 i ispisati na ekran 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 zaštitni zid
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 uputstva, ali ukratko:
Instalirajte vatrozid sa:
sudo apt-get install ufw
Postavite zadana pravila:
sudo ufw podrazumevano dozvoljava odlazne
sudo ufw default deny incoming
Otvorite port 80 za Dataplicity
sudo ufw dozvoljava 80
Omogućite zaštitni zid
sudo ufw enable
Provjerite status i provjerite radi li sve
sudo ufw status
Korak 6: S završava podatke o temperaturi kao JSON
Nazad 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 aplikacijske datoteke, a PIP će se pobrinuti da su svi potrebni programi instalirani na vaš RPi. Tada sam otkrio da moram ponovo pokrenuti sistem kako bih se uvjerio da su svi paketi ispravno postavljeni.
Zatim pokrenite Timov program i vaš RPi bi tada trebao pružati JSON podatke za prvi senzor.
cd home/pi/projects/temperature-serve-pi
temperatura sudo gunicorn: app -b 0.0.0.0:80
Možete nastaviti putem bloga do odjeljka 6 gdje ćete pronaći podatke za jedan od senzora.
Također možete koristiti JSON Viewer za pregled podataka https://codebeautify.org/jsonviewer Kliknite na dugme „učitaj URL“i zalijepite na prethodno spomenutu adresu crvotočine. U lijevom oknu trebali biste vidjeti dva unosa, jedan za Celzijus i jedan za Fahrenheit.
Korak 7: Pošaljite podatke s oba senzora
Na osnovu koda u temperature.py i thermo-test.py, kreirao sam 2temps.py Uređeno kao i do sada u /projects /temperature-serve-pi direktorijumu, zalijepljeno u kôd i spremljeno. Potom sam potrčao
sudo gunicorn 2temps: app -b 0.0.0.0:80
Sada, kada sam ponovo pokrenuo JSON Viewer, dobio sam vrijednosti za temp1 & temp2
Uspjeh:)
Korak 8: Automatsko pokretanje
Kako se povremeno isključuje napajanje staklenika, 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 na dno neposredno iznad redaka za izlaz 0.
cd itd
sudo nan rc.local
zatim dodatak
spava 10
cd home/pi/projects/temperature-serve-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &
- & Na kraju govori računaru da pokrene skriptu u podljuzi kako vaš računar ne bi čekao da se funkcija završi i nastavio bi sa 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 ponovo pokrenite JSON Viewer da provjerite je li sve u redu.
Ako želite više informacija o programima koji se automatski pokreću, ovdje je odličan vodič
Korak 9: Prikažite podatke na Freeboard.io (1)
Ukratko, koraci na Timovom blogu rade dobro; 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 PROBAJ THINGPROXY. Temperature se mijenjaju vrlo sporo pa je OSVJEŽITI SVAKIH 15 SECUNDA u redu. Pritisnite SAVE.
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 različitim 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 i 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 PRi još uvijek imate spojen na monitor, trebali biste vidjeti zahtjeve sa Freeboard.io čim stignu.
Korak 11: Izgradite projekat u kutiju
Do ovog trenutka, 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 žice su zalemljene na mjesto.
Pronađena je svijetlo ružičasta mala Lego kutija za skladištenje koja je imala dosta prostora i gdje se RPI ne bi previše zagrijao. rupe su izbušene na bočnim stranama kutije, a najlonski montažni stubovi od 3 mm korišteni su za držanje RPi i trakaste ploče na mjestu.
Potrebne su samo 3 veze od GPIO -a, 3.3v, GND i podataka.
- 3.3vdc pin 1
- GND pin 6
- Podaci (GPIO4) pin 7
U kutiji su također dodane rupe za USB napajanje i kabele na senzorima temperature. Nakon što je sve montirano na svoje mjesto, dodana je mala količina silikonskog brtvila kako bi se osiguralo da pauci ne misle da je to lijepo toplo mjesto za zimu!
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 saksiju za biljke kako bi provjerili koliko je sadnicama hladno noću.
Ovo je moj prvi Instructable i nadam se da mislite da je to u redu. Ako pronađete bilo kakve greške, obavijestite me i ja ću ih izmijeniti prema potrebi. Sljedeći korak bi mogao biti bilježenje podataka svakih (recimo) 60 sekundi, ali to će doći kasnije.
Preporučuje se:
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD-karticom - DHT11 Zapisnik podataka Simulacija u Proteusu: 5 koraka
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD-karticom | DHT11 Simulator zapisnika podataka u Proteusu: Uvod: zdravo, ovdje Liono Maker, ovdje je YouTube veza. Radimo na kreativnom projektu s Arduinom i radimo na ugrađenim sistemima. Zapisnik podataka: Zapisnik podataka (također zapisnik podataka ili snimač podataka) je elektronički uređaj koji bilježi podatke tokom vremena sa
ESP8266 NodeMCU pristupna tačka (AP) za web poslužitelj s senzorom temperature DT11 i temperaturom i vlažnošću 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: Zdravo momci, u većini projekata koristimo ESP8266, au većini projekata koristimo ESP8266 kao web poslužitelj pa se podacima može pristupiti bilo koji uređaj preko WiFi -a pristupajući web -poslužitelju na ESP8266, ali jedini problem je što nam treba radni usmjerivač za
Slanje-IOT-podataka-bežičnog-senzora temperature i vlažnosti-senzora-u-MySQL: 41 korak
Slanje-podataka-IOT-bežičnog-senzora temperature i vlažnosti-senzora-u-MySQL: Predstavljamo NCD-ov dugoročni IoT osjetnik temperature i vlažnosti. Zahvaljujući rasponu do 28 milja i bežičnom mrežnom arhitekturom, ovaj senzor prenosi podatke o vlažnosti (± 1,7%) i temperaturi (± 0,3 ° C) u intervalima koje definira korisnik, spavajući
Prikaz temperature i vlažnosti i prikupljanje podataka s Arduinom i obradom: 13 koraka (sa slikama)
Prikaz temperature i vlažnosti i prikupljanje podataka s Arduinom i obradom: Uvod: Ovo je projekt koji koristi Arduino ploču, senzor (DHT11), Windows računalo i program za obradu (besplatan za preuzimanje) za prikaz podataka o temperaturi, vlažnosti u digitalnom i obrazac trakastog grafikona, prikaz vremena i datuma i pokretanje odbrojavanja
EAL-Industri4.0-RFID prikupljanje podataka do baze podataka: 10 koraka (sa slikama)
EAL-Industri4.0-RFID podatkovno prikupljanje podataka u bazi podataka: Ovaj projektni upravitelj opsamlira sve podatke i podatke, registrovane kao identifikator u vašoj bazi podataka. RFID, zaostajanje podataka u MySQL bazi podataka. node-RED, samo ažuriranje i ponašanje u skladu sa općenitim podacima u et C# programu koji se formira u aplikaciji Windows Form