Мазмуну:

Python & Thingspeak аркылуу Raspberry Pi күйөрмандын акылдуу көзөмөлү: 7 кадам
Python & Thingspeak аркылуу Raspberry Pi күйөрмандын акылдуу көзөмөлү: 7 кадам

Video: Python & Thingspeak аркылуу Raspberry Pi күйөрмандын акылдуу көзөмөлү: 7 кадам

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

Кыскача сереп

Демейки боюнча, күйөрман GPIOго түз туташкан - бул анын үзгүлтүксүз иштешин билдирет. Желдеткичтин салыштырмалуу тынч иштешине карабастан, анын үзгүлтүксүз иштеши активдүү муздатуу системасын эффективдүү колдонуу эмес. Ошол эле учурда, желдеткичтин тынымсыз иштеши кыжырды келтириши мүмкүн. Ошондой эле, эгер Raspberry Pi өчүрүлгөн болсо, анда күйгүзүүчү электр байланышы бар болсо дагы иштей берет.

Бул макалада жөнөкөй жана татаал эмес манипуляцияларды колдонуу менен, иштеп жаткан муздатуу системасын акылдуу системага кантип айландыруу керектиги көрсөтүлөт, ал процессор чындап муктаж болгондо гана күйгүзүлөт. Желдеткич катуу колдонулганда гана күйгүзүлмөк, ошентип күйөрман кубаттуулугун жана ызы -чууну азайтат. Ошондой эле күйөрмандардын өмүрүн узартуу керек болбогондо өчүрүү.

Эмнени үйрөнөсүң

Python скриптин кантип ишке ашыруу керек, Raspberry CPUнун учурдагы температурасына негизделген күйгүзгүчтү температуранын гистерезиси менен On-Off көзөмөлү аркылуу кантип башкарса болот.

Жабдуулар

Бул долбоор үчүн сизге керектүү компоненттер төмөнкүдөй

  • Raspberry Pi 4 Computer Model B 4GB
  • NPN транзистору S8050330ohms резистору
  • Raspberry Pi үчүн кош күйөрмандары бар Armor алюминий металл корпусу
  • Өтмө кабелдер
  • Breadboard

1 -кадам: Районду куруу

Районду куруу
Районду куруу
Районду куруу
Районду куруу

Район абдан жөнөкөй. Желдеткичтин күчү NPN транзистору менен өчүрүлөт. Бул конфигурацияда транзистор аз тараптуу которгуч катары иштейт. Резистор GPIO аркылуу токту чектөө үчүн гана керек. Raspberry Pi’нин GPIO максималдуу учурдагы чыгышы 16 мА. Мен 330 ом колдондум, бул бизге базалык токту (5-0.7)/330 = 13mA берет. Мен NPN транзисторун S8050 тандап алдым, ошондуктан эки күйөрмандан 400мА жүктү алмаштыруу эч кандай көйгөй эмес.

2 -кадам: ThingSpeak менен CPU температурасын жазыңыз

ThingSpeak менен CPU температурасын жазыңыз
ThingSpeak менен CPU температурасын жазыңыз

ThingSpeak - бул нерселердин Интернетине негизделген долбоорлордун платформасы. Бул платформа сенсорлордон чогултулган маалыматтардын негизинде тиркемелерди түзүүгө мүмкүндүк берет. ThingSpeakтин негизги өзгөчөлүктөрүнө төмөнкүлөр кирет: реалдуу убакытта маалыматтарды чогултуу, маалыматтарды иштетүү жана визуализация. ThingSpeak API сизге маалыматтарды жөнөтүүгө, сактоого жана кирүүгө гана мүмкүндүк бербестен, аларды иштетүүнүн ар кандай статистикалык ыкмаларын камсыз кылат.

ThingSpeak популярдуу түзмөктөрдү жана кызматтарды камтышы мүмкүн:

  • Arduino
  • Raspberry pii
  • oBridge / RealTime.io
  • Электр им
  • Мобилдик жана веб -тиркемелер
  • Социалдык тармактар
  • MATLABдагы маалыматтарды талдоо

Баштоодон мурун, ThingSpeakте сизге эсеп керек.

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

Бизге API ачкычы керек, аны биз кийинчерээк CPU температурабызды Thingspeak булутуна жүктөө үчүн python кодуна кошобуз.

API ачкычтарын жазуу API баскычын алуу үчүн чыкылдатыңыз

Жазуу API ачкычына ээ болгондон кийин, биз маалыматыбызды жүктөөгө дээрлик даярбыз.

3 -кадам: Python аркылуу Raspberry Piден CPU температурасын алуу

Сценарий процессордун температурасын секундада чыгарууга негизделген. Ал терминалдан vcgencmd буйругун tədbir_temp параметри менен иштетүү аркылуу алууга болот.

vcgencmd tədbir_темп

Subprocess.check_output () китепканасы буйрукту аткаруу үчүн колдонулган, андан кийин кайтып келген саптан чыныгы маанини алуу үчүн туруктуу сөз айкашын колдонуу.

subprocess импорттон check_output

кайра импорттоодон findalldef get_temp (): temp = check_output (["vcgencmd", "meter_temp"]). decode () temp = float (findall ('\ d+\. / d+', temp) [0]) return (temp) басып чыгаруу (get_temp ())

Температура алынган соң, маалыматтарды ThingSpeak булутуна жөнөтүү керек. Төмөнкү Python кодундагы myApi өзгөрмөсүн өзгөртүү үчүн Write API ачкычын колдонуңуз.

urllib импорттук сурамынан

кайра импорттук табуудан импорттук уктоодон субпроцессинен импорттук текшерүү checkout_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]) return (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 импорттоо

импорттук системадан кайра импорттук табуудан импорттоо уйку убактысынан субпроцесси ', temp) [0]) кайтуу (темп) аракет: GPIO.setwarnings (False) tempOn = 50 босого = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, баштапкы = 0) Чынында: temp = get_temp () if temp> tempOn жана pinState же temp <tempOn эмес - босого жана pinState: pinState = pinState эмес GPIO.output (controlPin, pinState) басып чыгаруу (str (temp) + "" + str (pinState)) sleep (1) KeyboardInterruptдон башка: print ("Exit pressed Ctrl+C") except: print ("Other Exception") print ("--- Start Exception Data:") traceback.print_exc (limit = 2), file = sys.stdout) print ("--- Exception Data:") акыры: print ("CleanUp") GPIO.cleanup () print ("Программанын аягы")

5 -кадам: Акыркы Python коду

Негизги питон кодун GitHub эсебимден төмөнкү шилтемеден тапса болот. Өзүңүздүн API 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 &

Буйруктун аягында & символунун болушу милдеттүү, анткени ал процессти фондо баштайт. Кайра жүктөөдөн кийин скрипт автоматтык түрдө иштейт жана көрсөтүлгөн шарттар аткарылганда күйөрман күйөт.

Сунушталууда: