Sisällysluettelo:

IoT Dual Temperature Data Server: 12 vaihetta (kuvien kanssa)
IoT Dual Temperature Data Server: 12 vaihetta (kuvien kanssa)

Video: IoT Dual Temperature Data Server: 12 vaihetta (kuvien kanssa)

Video: IoT Dual Temperature Data Server: 12 vaihetta (kuvien kanssa)
Video: Speed Up Windows 10 2024, Kesäkuu
Anonim
IoT Dual Temperature Data Server
IoT Dual Temperature Data Server

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

Laitteisto
Laitteisto
Laitteisto
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

Raspberry Pi OS -ohjelmiston asennus
Raspberry Pi OS -ohjelmiston asennus
Raspberry Pi OS -ohjelmiston asennus
Raspberry Pi OS -ohjelmiston asennus
Raspberry Pi OS -ohjelmiston asennus
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ö

Määritä Dataplicity sallimaan etäkäyttö
Määritä Dataplicity sallimaan etäkäyttö
Määritä Dataplicity sallimaan etäkäyttö
Määritä Dataplicity sallimaan etäkäyttö
Määritä Dataplicity sallimaan etäkäyttö
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

UFW -palomuuri
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

S lopettaa lämpötilatiedot nimellä JSON
S lopettaa lämpötilatiedot nimellä JSON

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ähetä tietoja molemmilta antureilta
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

Automaattinen käynnistys
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)

Näytä tiedot Freeboard.io -sivustolla (1)
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)

Näytä tiedot Freeboard.io -sivustolla (2)
Näytä tiedot Freeboard.io -sivustolla (2)
Näytä tiedot Freeboard.io -sivustolla (2)
Näytä tiedot Freeboard.io -sivustolla (2)
Näytä tiedot Freeboard.io -sivustolla (2)
Näytä tiedot Freeboard.io -sivustolla (2)
Näytä tiedot Freeboard.io -sivustolla (2)
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

Rakenna projekti laatikkoon
Rakenna projekti laatikkoon
Rakenna projekti laatikkoon
Rakenna projekti laatikkoon
Rakenna projekti laatikkoon
Rakenna projekti laatikkoon
Rakenna projekti laatikkoon
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

Valmis
Valmis
Valmis
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: