Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Pagbuo ng Circuit
- Hakbang 2: Mag-log Temperatura ng CPU Sa ThingSpeak
- Hakbang 3: Pagkuha ng Temperatura ng CPU Mula sa isang Raspberry Pi Gamit ang Python
- Hakbang 4: Pagkontrol sa Fan batay sa Temperatura
- Hakbang 5: Pangwakas na Code ng Python
- Hakbang 6: Pagsubaybay sa Data Sa Pamamagitan ng Thingspeak Cloud
- Hakbang 7: Patakbuhin ang Python Script sa Startup
Video: Smart Control ng Raspberry Pi Fan Gamit ang Python & Thingspeak: 7 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
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
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
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.
- Pumunta sa sumusunod na link at mag-sign up sa ThingSpeak.
- Matapos ang pag-aktibo ng iyong account, mag-sign in.
- Pumunta sa Mga Channel -> Aking Mga Channel
- Mag-click sa pindutan ng Bagong Channel.
- Ipasok ang pangalan, paglalarawan at mga patlang ng data na nais mong i-upload
- 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.
- Mag-log in sa iyong board na Raspberry PI
- Patakbuhin ang sumusunod na utos sa terminal
python3 cpu.py
Hakbang 6: Pagsubaybay sa 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:
Tangkilikin ang Iyong Cool na Tag-init Gamit ang isang M5StickC ESP32 Fan - Naaayos na Bilis: 8 Hakbang
Tangkilikin ang Iyong Cool na Tag-init Gamit ang isang M5StickC ESP32 Fan - Naaayos na Bilis: Sa proyektong ito matututunan natin kung paano makontrol ang isang bilis ng FAN gamit ang isang board na M5StickC ESP32 at L9110 fan module
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
Internet Clock: Ipakita ang Petsa at Oras Gamit ang isang OLED Gamit ang ESP8266 NodeMCU Sa NTP Protocol: 6 na Hakbang
Internet Clock: Display Date and Time With an OLED Gamit ang ESP8266 NodeMCU With NTP Protocol: Kumusta mga tao sa mga itinuturo na ito na magtatayo kami ng isang orasan sa internet na magkakaroon ng oras mula sa internet kaya't ang proyektong ito ay hindi mangangailangan ng anumang RTC upang tumakbo, kakailanganin lamang nito ang isang nagtatrabaho koneksyon sa internet At para sa proyektong ito kailangan mo ng isang esp8266 na magkakaroon ng
Basahin at Isulat Mula sa Serial Port Gamit ang Raspberry Pi Gamit ang Wemos: 5 Hakbang
Basahin at Isulat Mula sa Serial Port Gamit ang Raspberry Pi Gamit ang Wemos: Pakikipag-usap sa isang Raspberry Pi gamit ang isang Wemos D1 mini R2
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c