Talaan ng mga Nilalaman:

Smart Control ng Raspberry Pi Fan Gamit ang Python & Thingspeak: 7 Hakbang
Smart Control ng Raspberry Pi Fan Gamit ang Python & Thingspeak: 7 Hakbang

Video: Smart Control ng Raspberry Pi Fan Gamit ang Python & Thingspeak: 7 Hakbang

Video: Smart Control ng Raspberry Pi Fan Gamit ang Python & Thingspeak: 7 Hakbang
Video: Raspberry Pi Argon Fan HAT & Argon ONE Case Fan controller for Ubuntu 2024, Nobyembre
Anonim
Smart Control ng Raspberry Pi Fan Gamit ang Python & Thingspeak
Smart Control ng Raspberry Pi Fan Gamit ang Python & Thingspeak

Maikling pangkalahatang ideya

Bilang default, ang fan ay direktang konektado sa GPIO - ipinapahiwatig nito ang patuloy na operasyon nito. Sa kabila ng medyo tahimik na pagpapatakbo ng fan, ang tuluy-tuloy na operasyon nito ay hindi isang mabisang paggamit ng isang aktibong sistema ng paglamig. Sa parehong oras, ang patuloy na pagpapatakbo ng isang fan ay maaaring nakakainis. Gayundin, kung naka-off ang Raspberry Pi, gagana pa rin ang fan kung nakakonekta ang kuryente.

Ipapakita ng artikulong ito kung paano, gamit ang simple at hindi kumplikadong mga manipulasyon, i-on ang isang umiiral na sistema ng paglamig sa isang matalinong, na bubuksan lamang kapag talagang kailangan ito ng processor. Ang fan ay bubuksan lamang kapag may mabigat na paggamit, sa gayon binabawasan ang pagkonsumo ng kuryente ng fan at ingay. Nagpapalawak din ng buhay ng tagahanga sa pamamagitan ng pag-iingat nito kapag hindi kinakailangan.

Ano ang Malalaman Mo

Paano ipatupad ang isang script ng Python upang makontrol ang isang tagahanga batay sa kasalukuyang temperatura ng Raspberry CPU gamit ang kontrol na On-Off na may hysteresis ng temperatura. Paano mag-transport ng data mula sa iyong RaspberryPi sa Things Speak Cloud.

Mga gamit

Ang mga sangkap na kakailanganin sa iyo para sa proyektong ito ay ang mga sumusunod

  • Raspberry Pi 4 Computer Model B 4GB
  • NPN transistor S8050330ohms risistor
  • Armor Aluminium Metal Case na may Dual Fans para sa Raspberry Pi
  • Mga kable ng jumper
  • Breadboard

Hakbang 1: Pagbuo ng Circuit

Pagbuo ng Circuit
Pagbuo ng Circuit
Pagbuo ng Circuit
Pagbuo ng Circuit

Ang circuit ay medyo simple. Ang kapangyarihan sa tagahanga ay naputol gamit ang NPN transistor. Sa pagsasaayos na ito, ang transistor ay kumikilos bilang isang mababang-gilid na switch. Kinakailangan lamang ang resistor upang limitahan ang kasalukuyang sa pamamagitan ng GPIO. Ang GPIO ng Raspberry Pi ay may maximum na kasalukuyang output na 16mA. Gumamit ako ng 330 ohms na nagbibigay sa amin ng isang kasalukuyang base ng tungkol sa (5-0.7) / 330 = 13mA. Pinili ko ang isang NPN transistor S8050, kaya ang paglipat ng isang 400mA load mula sa parehong mga tagahanga ay walang problema.

Hakbang 2: Mag-log Temperatura ng CPU Sa ThingSpeak

Mag-log Temperatura ng CPU Sa ThingSpeak
Mag-log Temperatura ng CPU Sa ThingSpeak

Ang ThingSpeak ay isang platform para sa mga proyekto batay sa konsepto ng Internet of Things. Pinapayagan ka ng platform na ito na bumuo ng mga application batay sa data na nakolekta mula sa mga sensor. Ang mga pangunahing tampok ng ThingSpeak ay kinabibilangan ng: real-time na koleksyon ng data, pagproseso ng data at visualization. Ang ThingSpeak API ay hindi lamang pinapayagan kang magpadala, mag-imbak at mag-access ng data, ngunit nagbibigay din ng iba't ibang mga pamamaraan ng istatistika para sa pagproseso ng mga ito.

Maaaring isama ng ThingSpeak ang mga tanyag na aparato at serbisyo tulad ng:

  • Arduino
  • Raspberry pii
  • oBridge / RealTime.io
  • Electric imp
  • Mga aplikasyon sa mobile at Web
  • Mga social network
  • Pagsusuri sa Data sa MATLAB

Bago kami magsimula, kailangan mo ng isang account sa ThingSpeak.

  1. Pumunta sa sumusunod na link at mag-sign up sa ThingSpeak.
  2. Matapos ang pag-aktibo ng iyong account, mag-sign in.
  3. Pumunta sa Mga Channel -> Aking Mga Channel
  4. Mag-click sa pindutan ng Bagong Channel.
  5. Ipasok ang pangalan, paglalarawan at mga patlang ng data na nais mong i-upload
  6. Mag-click sa pindutan ng I-save ang Channel upang mai-save ang lahat ng iyong mga setting.

Kailangan namin ng isang API key, na idaragdag namin sa kalaunan sa python code upang mai-upload ang aming temperatura sa CPU sa Thingspeak cloud.

Mag-click sa tab na Mga API Key upang makuha ang Isulat ang API Key

Kapag mayroon ka ng Sumulat ng API Key, halos handa kaming i-upload ang aming data.

Hakbang 3: Pagkuha ng Temperatura ng CPU Mula sa isang Raspberry Pi Gamit ang Python

Ang script ay batay sa isang pagkuha ng temperatura ng processor, na nangyayari bawat segundo. Maaari itong makuha mula sa terminal sa pamamagitan ng pagpapatakbo ng vcgencmd utos na may sukat na sukat ng sukat_temp.

vcgencmd panukalang_temp

Ang Subprocess.check_output () library ay ginamit upang maisagawa ang utos at pagkatapos ay gumagamit ng regular na expression upang makuha ang aktwal na halaga mula sa naibalik na string.

mula sa subprocess import check_output

mula sa muling pag-import ng findalldef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d + \. / d +', temp) [0]) return (temp) i-print (get_temp ())

Matapos makuha ang halaga ng temperatura, kailangang ipadala ang data sa ThingSpeak cloud. Gamitin ang iyong Writing API Key upang baguhin ang variable ng myApi sa ibaba ng Python code.

mula sa kahilingan sa pag-import ng urllib

mula sa muling pag-import ng findall mula sa oras na pag-import ng pagtulog mula sa subprocess na pag-import ng check_output myAPI = '#### s '% myAPIdef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall (' / d + \. / d + ', temp) [0]) return (temp) subukan: habang Tama: temp = get_temp () conn = request.urlopen (baseURL + '& field1 =% s'% (temp)) print (str (temp)) conn.close () sleep (1) maliban sa KeyboardInterrupt: print ("Lumabas na pinindot ang Ctrl + C")

Hakbang 4: Pagkontrol sa Fan batay sa Temperatura

Ang script ng Python na ipinakita sa ibaba ay nagpapatupad ng lohika na bubukas sa fan kapag ang temperatura ay tumataas sa itaas ng tempOn at off lamang kapag ang temperatura ay bumaba sa ibaba ng threshold. Sa ganitong paraan, hindi mabilis na mag-o-on at mag-off ang fan.

i-import ang RPi. GPIO bilang GPIO

i-import ang sys mula sa pag-import ng findall mula sa oras na pag-import ng pagtulog mula sa subprocess import check_output def get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d + \. / d + ', temp) [0]) return (temp) try: GPIO.setwarnings (Mali) tempOn = 50 threshold = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, paunang = 0) habang Totoo: temp = get_temp () kung temp> tempOn at hindi pinState o temp <tempOn - threshold at pinState: pinState = hindi pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) pagtulog (1) maliban sa KeyboardInterrupt: print ("Exit na pinindot ang Ctrl + C") maliban sa: print ("Other Exception") print ("--- Start Exception Data:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- End Exception Data:") sa wakas: print ("CleanUp") GPIO.cleanup () print ("End of program")

Hakbang 5: Pangwakas na Code ng Python

Ang pangunahing code ng sawa ay matatagpuan sa aking GitHub account sa sumusunod na link. Tandaan na ilagay ang iyong sariling Isulat ang API Key.

  1. Mag-log in sa iyong board na Raspberry PI
  2. Patakbuhin ang sumusunod na utos sa terminal

python3 cpu.py

Hakbang 6: Pagsubaybay sa Data Sa Pamamagitan ng Thingspeak Cloud

Pagsubaybay ng Data Sa Pamamagitan ng Thingspeak Cloud
Pagsubaybay ng Data Sa Pamamagitan ng Thingspeak Cloud

Makalipas ang ilang sandali, buksan ang iyong channel sa ThingSpeak at dapat mong makita ang pag-upload ng temperatura sa cloud ng Thingspeak sa isang real-time.

Hakbang 7: Patakbuhin ang Python Script sa Startup

Upang gawin ito, sa dulo ng /etc/rc.local file:

sudo nano /etc/rc.local

Kailangan mong ilagay ang utos ng pagsisimula ng script sa harap ng linya na exit 0:

sudo python /home/pi/cpu.py &

Ang pagkakaroon ng & simbolo sa dulo ng utos ay sapilitan, dahil ito ay isang watawat upang simulan ang proseso sa background. Matapos ang pag-reboot, awtomatikong tatakbo ang script at ang fan ay bubukas kapag natutugunan ang mga tinukoy na kundisyon.

Inirerekumendang: