Мазмұны:
- Жабдықтар
- 1 -қадам: Схеманы құру
- 2 -қадам: ThingSpeak көмегімен CPU температурасын тіркеу
- 3 -қадам: Python көмегімен Raspberry Pi -ден процессордың температурасын алу
- 4 -қадам: Желдеткішті температураға байланысты басқару
- 5 -қадам: соңғы Python коды
- 6 -қадам: Thingspeak Cloud арқылы деректерді бақылау
- 7 -қадам: Бастау кезінде Python сценарийін іске қосыңыз
Бейне: Python & Thingspeak көмегімен Raspberry Pi желдеткішін ақылды басқару: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Қысқаша шолу
Әдепкі бойынша, желдеткіш GPIO -ға тікелей қосылған - бұл оның тұрақты жұмысын білдіреді. Желдеткіштің салыстырмалы түрде тыныш жұмысына қарамастан, оның үздіксіз жұмысы белсенді салқындату жүйесін тиімді пайдалану болып табылмайды. Сонымен қатар, желдеткіштің тұрақты жұмысы тітіркендіруі мүмкін. Сонымен қатар, егер Raspberry Pi өшірілсе, желілік желі қосылған болса да жұмыс істейді.
Бұл мақалада қарапайым және күрделі емес манипуляцияларды қолдана отырып, қолданыстағы салқындату жүйесін ақылдыға қалай айналдыру керектігін көрсетеді, ол процессорға шынымен қажет болғанда қосылады. Желдеткішті көп пайдалану кезінде ғана қосуға болады, осылайша желдеткіштің шығыны мен шуды азайтады. Сондай -ақ, қажет болмаған кезде оны өшіру арқылы желдеткіштің қызмет ету мерзімін ұзартады.
Сіз не үйренесіз
Raspberry CPU процессорының ағымдағы температурасына негізделген желдеткішті басқару үшін Python сценарийін қалай іске қосу керек?
Жабдықтар
Бұл жоба үшін сізге қажет компоненттер келесідей
- Raspberry Pi 4 компьютерлік моделі B 4GB
- NPN транзисторы S8050330 Ом резисторы
- Raspberry Pi үшін қос желдеткіші бар алюминийден жасалған металл қорап
- Өтпелі кабельдер
- Нан тақтасы
1 -қадам: Схеманы құру
Схема өте қарапайым. Желдеткіштің қуаты NPN транзисторының көмегімен ажыратылады. Бұл конфигурацияда транзистор төменгі жақтағы қосқыш қызметін атқарады. Резистор тек GPIO арқылы токты шектеу үшін қажет. Raspberry Pi GPIO -ның максималды ток шығысы 16 мА. Мен 330 Ом қолдандым, бұл бізге базалық токты (5-0.7)/330 = 13мА құрайды. Мен NPN транзисторын S8050 таңдадым, сондықтан екі желдеткіштен 400 мА жүктемені ауыстыру ешқандай қиындық тудырмайды.
2 -қадам: ThingSpeak көмегімен CPU температурасын тіркеу
ThingSpeak - бұл Интернет заттары тұжырымдамасына негізделген жобалар алаңы. Бұл платформа датчиктерден алынған мәліметтер негізінде қосымшалар құруға мүмкіндік береді. ThingSpeak-тің негізгі ерекшеліктеріне мыналар жатады: нақты уақытта деректерді жинау, деректерді өңдеу және визуализация. ThingSpeak API деректерді жіберуге, сақтауға және оларға қол жеткізуге мүмкіндік беріп қана қоймайды, сонымен қатар оларды өңдеудің әр түрлі статистикалық әдістерін ұсынады.
ThingSpeak танымал құрылғылар мен қызметтерді біріктіре алады, мысалы:
- Ардуино
- Таңқурай пи
- oBridge / RealTime.io
- Электрлік имп
- Мобильді және веб -қосымшалар
- Әлеуметтік желілер
- MATLAB -та мәліметтерді талдау
Біз бастамас бұрын, сізге ThingSpeak -те тіркелгі қажет.
- Келесі сілтемеге өтіп, ThingSpeak -ке жазылыңыз.
- Есептік жазбаны іске қосқаннан кейін жүйеге кіріңіз.
- Арналар -> Менің арналарыма өтіңіз
- Жаңа арна түймесін басыңыз.
- Жүктегіңіз келетін деректердің атын, сипаттамасын және өрістерін енгізіңіз
- Барлық параметрлерді сақтау үшін Арнаны сақтау түймесін басыңыз.
Бізге процессордың температурасын Thingspeak бұлтына жүктеу үшін кейінірек python кодына қосатын API кілті қажет.
API кілттерін жазу қойындысын алу үшін API кілттері қойындысын нұқыңыз
Сізде Write API кілті болғаннан кейін біз деректі жүктеуге дайынбыз.
3 -қадам: Python көмегімен Raspberry Pi -ден процессордың температурасын алу
Сценарий процессордың температурасын әр секунд сайын алуға негізделген. Оны терминалдан vcgencmd пәрменін meter_temp параметрімен іске қосу арқылы алуға болады.
vcgencmd шара_тамасы
Subprocess.check_output () кітапханасы пәрменді орындау үшін пайдаланылды, содан кейін қайтарылған жолдан нақты мәнді алу үшін тұрақты өрнек қолданылды.
check_output импорттаудың ішкі процессінен
findalldef get_temp () қайта импорттаудан: temp = check_output ([«vcgencmd», «meter_temp»]). decode () temp = float (findall ('\ d+\. / d+', temp) [0]) қайтару (temp)) басып шығару (get_temp ())
Температура мәні алынғаннан кейін, деректерді ThingSpeak бұлтына жіберу қажет. Төмендегі Python кодындағы myApi айнымалы мәнін өзгерту үшін Write API кілтін қолданыңыз.
urllib импорттау сұранысынан
қайта импорттау нәтижесінен импорттық ұйқыдан ішкі процестің импорты check_output myAPI = '###############' baseURL = 'https://api.thingspeak.com/update?api_key=% s ' % myAPIdef get_temp (): temp = check_output ([«vcgencmd», «meter_temp»]). decode () temp = float (findall (' / d+\. / d+', temp) [0]) қайтару (temp) көріңіз: ал True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 = % s' % (temp)) print (str (temp)) conn.close () sleep (1) KeyboardInterrupt қоспағанда: («Шығу Ctrl+C басылды»)
4 -қадам: Желдеткішті температураға байланысты басқару
Төменде көрсетілген Python сценарийі температура tempOn -ден жоғары көтерілгенде желдеткішті қосатын логиканы іске асырады және температура шекті мәннен төмен түскенде ғана өшеді. Осылайша желдеткіш тез қосылмайды және өшпейді.
GPO ретінде RPi. GPIO импорттау
жүйені импорттау жүйесінен қайта импорттау жүйесінен импорттау ұйқыдан қосалқы процестен импорт check_output def get_temp (): temp = check_output ([«vcgencmd», «ted_temp»]). decode () temp = float (findall ('\ d+\. / d+) ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 threshold = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, initial = 0) True кезінде: temp = get_temp () if temp> tempOn және pinState немесе temp <tempOn емес - шекті және pinState: pinState = pinState GPIO.output (controlPin, pinState) басып шығару (str (temp) + «» + str (pinState)) ұйқы (1) KeyboardInterrupt қоспағанда: басып шығару («Exit басылған Ctrl+C») қоспағанда: print («Басқа Ерекшелік») басып шығару («--- Ерекше деректерді бастау:») traceback.print_exc (шегі = 2), file = sys.stdout) print («--- Ерекшелік деректерін аяқтау:») соңында: басып шығару («CleanUp») GPIO.cleanup () басып шығару («Бағдарламаның соңы»)
5 -қадам: соңғы Python коды
Негізгі питон кодын GitHub есептік жазбамнан келесі сілтеме бойынша табуға болады. Write API кілтін қоюды ұмытпаңыз.
- Raspberry PI тақтасына кіріңіз
- Терминалда келесі пәрменді іске қосыңыз
python3 cpu.py
6 -қадам: Thingspeak Cloud арқылы деректерді бақылау
Біраз уақыттан кейін ThingSpeak-те арнаңызды ашыңыз, сіз Thingspeak бұлтына нақты уақыттағы температураның жүктелуін көресіз.
7 -қадам: Бастау кезінде Python сценарийін іске қосыңыз
Ол үшін /etc/rc.local файлының соңында:
sudo nano /etc/rc.local
Сценарийді іске қосу командасын 0 жолынан шығуға қою керек:
sudo python /home/pi/cpu.py &
Пәрменнің соңында & белгісінің болуы міндетті, себебі бұл процесті өңде бастау үшін жалауша. Қайта жүктеуден кейін сценарий автоматты түрде іске қосылады және көрсетілген шарттар орындалған кезде желдеткіш қосылады.
Ұсынылған:
DC MOTOR қолмен қимылды басқару жылдамдығы мен бағытын Arduino көмегімен басқару: 8 қадам
DC MOTOR қолмен қимылдарды басқару жылдамдығы мен бағытын Arduino көмегімен басқару: Бұл оқулықта біз arduino мен Visuino көмегімен қолмен ыммен тұрақты ток қозғалтқышты басқаруды үйренеміз. Бейнені қараңыз
Ақылды дабыл: Raspberry Pi көмегімен жасалған ақылды дабыл сағаты: 10 қадам (суреттермен)
Ақылды дабыл: Raspberry Pi көмегімен жасалған ақылды оятқыш: Сіз ақылды сағатты алғыңыз келді ме? Егер солай болса, онда бұл сізге арналған шешім! Мен Smart Alarm Clock жасадым, бұл веб -сайтқа сәйкес дабыл уақытын өзгертуге болатын сағат. Дабыл сөнген кезде дыбыс шығады (дыбыстық сигнал) және 2 жарық қосылады
Raspberry Pi және LIS3DHTR көмегімен қозғалысты басқару, 3 осьті акселерометр, Python көмегімен: 6 қадам
Raspberry Pi және LIS3DHTR көмегімен қозғалысты басқару, 3 осьті акселерометр, Python көмегімен: Сұлулық бізді қоршап тұрады, бірақ әдетте оны білу үшін біз бақта серуендеуіміз керек. - Біз білетін топ ретінде біз энергияның көп бөлігін компьютерлер мен ұялы телефондардың алдында жұмыс істеуге жұмсаймыз. Сондықтан біз өз денсаулығымызға жиі рұқсат береміз
Жарықтықты басқару PWM негізіндегі жарықдиодты басқару түймелері, Raspberry Pi және Scratch көмегімен: 8 қадам (суреттермен)
Жарықтықты басқару PWM негізіндегі жарықдиодты басқару түймелері, Raspberry Pi және Scratch көмегімен: Мен оқушыларға PWM қалай жұмыс жасайтынын түсіндірудің жолын табуға тырыстым, сондықтан мен 2 түймені қолданып жарық диодты жарықтылықты басқаруға тырысамын. - бір түйме жарық диодты жарықтандыруды арттырады, ал екіншісі оны өшіреді. Бағдарламаға
ESP8266 RGB LED STRIP WIFI басқару - NODEMCU Wifi арқылы басқарылатын жарықдиодты жолақ үшін IR қашықтан басқару құралы ретінде - RGB LED STRIP смартфонды басқару: 4 қадам
ESP8266 RGB LED STRIP WIFI басқару | NODEMCU Wifi арқылы басқарылатын жарықдиодты жолақ үшін IR қашықтан басқару құралы ретінде | Смартфонды RGB LED STRIP басқару: Сәлеметсіздер ме, балалар, бұл оқулықта біз nodemcu немесе esp8266 -ды RGB жарықдиодты жолағын басқару үшін инфрақызыл қашықтан басқару құралы ретінде қолдануды үйренеміз, ал Nodemcu смартфон Wi -Fi арқылы басқарылады. Негізінде сіз RGB LED STRIP -ті смартфонмен басқара аласыз