Orodha ya maudhui:

Udhibiti Mahiri wa Shabiki wa Pi Raspberry Kutumia Python & Thingspeak: Hatua 7
Udhibiti Mahiri wa Shabiki wa Pi Raspberry Kutumia Python & Thingspeak: Hatua 7

Video: Udhibiti Mahiri wa Shabiki wa Pi Raspberry Kutumia Python & Thingspeak: Hatua 7

Video: Udhibiti Mahiri wa Shabiki wa Pi Raspberry Kutumia Python & Thingspeak: Hatua 7
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, Novemba
Anonim
Udhibiti Mahiri wa Shabiki wa Pi Raspberry Kutumia Python & Thingspeak
Udhibiti Mahiri wa Shabiki wa Pi Raspberry Kutumia Python & Thingspeak

Muhtasari mfupi

Kwa msingi, shabiki ameunganishwa moja kwa moja na GPIO - hii inamaanisha utendaji wake wa kila wakati. Licha ya operesheni tulivu ya shabiki, operesheni yake endelevu sio matumizi mazuri ya mfumo wa baridi wa baridi. Wakati huo huo, operesheni ya mara kwa mara ya shabiki inaweza kuwa ya kukasirisha tu. Pia, ikiwa Raspberry Pi imezimwa, shabiki bado atafanya kazi ikiwa nguvu imeunganishwa.

Nakala hii itaonyesha jinsi, kwa kutumia ujanja rahisi na sio ngumu, kugeuza mfumo wa baridi uliopo kuwa mzuri, ambao utawashwa tu wakati processor inahitaji kweli. Shabiki ingewashwa tu wakati kuna matumizi mazito, na hivyo kupunguza matumizi ya nguvu ya shabiki na kelele. Pia kupanua maisha ya shabiki kwa kuizuia wakati hauhitajiki.

Nini Utajifunza

Jinsi ya kutekeleza hati ya chatu kudhibiti shabiki kulingana na hali ya joto ya sasa ya Raspberry CPU ukitumia udhibiti wa On-Off na hysteresis ya joto. Jinsi ya kusafirisha data kutoka RaspberryPi yako kwenda kwa Mambo ya Kusema Wingu.

Vifaa

Vipengele ambavyo utahitajika kwa mradi huu ni kama ifuatavyo

  • Raspberry Pi 4 Mfano wa Kompyuta B 4GB
  • Kinga ya transistor ya NPN S8050330ohms
  • Silaha ya Aluminium Kesi ya Chuma na Mashabiki Wawili wa Raspberry Pi
  • Kamba za jumper
  • Bodi ya mkate

Hatua ya 1: Kuunda Mzunguko

Kujenga Mzunguko
Kujenga Mzunguko
Kujenga Mzunguko
Kujenga Mzunguko

Mzunguko ni rahisi sana. Nguvu kwa shabiki hukatwa kwa kutumia transistor ya NPN. Katika usanidi huu, transistor inafanya kazi kama swichi ya upande wa chini. Resistor inahitajika tu kupunguza sasa kupitia GPIO. GPIO ya Raspberry Pi ina kiwango cha juu cha sasa cha 16mA. Nilitumia ohms 330 ambayo inatupa msingi wa sasa wa karibu (5-0.7) / 330 = 13mA. Nilichagua transistor ya NPN S8050, kwa hivyo kubadili mzigo wa 400mA kutoka kwa mashabiki wote sio shida.

Hatua ya 2: Ingia Joto la CPU na ThingSpeak

Ingia Joto la CPU na ThingSpeak
Ingia Joto la CPU na ThingSpeak

ThingSpeak ni jukwaa la miradi kulingana na dhana ya mtandao ya Vitu. Jukwaa hili hukuruhusu kujenga programu kulingana na data iliyokusanywa kutoka kwa sensorer. Makala kuu ya ThingSpeak ni pamoja na: ukusanyaji wa data wakati halisi, usindikaji wa data na taswira. ThingSpeak API hairuhusu tu kutuma, kuhifadhi na kufikia data, lakini pia hutoa njia anuwai za kitakwimu za kuzisindika.

ThingSpeak inaweza kujumuisha vifaa na huduma maarufu kama vile:

  • Arduino
  • Raspberry pii
  • oBridge / RealTime.io
  • Umeme imp
  • Matumizi ya rununu na wavuti
  • Mitandao ya kijamii
  • Uchambuzi wa Takwimu katika MATLAB

Kabla ya kuanza, unahitaji akaunti katika ThingSpeak.

  1. Nenda kwenye kiunga kifuatacho na ujiandikishe kwa ThingSpeak.
  2. Baada ya uanzishaji wa akaunti yako, ingia.
  3. Nenda kwenye Vituo -> Njia zangu
  4. Bonyeza kifungo cha Channel Mpya.
  5. Ingiza jina, maelezo na sehemu za data unayotaka kupakia
  6. Bonyeza kitufe cha Hifadhi Kituo ili uhifadhi mipangilio yako yote.

Tunahitaji ufunguo wa API, ambao baadaye tutaongeza kwenye nambari ya chatu ili kupakia joto letu la CPU kwenye wingu la Thingspeak.

Bonyeza kichupo cha Funguo za API ili kupata Kitufe cha Kuandika API

Mara tu unapokuwa na Kitufe cha Andika API, tuko tayari kupakia data zetu.

Hatua ya 3: Kupata Joto la CPU Kutoka kwa Raspberry Pi Kutumia Chatu

Hati hiyo inategemea kurudisha joto la processor, ambalo hufanyika kila sekunde. Inaweza kupatikana kutoka kwa terminal kwa kutumia amri ya vcgencmd na parameter ya kipimo_temp.

kipimo cha vcgencmd_temp

Maktaba ya Subprocess.check_output () ilitumika kutekeleza amri na kisha kutumia usemi wa kawaida kutoa thamani halisi kutoka kwa kamba iliyorudishwa.

kutoka kwa subprocess kuagiza check_output

kutoka re kuagiza findalldef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). fafanua () temp = kuelea (findall ('\ d + \. / d +', temp) [0]) kurudi (temp chapisha (get_temp ())

Baada ya kupatikana kwa thamani ya joto, data inahitaji kutumwa kwa wingu la ThingSpeak. Tumia Kitufe chako cha Andika API kubadilisha mabadiliko ya myApi katika nambari ya chini ya Python.

kutoka kwa ombi la kuagiza urllib

kutoka kuingiza tena kupata kutoka kwa kuingiza usingizi kutoka kwa mchakato wa kuagiza kuagiza_kupitisha myAPI = '# # # # # # # # # # s '% myAPIdef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). fafanua () temp = kuelea (findall (' / d + \. / d + ', temp) [0]) kurudi (temp jaribu: wakati Kweli: temp = get_temp () conn = ombi.urlopen (baseURL + '& field1 =% s'% (temp)) chapa (str (temp)) conn. karibu () kulala (1) isipokuwa KinandaInterrupt: chapa ("Toka kwa kubonyeza Ctrl + C")

Hatua ya 4: Kudhibiti Shabiki Kulingana na Joto

Hati ya chatu iliyoonyeshwa hapa chini hutumia mantiki ambayo inawasha shabiki wakati joto linapoinuka juu ya tempOn na kuzima tu wakati hali ya joto inapungua chini ya kizingiti. Kwa njia hii, shabiki hatawasha na kuzima haraka.

kuagiza RPi. GPIO kama GPIO

kuagiza sys kutoka re kuagiza findall kutoka wakati kuagiza kuagiza kutoka kwa subprocess kuagiza check_output def get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). fafanua () temp = kuelea (findall ('\ d + \. / d + ', temp) [0]) kurudi (temp) jaribu: GPIO.setningings (False) tempOn = 50 kizingiti = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, initial = 0) wakati True: temp = get_temp () ikiwa temp> tempOn na sio pinState au temp <tempOn - kizingiti na pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) kulala (1) isipokuwa KeyboardInterrupt: chapa ("Toka uliobonyezwa Ctrl + C") isipokuwa: chapa ("Isipokuwa nyingine") chapa ("- Anza Takwimu za Ubaguzi:") traceback.print_exc (kikomo = 2, file = sys.stdout) chapa ("- Takwimu za Kutoa Ubaguzi:") mwishowe: chapisha ("CleanUp") GPIO.cleanup () chapa ("Mwisho wa programu")

Hatua ya 5: Nambari ya Mwisho ya Python

Nambari kuu ya chatu inaweza kupatikana kwenye akaunti yangu ya GitHub kwenye kiunga kifuatacho. Kumbuka kuweka Ufunguo wako wa Kuandika API.

  1. Ingia kwenye bodi yako ya Raspberry PI
  2. Tumia amri ifuatayo kwenye terminal

python3 cpu.py

Hatua ya 6: Takwimu za Ufuatiliaji Kupitia Wingu la Thingspeak

Takwimu za Ufuatiliaji Kupitia Wingu la Thingspeak
Takwimu za Ufuatiliaji Kupitia Wingu la Thingspeak

Baada ya muda, fungua kituo chako kwenye ThingSpeak na unapaswa kuona hali ya joto ikipakia kwenye wingu la Thingspeak kwa wakati halisi.

Hatua ya 7: Endesha Hati ya Python katika Mwanzo

Ili kufanya hivyo, mwishoni mwa faili ya /etc/rc.local:

Sudo nano /etc/rc.local

Unahitaji kuweka amri ya kuanza kwa hati mbele ya kutoka kwa mstari 0:

sudo python / nyumba/pi/cpu.py &

Uwepo wa & alama mwishoni mwa amri ni lazima, kwa kuwa ni bendera kuanza mchakato nyuma.. Baada ya kuwasha tena, hati itaendesha kiatomati na shabiki atawaka wakati hali maalum imekidhiwa.

Ilipendekeza: