Sisällysluettelo:

Raspberry Pi -tuulettimen älykäs ohjaus Pythonin ja Thingspeakin avulla: 7 vaihetta
Raspberry Pi -tuulettimen älykäs ohjaus Pythonin ja Thingspeakin avulla: 7 vaihetta

Video: Raspberry Pi -tuulettimen älykäs ohjaus Pythonin ja Thingspeakin avulla: 7 vaihetta

Video: Raspberry Pi -tuulettimen älykäs ohjaus Pythonin ja Thingspeakin avulla: 7 vaihetta
Video: Älykoti - Kannattavaa pörssisähkössä? Smart home - Home assistant - lämminvesivaraajan lämmitys 2024, Marraskuu
Anonim
Raspberry Pi -tuulettimen älykäs ohjaus Pythonin ja Thingspeakin avulla
Raspberry Pi -tuulettimen älykäs ohjaus Pythonin ja Thingspeakin avulla

Lyhyt katsaus

Oletuksena tuuletin on kytketty suoraan GPIO: hon - tämä tarkoittaa sen jatkuvaa toimintaa. Huolimatta puhaltimen suhteellisen hiljaisesta toiminnasta, sen jatkuva toiminta ei ole tehokas aktiivisen jäähdytysjärjestelmän käyttö. Samaan aikaan tuulettimen jatkuva toiminta voi olla vain ärsyttävää. Lisäksi, jos Raspberry Pi on kytketty pois päältä, tuuletin toimii edelleen, jos virta on kytketty.

Tämä artikkeli näyttää, kuinka yksinkertaisista ja ei monimutkaisista manipulaatioista muutetaan olemassa oleva jäähdytysjärjestelmä älykkääksi, joka käynnistetään vain, kun prosessori todella tarvitsee sitä. Tuuletin kytketään päälle vain, kun sitä käytetään paljon, mikä vähentää tuulettimen virrankulutusta ja melua. Pidentää myös tuulettimen käyttöikää pitämällä se pois päältä, kun sitä ei tarvita.

Mitä opit

Kuinka toteuttaa Python-skripti tuulettimen ohjaamiseksi Raspberry-suorittimen nykyisen lämpötilan perusteella käyttämällä On-Off-ohjausta lämpötilan hystereesillä.

Tarvikkeet

Tässä projektissa tarvittavat komponentit ovat seuraavat

  • Raspberry Pi 4 -tietokonemalli B 4 Gt
  • NPN -transistori S8050330ohms vastus
  • Panssari -alumiininen metallikotelo, jossa on kaksi tuuletinta Raspberry Pi: lle
  • Käynnistyskaapelit
  • Leipälauta

Vaihe 1: Piirin rakentaminen

Piirin rakentaminen
Piirin rakentaminen
Piirin rakentaminen
Piirin rakentaminen

Piiri on melko yksinkertainen. Puhaltimen virta katkaistaan NPN -transistorin avulla. Tässä kokoonpanossa transistori toimii matalan puolen kytkimenä. Vastus vaaditaan vain rajoittamaan virtaa GPIO: n kautta. Raspberry Pi: n GPIO: n maksimivirta on 16 mA. Käytin 330 ohmia, mikä antaa meille perusvirran noin (5-0,7)/330 = 13 mA. Valitsin NPN -transistorin S8050, joten 400 mA: n kuorman vaihtaminen molemmista puhaltimista ei ole ongelma.

Vaihe 2: Kirjaa suorittimen lämpötila ThingSpeakin avulla

Kirjaa CPU: n lämpötila ThingSpeakin avulla
Kirjaa CPU: n lämpötila ThingSpeakin avulla

ThingSpeak on alusta esineiden Internet -konseptiin perustuville projekteille. Tämän alustan avulla voit rakentaa sovelluksia antureista kerättyjen tietojen perusteella. ThingSpeakin pääominaisuuksia ovat: reaaliaikainen tiedonkeruu, tietojen käsittely ja visualisointi. ThingSpeak -sovellusliittymän avulla voit lähettää, tallentaa ja käyttää tietoja, mutta se tarjoaa myös erilaisia tilastollisia menetelmiä niiden käsittelemiseksi.

ThingSpeak voi integroida suosittuja laitteita ja palveluita, kuten:

  • Arduino
  • Vadelma pii
  • oBridge / RealTime.io
  • Sähkö imp
  • Mobiili- ja verkkosovellukset
  • Sosiaaliset verkostot
  • Tietojen analysointi MATLABissa

Ennen kuin aloitamme, tarvitset tilin ThingSpeakissa.

  1. Siirry seuraavaan linkkiin ja kirjaudu ThingSpeakiin.
  2. Kirjaudu tilisi aktivoinnin jälkeen sisään.
  3. Siirry kohtaan Kanavat -> Omat kanavat
  4. Napsauta Uusi kanava -painiketta.
  5. Kirjoita ladattavien tietojen nimi, kuvaus ja kentät
  6. Tallenna kaikki asetukset napsauttamalla Tallenna kanava -painiketta.

Tarvitsemme API -avaimen, jonka lisäämme myöhemmin python -koodiin, jotta voimme ladata suorittimen lämpötilan Thingspeak -pilveen.

Napsauta API Keys -välilehteä saadaksesi Write API -avaimen

Kun sinulla on Write API -avain, olemme melkein valmiita lataamaan tietomme.

Vaihe 3: CPU -lämpötilan saaminen Raspberry Pi -laitteesta Pythonin avulla

Skripti perustuu prosessorin lämpötilan noutamiseen, joka tapahtuu joka sekunti. Sen voi saada päätelaitteesta suorittamalla vcgencmd -komennon parametrin meet_temp avulla.

vcgencmd toimenpide_temp

Subprocess.check_output () -kirjastoa käytettiin komennon suorittamiseen ja sitten säännöllisen lausekkeen avulla todellisen arvon poimimiseen palautetusta merkkijonosta.

aliprosessista tuonti check_output

uudelleen tuonnista findalldef get_temp (): temp = check_output (["vcgencmd", "meet_temp"]). decode () temp = float (findall ('\ d+\. / d+', temp) [0]) return (temp) tulosta (get_temp ())

Kun lämpötila -arvo on haettu, tiedot on lähetettävä ThingSpeak -pilveen. Käytä Write API -avainta muuttaaksesi myApi -muuttujaa alla olevassa Python -koodissa.

urllib -tuontipyynnöstä

uudelleen tuonnista löytää kaikki ajan tuonnin lepotilasta aliprosessista tuonti check_output myAPI = '################' baseURL = 'https://api.thingspeak.com/update?api_key=% s ' % myAPIdef get_temp (): temp = check_output (["vcgencmd", "meet_temp"]). dekoodata () temp = float (findall (' / d+\. / d+', temp) [0]) return (temp) try: while True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 = % s' % (temp)) print (str (temp)) conn.close () uni (1) paitsi KeyboardInterrupt: print ("Lopeta painamalla Ctrl+C")

Vaihe 4: Puhaltimen ohjaus lämpötilan perusteella

Alla näkyvä Python -skripti toteuttaa logiikan, joka käynnistää tuulettimen, kun lämpötila nousee lämpötilan yläpuolelle ja sammuu vasta, kun lämpötila laskee kynnyksen alle. Tällä tavalla tuuletin ei käynnisty ja sammu nopeasti.

Tuo RPi. GPIO GPIO: ksi

tuoda sys uudelleen tuonnista löytää kaikki ajan tuonnin lepotilasta aliprosessista tuonti check_output def get_temp (): temp = check_output (["vcgencmd", "meet_temp"]). decode () temp = float (findall ('\ d+\. / d+ ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 kynnys = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, Initial = 0) kun True: temp = get_temp () jos temp> tempOn eikä pinState tai temp <tempOn - kynnys ja pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) lepotila (1) paitsi KeyboardInterrupt: print ("Lopeta painamalla Ctrl+C") paitsi: print ("Other Exception") print ("--- Start Exception Data:") traceback.print_exc (limit = 2, tiedosto = sys.stdout) print ("--- Lopeta poikkeustiedot:") lopuksi: print ("CleanUp") GPIO.cleanup () print ("Ohjelman loppu")

Vaihe 5: Lopullinen Python -koodi

Python -pääkoodi löytyy GitHub -tililtäni seuraavasta linkistä. Muista laittaa oma Write API -avaimesi.

  1. Kirjaudu Raspberry PI -kortillesi
  2. Suorita seuraava komento terminaalissa

python3 cpu.py

Vaihe 6: Tietojen seuranta Thingspeak Cloudin kautta

Tietojen seuranta Thingspeak Cloudin kautta
Tietojen seuranta Thingspeak Cloudin kautta

Hetken kuluttua avaa kanavasi ThingSpeakissa ja näet lämpötilan lataamisen Thingspeak-pilveen reaaliajassa.

Vaihe 7: Suorita Python -skripti käynnistyksen yhteydessä

Voit tehdä tämän /etc/rc.local -tiedoston lopussa:

sudo nano /etc/rc.local

Sinun on asetettava komentosarjan aloituskomento rivin poistumisen 0 eteen:

sudo python /home/pi/cpu.py &

& -Merkin läsnäolo komennon lopussa on pakollinen, koska prosessin käynnistäminen taustalla on lippu. Uudelleenkäynnistyksen jälkeen komentosarja käynnistyy automaattisesti ja tuuletin käynnistyy, kun määritetyt ehdot täyttyvät.

Suositeltava: