Turinys:

Raspberry Pi saulės orų stotis: 7 žingsniai (su nuotraukomis)
Raspberry Pi saulės orų stotis: 7 žingsniai (su nuotraukomis)

Video: Raspberry Pi saulės orų stotis: 7 žingsniai (su nuotraukomis)

Video: Raspberry Pi saulės orų stotis: 7 žingsniai (su nuotraukomis)
Video: Mano darbas – stebėti mišką ir čia vyksta kažkas keisto. 2024, Liepa
Anonim
Raspberry Pi saulės orų stotis
Raspberry Pi saulės orų stotis
Raspberry Pi saulės orų stotis
Raspberry Pi saulės orų stotis
Raspberry Pi saulės orų stotis
Raspberry Pi saulės orų stotis
Raspberry Pi saulės orų stotis
Raspberry Pi saulės orų stotis

Paskatintas dviejų ankstesnių projektų - „Kompaktinės kameros“ir „Portable Games Console“- užbaigimo, norėjau rasti naują iššūkį. Natūralus progresas buvo nuotolinė lauko sistema…

Norėjau sukurti „Raspberry Pi“orų stotį, kuri sugebėtų išsilaikyti nuo tinklo ir atsiųsti man rezultatus belaidžiu ryšiu iš bet kur! Šis projektas tikrai turėjo savo iššūkių, tačiau, laimei, „Raspberry Pi“maitinimas yra vienas iš pagrindinių iššūkių, kurį palengvino „PiJuice“naudojimas kaip maitinimo šaltinis ir papildomas saulės palaikymas (kartu su mūsų revoliucine „PiAnywhere“technologija - geriausias būdas nuimkite savo Pi nuo tinklelio!).

Mano pradinė mintis buvo naudoti fantastišką „AirPi“modulį rodmenims priimti. Tačiau tai turėjo du pagrindinius trūkumus; norint įkelti rezultatus, reikalingas tiesioginis interneto ryšys ir jis turi būti tiesiogiai prijungtas prie „Pi“GPIO, o tai reiškia, kad jis negali būti veikiamas oro, neatskleidžiant „Raspberry Pi“(nėra idealus, jei norime, kad ši oro stotis trukti bet kurį laiką).

Sprendimas … sukurkite savo jutimo modulį! Įkvėpimui panaudodamas didžiąją dalį „AirPi“, galėjau surinkti labai paprastą prototipą, naudodamas kelis jau turimus jutiklius; temperatūra, drėgmė, šviesos lygis ir bendrosios dujos. Puikus dalykas yra tai, kad bet kuriuo metu tikrai lengva pridėti daugiau jutiklių.

Aš nusprendžiau naudoti „Raspberry Pi a+“daugiausia dėl mažo energijos suvartojimo. Norėdami atsiųsti man rezultatus, naudoju „EFCom Pro GPRS/GSM“modulį, kuris su rezultatais gali nusiųsti tekstą tiesiai į mano mobilųjį telefoną! Gana tvarkingai, tiesa?

Džiaugiuosi, kad čia turite idėjų, susijusių su kitais puikiais saulės ar nešiojamaisiais projektais. Praneškite man komentaruose ir aš padarysiu viską, kad sukurtų pamoką!

1 žingsnis: dalys

Dalys
Dalys

1 x „PiJuice +“saulės kolektorius (kartu su mūsų revoliucine „PiAnywhere“technologija - geriausias būdas pašalinti „Pi“iš tinklo!)

1 x „Raspberry Pi a+“

1 x EFCom Pro GPRS/GSM modulis

1 x Sim kortelė

1 x duonos lenta

Protoboard

1 x MCP3008 ADC

1 x LDR

1 x LM35 (temperatūros jutiklis)

1 x DHT22 (drėgmės jutiklis)

1 x TGS2600 bendrasis oro kokybės jutiklis

1 x 2,2 KΩ rezistorius

1 x 22 KΩ rezistorius

1 x 10 KΩ rezistorius

10 x Female - Female Jumper laidai

Viengubo laido asortimentas

1 x viena lauko jungčių dėžutė

1 x dviguba lauko jungčių dėžė

1 x vandeniui atspari kabelio jungtis

2 x 20 mm pusiau aklo kabelio tarpikliai

2 žingsnis: jutiklio grandinė

Jutimo grandinė
Jutimo grandinė
Jutimo grandinė
Jutimo grandinė
Jutimo grandinė
Jutimo grandinė

Šiame projekte yra daug skirtingų elementų, todėl geriausia viską daryti žingsnis po žingsnio. Pirmiausia aptarsiu, kaip sudaryti jutimo grandinę.

Patartina tai padaryti pirmiausia ant duonos lentos, tik jei padarytumėte kokių nors klaidų, įtraukiau schemą ir žingsnis po žingsnio paveikslėlius.

  1. Pirmasis prijungtas komponentas yra šis MCP3008 analoginis -skaitmeninis keitiklis. Tai gali užtrukti iki 8 analoginių įėjimų ir bendrauti su „Raspberry Pi“per SPI. Kai mikroschema nukreipta į viršų, o pusiau apskritimas nupjautas tolimiausiame nuo jūsų gale, kaiščiai dešinėje visi jungiasi prie „Raspberry Pi“. Prijunkite juos, kaip parodyta. Jei norite šiek tiek daugiau sužinoti apie tai, kaip veikia lustas, čia yra puikus MCP3008 ir SPI protokolo vadovas.
  2. Kairėje esantys kaiščiai yra 8 analoginiai įėjimai, iš viršaus į apačią sunumeruoti 0-7. Mes naudosime tik pirmuosius 3 (CH0, CH1, CH2), LDR, bendrą dujų jutiklį (TGS2600) ir temperatūros jutiklį (LM35). Pirmiausia prijunkite LDR, kaip parodyta diagramoje. Viena pusė į žemę, kita - iki 3.3 V per 2.2KΩ rezistorių ir CH0.
  3. Tada prijunkite „bendrą dujų jutiklį“. Šis dujų jutiklis naudojamas oro teršalams, tokiems kaip vandenilis ir anglies monoksidas, aptikti. Aš dar nesugalvojau, kaip gauti konkrečias koncentracijas, todėl kol kas šio jutiklio rezultatas yra bazinis procentinis lygis, kai 100% yra visiškai prisotintas. Kai jutiklis nukreiptas į viršų (smeigtukai apačioje), kaištis tiesiai į dešinę nuo mažos atodangos yra 1 kaištis, o tada skaičiai didėja pagal laikrodžio rodyklę aplink kaištį. Taigi 1 ir 2 kaiščiai jungiami prie 5 V, 3 kaištis prijungiamas prie CH1 ir įžeminamas per 22KΩ rezistorių, o kaištis 4 - tiesiai prie žemės.
  4. Galutinis prijungiamas analoginis jutiklis yra LM35 temperatūros jutiklis. Tai turi 3 kaiščius. Paimkite jutiklį taip, kad plokščioji pusė būtų arčiausiai jūsų, kairysis labiausiai kaištis jungiasi tiesiai prie 5 V (nepažymėtas diagramoje, mano blogai!), Centrinis kaištis jungiasi prie CH2, o dešinysis kaištis jungiasi tiesiai prie žemės. Lengva!
  5. Paskutinis prijungiamas komponentas yra DHT22 drėgmės jutiklis. Tai skaitmeninis jutiklis, todėl jį galima prijungti tiesiai prie „Raspberry Pi“. Paimkite jutiklį taip, kad tinklelis būtų nukreiptas į jus, o keturi kaiščiai - apatinėje pusėje. Smeigtukai užsakomi iš 1 kairėje. Prijunkite 1 prie 3.3V. 2 kaištis eina į GPIO4 ir 3.3V per 10KΩ rezistorių. Palikite 3 kaištį atjungtą ir 4 kaištį eikite tiesiai į žemę.

Viskas! Bandymo grandinė pastatyta. Tikiuosi, kai turėsiu laiko, pridėti daugiau komponentų. Aš tikrai norėčiau pridėti slėgio jutiklį, vėjo greičio jutiklį ir norėčiau gauti daugiau protingų duomenų apie dujų koncentraciją.

3 žingsnis: GSM modulis

GSM modulis
GSM modulis
GSM modulis
GSM modulis

Dabar, kai buvo sukurtos jutiklių grandinės, turi būti būdas gauti rezultatus. Būtent čia ateina GSM modulis. Mes jį naudosime, norėdami kartą per dieną išsiųsti rezultatus koriniu tinklu SMS žinute.

GSM modulis palaiko ryšį su „Raspberry Pi“serijiniu būdu, naudojant UART. Štai puiki informacija apie serijinį ryšį su „Raspberry Pi“. Norėdami valdyti „Pi“nuoseklųjį prievadą, pirmiausia turime atlikti tam tikrą konfigūraciją.

Įkraukite „Raspberry Pi“naudodami standartinį „Raspbian“vaizdą. Dabar pakeiskite failą „/boot/cmdline.txt“iš:

"dwc_otg.lpm_enable = 0 konsolė = ttyAMA0, 115200 kgdboc = ttyAMA0, 115200 konsolė = tty1 šaknis =/dev/mmcblk0p2 rootfstype = ext4 lift = terminas rootwait"

į:

"dwc_otg.lpm_enable = 0 konsolė = tty1 root =/dev/mmcblk0p2 rootfstype = ext4 lift = terminas rootwait"

pašalinus pabrauktą teksto dalį.

Antra, turite redaguoti failą „/etc/inittab“, pakomentuodami antrą eilutę šiame skyriuje:

#Spawn a getty on Raspberry Pi serial lineT0: 23: respawn:/sbin/getty -L ttyAMA0 115200 vt100"

Taigi, kad būtų parašyta:

#Spawn a getty on Raspberry Pi serial line#T0: 23: respawn:/sbin/getty -L ttyAMA0 115200 vt100

ir iš naujo paleiskite „Pi“. Dabar nuoseklusis prievadas turėtų laisvai bendrauti su jumis, kaip norite. Atėjo laikas prijungti GSM modulį. Pažiūrėkite į ankstesnio veiksmo schemą ir aukščiau esančias nuotraukas, kad pamatytumėte, kaip tai daroma. Iš esmės TX yra prijungtas prie RX, o RX yra prijungtas prie TX. „Raspberry Pi TX“ir „RX“yra atitinkamai GPIO 14 ir 15.

Dabar tikriausiai norite patikrinti, ar modulis veikia, todėl pabandykime išsiųsti tekstą! Norėdami tai padaryti, turite atsisiųsti „Minicom“. Tai programa, leidžianti rašyti į nuoseklųjį prievadą. Naudoti:

"sudo apt-get install minicom"

Įdiegę „minicom“, galite atidaryti šią komandą:

"minicom -b 9600 -o -D /dev /ttyAMA0"

9600 yra duomenų perdavimo greitis, o /dev /ttyAMA0-„Pi“serijinio prievado pavadinimas. Tai atvers terminalo emuliatorių, kuriame visa, ką rašysite, bus rodoma nuosekliajame prievade, ty bus išsiųsta į GSM modulį.

Įdėkite papildytą SIM kortelę į GSM modulį ir paspauskite maitinimo mygtuką. Po to turėtų užsidegti mėlyna lemputė. GSM modulis naudoja AT komandų rinkinį, čia yra dokumentacija, jei jus tikrai domina. Dabar patikriname, ar „Raspberry Pi“aptiko modulį naudodami šią komandą:

"AT"

tada modulis turėtų atsakyti:

"GERAI"

Puiku! Tada turime sukonfigūruoti modulį siųsti SMS kaip tekstinį, o ne dvejetainį:

"AT+CMGF = 1"

vėlgi atsakymas turėtų būti „Gerai“. Dabar rašome komandą siųsti SMS:

"AT+CMGS =" 44 ************ "", pakeiskite žvaigždes savo numeriu.

Modemas su atsakymu „>“, po kurio galite parašyti jums pranešimą. Norėdami išsiųsti pranešimą, paspauskite. Štai ir viskas, ir jums pasisekė, kad ką tik gavote tekstą tiesiai iš „Raspberry Pi“.

Dabar, kai žinome, kad GSM modulis veikia, galite uždaryti minicom; mums to neprireiks likusiam projekto laikui.

4 veiksmas: atsisiųskite programinę įrangą ir paleiskite „Dry Run“

Atsisiųskite programinę įrangą ir paleiskite „Dry Run“
Atsisiųskite programinę įrangą ir paleiskite „Dry Run“
Atsisiųskite programinę įrangą ir paleiskite „Dry Run“
Atsisiųskite programinę įrangą ir paleiskite „Dry Run“

Šiame etape viskas turėtų būti prijungta ir paruošta išbandyti sausam važiavimui. Aš parašiau gana paprastą „Python“programą, kuri ims kiekvieno jutiklio rodmenis ir tada nusiųs rezultatus į jūsų mobilųjį telefoną. Visą programą galite atsisiųsti iš „PiJuice Github“puslapio. Dabar taip pat gali būti tinkamas laikas išbandyti naudojant „PiJuice“modulį. Jis tiesiog prijungiamas prie „Raspberry Pi“GPIO, visi prie „Pi“prijungti laidai tiesiog prijungiami prie atitinkamų „PiJuice“kaiščių. Lengva kaip Pi. Norėdami atsisiųsti kodą, naudokite komandą:

git klonas

Tai nustatyta, kad duomenys būtų siunčiami kartą per dieną. Bandymų tikslais tai nėra puiku, todėl galbūt norėsite redaguoti programą. Tai lengva padaryti; tiesiog atidarykite failą; "sudo nano weatherstation.py". Netoli viršaus yra skyrius „nustatyti atidėjimą“. Komentuokite eilutę „delay = 86400“ir panaikinkite komentarą „delay = 5“. Dabar rezultatai bus siunčiami kartą per 5 sekundes. Taip pat norėsite pakeisti programą taip, kad joje būtų jūsų mobiliojo telefono numeris. Raskite, kur parašyta „+44 **********“, ir pakeiskite žvaigždes savo numeriu.

Prieš paleisdami programą, jums tereikia atsisiųsti biblioteką, skirtą skaityti DHT22 drėgmės jutiklį:

git klonas

Ir biblioteką reikia įdiegti:

"cd Adafruit_Python_DHT"

"sudo apt-get update"

"sudo apt-get install build-essential python-dev"

"sudo python setup.py install"

Šaunu, dabar galite išbandyti programą.

"sudo python weatherstation.py"

Kai programa veikia, rezultatai turėtų būti siunčiami į jūsų mobilųjį telefoną, bet taip pat spausdinami terminale kas 5 sekundes.

5 žingsnis: sukurkite grandinę

Sukurkite grandinę
Sukurkite grandinę
Sukurkite grandinę
Sukurkite grandinę
Sukurkite grandinę
Sukurkite grandinę

Dabar, kai viskas veikia praktiškai, atėjo laikas sukurti tikrąjį dalyką. Nuotraukose parodyta bendra idėja, kaip visas įrenginys dera tarpusavyje. Yra du atskiri būstai; vienas jutimo grandinei (kuriame bus skylės, kad oras galėtų cirkuliuoti viduje), o kitas - „Raspberry Pi“, GPRS įrenginys ir „PiJuice“, (visiškai nepralaidus vandeniui), saulės kolektorius bus prijungtas prie skaičiavimo įrenginio su vandens nepraleidžiančia jungtimi. Tuomet du įrenginius galima lengvai nuimti, kad būtų galima nuimti jutiklio korpusą arba skaičiavimo korpusą, nenuimant viso įrenginio. Tai puiku, jei norite pridėti daugiau jutiklių arba jei jums reikia „Raspberry Pi“ar „PiJuice“kitam projektui.

Turėsite sulaužyti protoboat, kad tilptų į mažesnę iš dviejų jungčių dėžių. Čia yra jutiklio grandinė. Jutimo grandinė dabar perkeliama iš duonos lentos į protobondą. Dabar turėsite atlikti litavimą. Įsitikinkite, kad saugiai naudojate lituoklį. Jei nesate tikri, paprašykite kompetentingo lituotojo pagalbos.

Labai ačiū Patrickui laboratorijoje, kuri išgelbėjo mane nuo tikros šios grandinės maišos. Jis sugebėjo jį sujungti per kelias minutes! Jei, kaip ir aš, nesate geriausias statybų grandynas ir neturite tokio genijaus, kaip Patrikas, pasiruošęs jums padėti, tuomet visada galite palikti grandinę ant duonos lentos, jei tik ji telpa jūsų elektros dėžėje.

6 žingsnis: būsto vienetų paruošimas

Būsto vienetų paruošimas
Būsto vienetų paruošimas
Būsto vienetų paruošimas
Būsto vienetų paruošimas
Būsto vienetų paruošimas
Būsto vienetų paruošimas

Ši dalis yra tikrai linksma. Galbūt pastebėjote žiedus ant kiekvienos dėžutės. Jie suprojektuoti taip, kad būtų išmušti, kad dėžės galėtų tapti elektros jungtimis. Mes juos naudosime jungdami jutiklį ir skaičiavimo įrenginį, jungdami prie saulės kolektoriaus, taip pat kaip jutiklio bloko ventiliaciją, kad būtų užtikrinta oro cirkuliacija.

Pirmiausia išmuškite po vieną skylę kiekvienoje dėžutėje, kad galėtumėte jas sujungti, kaip parodyta paveikslėliuose. Išmušti skyles gali būti sudėtinga tvarkingai, tačiau šiurkštus kraštas nesvarbu. Radau, kad geriausias būdas yra naudoti atsuktuvą, kad iš pradžių pradurtų žiedą aplink kiekvieną skylę, o po to jį nuplėštų kaip dažų skardos dangtį. Tada dviejų dėžių prijungimui naudojama vandeniui nepralaidi kabelio jungtis.

Tada skaičiavimo korpuse turėsite padaryti dar vieną skylę saulės kolektoriaus vielai. Ši skylė užkemšama viena iš pusiau aklų kabelių tarpiklių. Prieš įdėdami sandariklį į jo angą, perverkite skylę, kad kabelis praeitų. Tai turi būti kuo mažesnė, kad ji būtų nepralaidi vandeniui, tada perkiškite mikro USB galą per skylę (tai yra galas, jungiantis prie „PiJuice“).

Galiausiai jutiklyje reikia padaryti papildomą skylę, kad oras galėtų patekti ir išeiti. Aš nusprendžiau ieškoti visumos, esančios priešingai sankryžai tarp dviejų dėžių. Gali prireikti pridėti antrą skylę. Manau, po kurio laiko sužinosime naudodamiesi orų stotimi.

7 žingsnis: Oro stoties prijungimas ir užbaigimas

Oro stoties prijungimas ir apdaila
Oro stoties prijungimas ir apdaila
Oro stoties prijungimas ir apdaila
Oro stoties prijungimas ir apdaila
Oro stoties prijungimas ir apdaila
Oro stoties prijungimas ir apdaila

Tiesa, beveik ten. Paskutinis etapas - viską sujungti.

Pradėkite nuo skaičiavimo įrenginio. Šioje dėžutėje yra „Raspberry Pi“, „PiJuice“, kuri jungiasi prie „Raspberry Pi GPIO“, ir GSM modulis, jungiantis prie „PiJuice“GPIO pertraukos per moteriškus ir moteriškus trumpiklius. Gražu ir patogu! šiame etape aš tikriausiai patarčiau uždėti tam tikrą sandariklį aplink įvesties tašką, skirtą saulės kolektoriaus USB kabeliui. Tikriausiai tiktų kokia derva ar superklijai.

Tada pereikite prie jutiklio. Nuotraukoje iš viršaus į apačią laidai yra; pilka, balta, violetinė ir mėlyna yra SPI duomenų linijos, juoda įžeminta, oranžinė - 3,3 V, raudona - 5 V, o žalia - GPIO 4. Turėsite rasti trumpiklius laidus, kad galėtumėte juos prijungti, ir tada paduoti juos per vandeniui atsparų kabelį jungtis, kaip matosi nuotraukose. Tada kiekvieną laidą galima prijungti prie atitinkamo GPIO ir priveržti jungtį. Šiame etape lengva suprasti, kaip būtų galima patobulinti dizainą; LDR nebus veikiamas daug šviesos (nors vis tiek gali būti naudinga žinoti santykines vertes, o papildomos skylės išmušimas gali padėti), manau, kad geriau būtų naudoti tokį patį dydį kaip ir skaičiavimo įrenginys taip pat jutiklio bloko dėžutę, tada būtų lengviau į dėžutę įstatyti plokštę ir būtų galima žaisti su įvairiais išdėstymais.

Aš dabar jį iškėliau į sodą, kaip matote nuotraukose. Tikiuosi, kad per ateinančias kelias dienas galėsiu paskelbti ir keletą rezultatų! Ir kaip jau minėjau anksčiau, jei turite kokių nors idėjų šauniems projektams, praneškite man!

Rekomenduojamas: