Мазмұны:

Python & Thingspeak көмегімен Raspberry Pi желдеткішін ақылды басқару: 7 қадам
Python & Thingspeak көмегімен Raspberry Pi желдеткішін ақылды басқару: 7 қадам

Бейне: Python & Thingspeak көмегімен Raspberry Pi желдеткішін ақылды басқару: 7 қадам

Бейне: Python & Thingspeak көмегімен Raspberry Pi желдеткішін ақылды басқару: 7 қадам
Бейне: Измерьте температуру и влажность Wi-Fi с помощью ESP32 DHT11 и DHT22 - Robojax 2024, Шілде
Anonim
Python & Thingspeak көмегімен Raspberry Pi желдеткішін ақылды басқару
Python & Thingspeak көмегімен Raspberry Pi желдеткішін ақылды басқару

Қысқаша шолу

Әдепкі бойынша, желдеткіш 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 - бұл Интернет заттары тұжырымдамасына негізделген жобалар алаңы. Бұл платформа датчиктерден алынған мәліметтер негізінде қосымшалар құруға мүмкіндік береді. ThingSpeak-тің негізгі ерекшеліктеріне мыналар жатады: нақты уақытта деректерді жинау, деректерді өңдеу және визуализация. ThingSpeak API деректерді жіберуге, сақтауға және оларға қол жеткізуге мүмкіндік беріп қана қоймайды, сонымен қатар оларды өңдеудің әр түрлі статистикалық әдістерін ұсынады.

ThingSpeak танымал құрылғылар мен қызметтерді біріктіре алады, мысалы:

  • Ардуино
  • Таңқурай пи
  • oBridge / RealTime.io
  • Электрлік имп
  • Мобильді және веб -қосымшалар
  • Әлеуметтік желілер
  • MATLAB -та мәліметтерді талдау

Біз бастамас бұрын, сізге ThingSpeak -те тіркелгі қажет.

  1. Келесі сілтемеге өтіп, ThingSpeak -ке жазылыңыз.
  2. Есептік жазбаны іске қосқаннан кейін жүйеге кіріңіз.
  3. Арналар -> Менің арналарыма өтіңіз
  4. Жаңа арна түймесін басыңыз.
  5. Жүктегіңіз келетін деректердің атын, сипаттамасын және өрістерін енгізіңіз
  6. Барлық параметрлерді сақтау үшін Арнаны сақтау түймесін басыңыз.

Бізге процессордың температурасын 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 кілтін қоюды ұмытпаңыз.

  1. Raspberry PI тақтасына кіріңіз
  2. Терминалда келесі пәрменді іске қосыңыз

python3 cpu.py

6 -қадам: Thingspeak Cloud арқылы деректерді бақылау

Thingspeak Cloud арқылы деректерді бақылау
Thingspeak Cloud арқылы деректерді бақылау

Біраз уақыттан кейін ThingSpeak-те арнаңызды ашыңыз, сіз Thingspeak бұлтына нақты уақыттағы температураның жүктелуін көресіз.

7 -қадам: Бастау кезінде Python сценарийін іске қосыңыз

Ол үшін /etc/rc.local файлының соңында:

sudo nano /etc/rc.local

Сценарийді іске қосу командасын 0 жолынан шығуға қою керек:

sudo python /home/pi/cpu.py &

Пәрменнің соңында & белгісінің болуы міндетті, себебі бұл процесті өңде бастау үшін жалауша. Қайта жүктеуден кейін сценарий автоматты түрде іске қосылады және көрсетілген шарттар орындалған кезде желдеткіш қосылады.

Ұсынылған: