Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Laitteisto
- Vaihe 2: Raspberry Pi OS -ohjelmiston asennus
- Vaihe 3: Määritä Dataplicity sallimaan etäkäyttö
- Vaihe 4: Tarkista anturit
- Vaihe 5: UFW -palomuuri
- Vaihe 6: S lopettaa lämpötilatiedot JSON -muodossa
- Vaihe 7: Lähetä tietoja molemmilta antureilta
- Vaihe 8: Automaattinen käynnistys
- Vaihe 9: Näytä tiedot Freeboard.io -sivustolla (1)
- Vaihe 10: Näytä tiedot Freeboard.io -sivustolla (2)
- Vaihe 11: Rakenna projekti laatikkoon
- Vaihe 12: Valmis
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:41
Tämä on ensimmäinen yritykseni kirjoittaa Instructable ja siksi ole hyvä! Jos tämä ei mielestäsi ole paha, äänestä minua ensimmäistä kertaa kirjoittajakilpailussa.
Tämä on Lock-Down-projektini, jolla seurataan kahta kasvihuoneen lämpötilaa, toinen lattiatasolla ja toinen katon alla. Vaikka olin käyttänyt Raspberry Pi: tä (RPi) aiemmin, tämä projekti sisälsi useita elementtejä, joita en ollut käyttänyt, ja matkan varrella löysin useita opetusohjelmia, jotka olivat vanhentuneita tai vain väärin. Tämä on kokoelma tietämystäni toimivan kaksoislämpötilamittarin valmistamiseksi matkan varrella hankitusta Pi Zero & 2 DS18B20+ One Wire -digitaalilämpötila -anturista.
Asiat, joista opin:
- Tietojen asettaminen saataville laitteelta osana esineiden Internetiä (IoT)
- 1-johtiminen liitäntä 2 laitteella
- Tietoisuus
- JSON -tiedot
- UFW -palomuurin asentaminen
- Freeboard.io: n käyttäminen tietojen näyttämiseen
- RPi: n määrittäminen käynnistämään ohjelma automaattisesti
On olemassa valtavia määriä tietoja, jotka löytyvät yksinkertaisella haulla kaikista näistä aiheista, mutta mikä ei ole niin selvää, miten kaikki nämä erilliset elementit yhdistetään.
Tarvikkeet
- Tarvitset Raspberry Pi -laitteen (jossa on näyttö, hiiri ja näppäimistö asennusta varten, mutta ei käytettäessä valmiita projekteja)
- Toimiva internetyhteys.
- Virtalähde, jossa on Micro USB -liitäntä
- 2 DS18B20+ -johtimen digitaalisista lämpötila -antureista. Huomasin, että Amazon oli halvin
- 4K7 ohmin vastus tai käytin 2 10K ohmin vastusta.
- Pieni leipälauta ja muutama uros/naarasjohto penkillä testaamista varten
- Pieni pala nauhaa lopulliseen kokoonpanoon
- Yksinkertaiset työkalut juottamiseen ja langan kuorintaan.
- Pieni muovilaatikko valmiin suunnittelun tallentamiseksi
Vaihe 1: Laitteisto
Minulla oli jo Raspberry Pi Zero W (langattomalla), mutta olen varma, että tämä yksinkertainen projekti toimii hyvin millä tahansa RPI: llä. Työpajassani oli pariton elektroninen bitti, jossa oli kaikki muu (leipälevy, lanka, virtalähde jne.), Joten minun piti ostaa vain kaksi 2 x DS18B20 -anturia Amazonilta. Nämä ovat tavallisia DS18B20 -siruja, jotka on asennettu kätevästi vedenpitävään koteloon ja 3 metrin kaapeliin. Kaapelissa on 3 johtoa:
- Punainen - virta - liitä 3,3 voltin nastaan 1
- Musta - paluu - liitä maadoitusnastaan 6
- Keltainen - data - yhdistä GPIO4 -nastaan 7
Anturit käyttävät 1-johdinliitäntää, ja ne olivat erittäin helppo liittää ja saada tietoja. Webissä on useita sivuja, joissa on tietoja yhden laitteen yhdistämisestä, mutta hyvin vähän kahden (tai useamman) yhdistämisestä.
Penkillä testaamista varten piiri koottiin leipälevyllä. Löysin opetusohjelmat väittivät käyttävänsä 4K7 -vastusta datalinjan painottamiseen, mutta en löytänyt yhtä ja niin käytettyä 2* 10K rinnakkain ja se toimi hienosti. Internetissä on paljon resursseja leipälaudan käyttämiseksi RPi -piirien kokoamiseen, joten en toista niitä täällä.
Kaavio luotu piirikaavion avulla
Vaihe 2: Raspberry Pi OS -ohjelmiston asennus
Koska olin käyttänyt tätä RPi: tä aiemmin, päätin aloittaa käyttöjärjestelmän puhtaalla asennuksella, alustin SD -kortin uudelleen ja asensin puhtaan NOOBS -version. Asensin sitten Raspianin täydellisen työpöytäversion (ylin vaihtoehto), koska tämä asentaisi myös PIP & GIT: n, jota lite -versio ei. Vaikka en tarvinnut graafista käyttöliittymää (GUI) projektille, se on helppo tapa määrittää kaikki vaihtoehdot, ja 16 gt: n SD -kortilla ei ollut tilaa.
Asensin WI-FI-yhteyden ja suoritin sitten koko asennuksen ja sitten ohjatun toiminnon päivityksillä ja päivityksillä jne. Käyttäen graafista käyttöliittymää asetan RPI: n tarpeen mukaan vain siksi, että graafisen käyttöliittymän käyttö on yksinkertaisempaa kuin komentoriviliittymä (CLI). Menin asetusvalikkoon valikosta ja sitten:
- Järjestelmä -välilehdessä vaihdoin salasanan, asetin käynnistymään CLI: ksi ja poistin valinnan Automaattinen kirjautuminen
- Liitännät-välilehdessä otin käyttöön 1-johtimisen
- Napsautettiin ok ja käynnistettiin uudelleen
Jos sinun täytyy palata graafiseen käyttöliittymään milloin tahansa, kirjoita CLI -kohtaan startx
startx
Vaihe 3: Määritä Dataplicity sallimaan etäkäyttö
Löysin todella hyödyllisen blogimerkinnän Dataplicity-sivustolta osoitteesta https://blog.dataplicity.com/how-to-build-a-raspb… ja käytin muutamia osia tästä. Blogin osassa 3 kuvataan Dataplicityn määrittäminen RPi: n etäkäyttöä varten. En ole koskaan käyttänyt Dataplicityä, mutta minun on sanottava, että suosittelen sitä erittäin yksinkertaisena etäkäyttötyökaluna. Vaikka kuvakaappaukset (yllä olevassa blogissa) ovat hieman vanhentuneita, periaate on hyvä.
Siirry tietokoneellasi osoitteeseen Dataplicity.com ja luo tili (voit käyttää selainta graafisessa käyttöliittymässä, mutta melko hitaasti RPi Zerolla). Napsauta sitten "Lisää uusi laite" -painiketta ja ponnahdusikkunassa näkyy koodirivi. Siirry sitten RPi: n CLI: hen ja kirjoita tekstirivi. Jos kaikki on kunnossa, Dataplicity -logo tulee näkyviin ja asennusohjelma käynnistyy.
Takaisin tietokoneellasi uuden laitteen pitäisi nyt näkyä Dataplicity -verkkosivustolla. Napsauta laitetta ja sinun pitäisi nähdä RPi -pääteikkuna.
Tässä on huomioitava muutama asia:
- Kirjautuaksesi sisään kirjoita "su pi" (pääkäyttäjän käyttöoikeus) ja sinulta kysytään salasanaa (kuten aiemmin asetettu)
- Sinun on otettava madonreikä käyttöön (käytettäväksi myöhemmin)
- Tarvitset madonreiän osoitteen tietojen näyttämiseksi myöhemmin (kopioi hiiren kakkospainikkeella tarvittaessa)
Voit käyttää tätä etäkäyttöä kaikissa seuraavissa vaiheissa, ja se on paljon helpompaa tietojen, ohjelmien jne. Kopioimiseen kuin suoraan RPi -laitteeseen.
Vaihe 4: Tarkista anturit
Voit nyt käyttää Dataplicityä etäkäytössä RPI: hen kaikissa seuraavissa osioissa.
Jos kaikki on nyt kytketty oikein, sinun pitäisi pystyä näkemään DS18B20 -laitteista palautuvat lämpötilat. Työskentelin Pi Hut -opetusohjelman läpi, mutta suurin osa tästä ei ollut pakollista. Jos haluat täydelliset tiedot, ne löytyvät täältä:
Tärkeät bitit ovat siirtymällä laitehakemistoon ja varmista, että 2 eri anturia näytetään.
cd/sys/bus/w1/devices/
Tämän pitäisi näyttää 2 laitetta, jotka alkavat 28- ja väylän isäntä. Omani näyttää:
28-011453ebfdaa 28-0114543d5daa w1_bus_master1
Nämä kaksi henkilötunnusta ovat tärkeitä ja niitä tarvitaan myöhemmin! Vaihda sitten johonkin anturiluettelosta:
cd 28-011453ebfdaa
(esimerkiksi) ja sitten lukea arvo anturista
kissa w1_orja
Näytössä pitäisi olla 2 riviä tekstiä:
53 01 4b 46 7f ff 0c 10 2d: crc = 2d KYLLÄ
53 01 4b 46 7f ff 0c 10 2d t = 21187
KYLLÄ osoittaa, että anturi lukee oikein ja 21187 näyttää lämpötilan celsiusasteina 21.187 (jaa 1000: lla) Toista tämä tarkistaaksesi toisen anturin. Jos molemmat lukevat ok, voimme siirtyä tietojen lukemiseen Python3: lla.
Kopioin ja mukautin seuraavan koodin, jonka löysin verkosta, mutta en muista mistä. Jos tämä näyttää koodiltasi, pyydän anteeksi, koska plagiointia ei ollut tarkoitettu; kerro minulle, ja tunnustan työsi.
Luo projektihakemisto ja vaihda siihen.
mkdir ~/projektit
cd ~/projektit
Tässä hakemistossa voit luoda ja muokata tiedoston nimeltä thermo-test.py tekstieditorilla (nano)
sudo nano thermo-test.py
Tämän olisi pitänyt avata editori, ja kun käytät Dataplicityä, voit kopioida alla olevan koodin (thermo-test.py) ja liittää sen editoriin. Sinun on muutettava 2 laitteen nimeä (alkaen 28-…) edellä mainittuihin. Kun kaikki näyttää oikealta, paina ctrl+X lopettaaksesi, Y tallentaaksesi ja palataksesi käyttämään olemassa olevaa nimeä. Jos haluat käyttää graafista käyttöliittymää, Thonny tekee saman.
Testiohjelman suorittaminen:
sudo python3 thermo-test.py
Kun kaikki on hyvin, tämän pitäisi suorittaa tiedosto python 3: lla ja tulostaa näytölle 2 lämpötilaa 10 sekunnin välein. Voit testata, että kaikki on kunnossa asettamalla 1 anturi jääveteen tai lämmittämällä varovasti hiustenkuivaajalla. Jos kaikki näyttää olevan kunnossa, voimme jatkaa eteenpäin!
Vaihe 5: UFW -palomuuri
Koska tämä RPi oli pysyvästi yhteydessä Internetiin, päätin, että palomuuri olisi hyvä idea, ja yksinkertainen käyttää on yksinkertainen palomuuri (ufw). Täällä on hyvin yksinkertainen opetusohjelma
En mene kovin syvälle, koska tämä ei ole tämän ohjeen tarkoitus, mutta lyhyesti:
Asenna palomuuri seuraavilla tavoilla:
sudo apt-get install ufw
Aseta oletussäännöt:
sudo ufw oletusarvoisesti salli lähtevät
sudo ufw oletuksena kieltää saapuvat
Avaa portti 80 Dataplicitylle
sudo ufw salli 80
Ota palomuuri käyttöön
sudo ufw käyttöön
Tarkista tila ja varmista, että kaikki on käynnissä
sudo ufw -tila
Vaihe 6: S lopettaa lämpötilatiedot JSON -muodossa
Takaisin Tim Fernandon blogiin ja osaan 5.
Noudata annettuja ohjeita (paitsi että olemme jo luoneet projektihakemiston) ja kaikkien pitäisi toimia hyvin. GIT: n avulla lataat Timin sovellustiedostot ja PIP varmistaa, että kaikki tarvittavat ohjelmat on asennettu RPi -laitteeseesi. Sitten huomasin, että minun on käynnistettävä uudelleen varmistaakseni, että kaikki paketit on asennettu oikein.
Suorita sitten Timin ohjelma ja RPi: n pitäisi sitten tarjota JSON -tietoja ensimmäiselle anturille.
cd home/pi/projektit/lämpötila-palvel-pi
sudo gunicorn -lämpötila: sovellus -b 0.0.0.0:80
Voit jatkaa blogin kautta osioon 6, josta löydät tietoja yhdestä anturista.
Voit myös tarkastella tietoja JSON Viewerin avulla https://codebeautify.org/jsonviewer Napsauta "lataa URL" -painiketta ja liitä aiemmin mainittuun madonreiän osoitteeseen. Vasemmassa ruudussa pitäisi näkyä kaksi merkintää, yksi Celsius ja toinen Fahrenheit.
Vaihe 7: Lähetä tietoja molemmilta antureilta
Lämpötilan.py ja thermo-test.py koodin perusteella olen luonut 2temps.py Edited kuten aikaisemmin hakemistossa /project /temperature-serve-pi, liittänyt koodiin ja tallentanut. Sitten juoksin
sudo gunicorn 2temps: sovellus -b 0.0.0.0:80
Nyt kun suoritin JSON Viewerin uudelleen, sain arvot temp1 ja temp2
Menestys:)
Vaihe 8: Automaattinen käynnistys
Koska kasvihuoneen virta katkeaa ajoittain, halusin, että RPi lataa ohjelman automaattisesti ja alkaa todistaa tietoja. Yksinkertaisin tapa näyttää olevan muokata rc.local -tiedostoa ja lisätä tarvittava koodi alareunaan juuri poistumisrivin 0 yläpuolelle.
cd jne
sudo nan rc.local
sitten lisäosa
nukkua 10
cd home/pi/projektit/lämpötila-serve-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &
- Lopussa oleva & käskee tietokoneen suorittamaan komentosarjan alikuorissa, jotta tietokoneesi ei odota toiminnon päättymistä ja jatkaa käynnistystä
- Lepotila 10 [sekuntia] varmistaa, että kaikki edelliset toiminnot on suoritettu ennen palvelun aloittamista.
Poistu ja tallenna kuten ennenkin. Käynnistä sitten uudelleen ja suorita JSON Viewer uudelleen varmistaaksesi, että kaikki on kunnossa.
Jos haluat lisätietoja automaattisista käynnissä olevista ohjelmista, täällä on loistava opetusohjelma
Vaihe 9: Näytä tiedot Freeboard.io -sivustolla (1)
Yhteenvetona Timin blogin vaiheet toimivat hyvin; Luo tili osoitteessa www.freeboard.io ja luo sitten uusi Freeboard, jonka nimi on SHEDTEMPERATURES.
Lisää ensin tietolähde, napsauta LISÄÄ oikeassa yläkulmassa ja valitse ponnahdusikkunasta tyypiksi JSON, anna datalähteelle NIMI, lisää URL-osoitteena oleva madonreiän osoite ja napsauta EI, jos haluat kokeilla THINGPROXY. Lämpötilat muuttuvat vain hyvin hitaasti, joten PÄIVITÄ 15 sekunnin välein. Napsauta TALLENNA.
Vaihe 10: Näytä tiedot Freeboard.io -sivustolla (2)
Lisää ensimmäinen widget napsauttamalla LISÄÄ PANE ja sitten +. Voit valita ja pelata eri TYPE -tyypeillä, mutta huomasin, että mittari oli hieno. Anna sovellukseesi sopiva NIMIKE, YKSIKÖT (C), MINIMI ja MAKSIMI. Napsauta DATASOURCE -painiketta +, ja yllä oleva lähde tulee näkyviin.
Pudotusvalikon pitäisi nyt näyttää 2 aiemmin rakennettua JSON -tietolähdettä (temp2 ja temp2). Valitse sopiva lähde ja napsauta Tallenna.
Toista tämä toisen mittarin kanssa ja olemme kaikki valmiita.
Tiedot pitäisi nyt näyttää kahdessa mittarissa, ja jos sinulla on edelleen PRi kytketty näyttöön, Freeboard.io: n pyynnöt pitäisi nähdä niiden saapuessa.
Vaihe 11: Rakenna projekti laatikkoon
Tähän asti RPi ja muut komponentit oli koottu penkille käyttäen leipälautaa. Pientä nauhaa käytettiin sitten leipälevyn korvaamiseen ja kaikki johdot juotettiin paikoilleen.
Löytyi kirkkaan vaaleanpunainen pieni Lego -säilytyslaatikko, jossa oli runsaasti tilaa ja jossa RPI ei kuumene liikaa. laatikon sivuille porattiin reikiä ja 3 mm: n nailonkiinnityspylväitä käytettiin RPi: n ja nauhan pitämiseen paikoillaan.
GPIO, 3.3v, GND ja data edellyttävät vain 3 yhteyttä.
- 3.3 VDC nasta 1
- GND -nasta 6
- Data (GPIO4) -tappi 7
Lämpötila -antureihin lisättiin myös reikiä USB -virtaa ja kaapeleita varten. Kun kaikki oli asennettu paikoilleen, lisättiin pieni määrä silikonitiivistettä, jotta hämähäkit eivät pitäneet sitä lämpimänä talven viettopaikkana!
Vaihe 12: Valmis
Laatikko sijoitettiin kasvihuoneeseen ja virtalähteenä oli USB -laturi. Kaksi anturia sijoitettiin yksi lähellä kasvihuoneen yläosaa ja toinen istutusastiaan tarkistaakseen, kuinka kylmiä taimet olivat yöllä.
Tämä on ensimmäinen Instructable ja toivon, että luulet sen olevan kunnossa. Jos löydät virheitä, ilmoita siitä minulle ja korjaan tarvittaessa. Seuraava vaihe voi olla tietojen kirjaaminen (esimerkiksi) 60 sekunnin välein, mutta tämä tulee myöhemmin.
Suositeltava:
Infrapuna -anturin käyttäminen Arduinon kanssa: 8 vaihetta (kuvien kanssa)
Infrapuna -anturin käyttäminen Arduinon kanssa: Mikä on infrapuna -anturi? . IR -signaali
Dual Input Audio Switching Circuit: 6 vaihetta (kuvien kanssa)
Dual Input Audio Switching Circuit: Onko sinulla koskaan ollut ongelma, että sinulla on yksi kaiutinjärjestelmä ja useita tuloja, jotka vaativat audiojohtojen kytkemisen ja irrottamisen aina, kun haluat kuunnella yhtä lähdettä? No, minulla on ratkaisu sinulle! Tämän Instructable -ohjelman tarkoituksena on tehdä erittäin
Dual Sensor Echo Locator: 7 vaihetta (kuvien kanssa)
Dual Sensor Echo Locator: a. Artikkelit {font-size: 110,0%; fontin paino: lihavoitu; fontti-tyyli: kursivoitu; tekstin koristelu: ei mitään; taustaväri: punainen;} a. artikkelit: vie hiiri {background-color: black;} Tässä ohjeessa selitetään, kuinka kohteen sijainti voidaan määrittää
Kuvien tallentaminen tehtävää varten: 4 vaihetta (kuvien kanssa)
Kuvien tallentaminen tehtävää varten: 1. Avaa uusi Google -asiakirja ja suojaa kuvat tällä sivulla. Käytä ctrl (ohjaus) ja " c " kopioitava näppäin 3. Käytä ctrl (control) ja " v " liitettävä avain
Kuvien tekeminen saumattomiksi vain vaaka- tai pystysuunnassa ("The GIMP"): 11 vaihetta (kuvien kanssa)
Kuvien tekeminen saumattomiksi vain vaaka- tai pystysuunnassa ("The GIMP"): Jos yrität "Tee saumaton" -laajennusta GIMP: ssä, se tekee kuvasta saumattoman sekä vaaka- että pystysuunnassa samanaikaisesti. Se ei salli sinun tehdä siitä saumatonta vain yhdessä ulottuvuudessa. Tämä ohje auttaa sinua saamaan kuvan