Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Цахилгаан хэлхээг бий болгох
- Алхам 2: CPU -ийн температурыг ThingSpeak ашиглан бүртгэх
- Алхам 3: Python ашиглан Raspberry Pi -аас CPU -ийн температурыг авах
- Алхам 4: Температур дээр үндэслэн сэнсийг хянах
- Алхам 5: Эцсийн Python код
- Алхам 6: Thingspeak Cloud -ээр дамжуулан өгөгдлийг хянах
- Алхам 7: Эхлэх үедээ Python скриптийг ажиллуулна уу
Видео: Python & Thingspeak ашиглан Raspberry Pi сэнсний ухаалаг хяналт: 7 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Товч танилцуулга
Анхдагч байдлаар, сэнс нь GPIO -той шууд холбогддог бөгөөд энэ нь түүний байнгын ажиллагааг илэрхийлдэг. Сэнс харьцангуй чимээгүй ажилладаг боловч тасралтгүй ажиллах нь идэвхтэй хөргөлтийн системийг үр дүнтэй ашиглах явдал биш юм. Үүний зэрэгцээ сэнсний байнгын ажиллагаа нь ядаргаатай байж болно. Түүнчлэн, хэрэв Raspberry Pi -г унтраасан бол цахилгаан холбосон тохиолдолд сэнс ажиллах болно.
Энэхүү нийтлэлд энгийн, төвөгтэй биш аргаар хөргөлтийн системийг ухаалаг төхөөрөмж болгон хэрхэн яаж процессор үнэхээр хэрэгтэй үед л асаахыг харуулах болно. Сэнсийг зөвхөн ачаалал ихтэй үед асаах бөгөөд ингэснээр сэнсний эрчим хүчний хэрэглээ, дуу чимээг бууруулдаг. Шаардлагагүй үед унтрааж сэнсний ашиглалтын хугацааг уртасгадаг.
Та юу сурах вэ
Raspberry CPU-ийн өнөөгийн температурт суурилсан сэнсийг хянахын тулд температурын гистерезис бүхий On-Off хяналтыг ашиглан Python скриптийг хэрхэн яаж хэрэгжүүлэх вэ
Хангамж
Энэхүү төсөлд шаардлагатай бүрэлдэхүүн хэсгүүд нь дараах байдалтай байна
- Raspberry Pi 4 Компьютерийн загвар B 4GB
- NPN транзистор S8050330 Ом эсэргүүцэл
- Raspberry Pi -ийн хос сэнстэй Armor хөнгөн цагаан металл хайрцаг
- Холбогч кабель
- Талхны самбар
Алхам 1: Цахилгаан хэлхээг бий болгох
Хэлхээ нь маш энгийн. Сэнсний хүчийг NPN транзистор ашиглан тасалдаг. Энэ тохиргоонд транзистор нь бага талын унтраалгын үүргийг гүйцэтгэдэг. Резистор нь зөвхөн GPIO ашиглан гүйдлийг хязгаарлахад л шаардлагатай. Raspberry Pi -ийн GPIO нь хамгийн их гүйдлийн гаралт нь 16 мА байна. Би 330 ом ашигласан бөгөөд энэ нь бидэнд (5-0.7)/330 = 13mA үндсэн гүйдлийг өгдөг. Би NPN транзистор S8050 -ийг сонгосон тул хоёр фенээс 400mA ачааллыг солих нь асуудал биш юм.
Алхам 2: CPU -ийн температурыг ThingSpeak ашиглан бүртгэх
ThingSpeak бол Интернетийн зүйлсийн үзэл баримтлалд суурилсан төслүүдийн платформ юм. Энэхүү платформ нь мэдрэгчээс цуглуулсан өгөгдөл дээр үндэслэн програм үүсгэх боломжийг танд олгоно. ThingSpeak-ийн гол онцлог шинж чанарууд нь: бодит цагийн мэдээлэл цуглуулах, мэдээлэл боловсруулах, дүрслэх. ThingSpeak API нь өгөгдлийг илгээх, хадгалах, хандах боломжийг олгодог төдийгүй тэдгээрийг боловсруулах статистикийн янз бүрийн аргуудыг өгдөг.
ThingSpeak нь алдартай төхөөрөмж, үйлчилгээг нэгтгэж болно.
- Ардуино
- Raspberry pii
- oBridge / RealTime.io
- Цахилгаан имп
- Мобайл болон вэб програмууд
- Нийгмийн сүлжээ
- MATLAB дахь өгөгдлийн шинжилгээ
Эхлэхээсээ өмнө танд ThingSpeak дээр данс хэрэгтэй болно.
- Дараах линкээр орж ThingSpeak -д бүртгүүлнэ үү.
- Бүртгэлээ идэвхжүүлсний дараа нэвтэрнэ үү.
- Сувгууд -> Миний сувгууд руу очно уу
- Шинэ суваг товчийг дарна уу.
- Байршуулахыг хүссэн өгөгдлийн нэр, тайлбар, талбарыг оруулна уу
- Сувгийг хадгалах товчийг дарж бүх тохиргоогоо хадгална уу.
Бидэнд CPU түлхүүрийг Thingspeak үүл рүү оруулахын тулд дараа нь python код дээр нэмэх API түлхүүр хэрэгтэй болно.
API Keys таб дээр дарж API бичих түлхүүрийг авна уу
Хэрэв танд Write API түлхүүр байгаа бол бид өгөгдлөө байршуулахад бараг бэлэн боллоо.
Алхам 3: Python ашиглан Raspberry Pi -аас CPU -ийн температурыг авах
Скрипт нь секунд тутамд тохиолддог процессорын температурыг сэргээхэд суурилдаг. Үүнийг vcgencmd тушаалыг tədbir_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 -ээс дээш гарах үед сэнсийг асаах логикийг хэрэгжүүлдэг бөгөөд температур нь босго хэмжээнээс доош буухад л унтардаг. Ингэснээр сэнс хурдан асахгүй, унтрахгүй.
RPi. GPIO -г GPIO болгон импортлох
sys -ийг дахин импортлох хайлтаас импортлох цагийг унтраах процессоос импортлох check_output def get_temp (): temp = check_output (["vcgencmd", "tədbir_temp"]). декод () temp = float (findall ('\ d+\. / d+) ', temp) [0]) буцах (temp) оролдох: GPIO.setwarnings (False) tempOn = 50 босго = 10 controlPin = 14 pinState = Худал 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)) sleep (1) KeyboardInterrupt-ээс бусад тохиолдолд: хэвлэх ("Exit дарагдсан Ctrl+C") бусад: хэвлэх ("Бусад онцгой тохиолдол") хэвлэх ("--- Онцгой байдлын өгөгдлийг эхлүүлэх:") traceback.print_exc (хязгаар = 2, file = sys.stdout) хэвлэх ("--- Үл хамаарах өгөгдлийг дуусгах:") эцэст нь: хэвлэх ("CleanUp") GPIO.cleanup () хэвлэх ("Програмын төгсгөл")
Алхам 5: Эцсийн Python код
Питоны үндсэн кодыг миний GitHub данснаас дараах линкээс олж болно. Өөрийн API бичих түлхүүрээ оруулахаа мартуузай.
- Raspberry PI самбарт нэвтэрнэ үү
- Дараах тушаалыг терминал дээр ажиллуулна уу
python3 cpu.py
Алхам 6: Thingspeak Cloud -ээр дамжуулан өгөгдлийг хянах
Хэсэг хугацааны дараа ThingSpeak дээр сувгаа нээвэл Thingspeak үүл рүү оруулах температур бодит цаг хугацаанд харагдах болно.
Алхам 7: Эхлэх үедээ Python скриптийг ажиллуулна уу
Үүнийг хийхийн тулд /etc/rc.local файлын төгсгөлд:
sudo нано /etc/rc.local
Та скрипт эхлүүлэх командыг 0 -р гарцын урд байрлуулах хэрэгтэй.
sudo python /home/pi/cpu.py &
Тушаалын төгсгөлд & тэмдэг байх нь заавал байх ёстой, учир нь энэ үйл явцыг ар талд эхлүүлэх туг юм. Дахин ачаалсны дараа скрипт автоматаар ажиллах бөгөөд заасан нөхцлийг хангасан үед сэнс асах болно.
Зөвлөмж болгож буй:
ESP8266 RGB LED зурвасын WIFI хяналт - NODEMCU нь Wifi -ээр удирддаг Led зурвасын IR алсын удирдлага болгон ашигладаг. - RGB LED STRIP ухаалаг гар утасны хяналт: 4 алхам
ESP8266 RGB LED зурвасын WIFI хяналт | NODEMCU нь Wifi -ээр удирддаг Led зурвасын IR алсын удирдлага болгон ашигладаг. | RGB LED STRIP ухаалаг гар утасны хяналт: Сайн байна уу залуусаа, энэ заавар дээр бид nodemcu эсвэл esp8266 -ийг IR алсын удирдлага болгон RGB LED зурвасыг хэрхэн ашиглах талаар сурах болно, Nodemcu нь ухаалаг гар утсаар wifi -ээр хянагдах болно. Үндсэндээ та ухаалаг гар утсаараа RGB LED STRIP -ийг удирдах боломжтой
HT12D HT12E ашиглан RF 433MHZ радио хяналт - HT12E & HT12D ашиглан 433mhz ашиглан Rf алсын удирдлага хийх: 5 алхам
HT12D HT12E ашиглан RF 433MHZ радио хяналт | HT12E & HT12D -ийг 433mhz ашиглан Rf алсын удирдлага хийх: Энэхүү зааварчилгаанд би HT12E кодчилол бүхий 433mhz дамжуулагч хүлээн авах модулийг ашиглан RADIO алсын удирдлага хийхийг танд үзүүлэх болно. HT12D декодер IC. Энэхүү зааварчилгаанд та өгөгдлийг маш хямд найрлагатай ашиглан илгээх, хүлээн авах боломжтой болно: HT
Дулаан солилцооны сэнсний термостатын хяналт: 7 алхам (зурагтай)
Дулаан солилцооны сэнсний термостатын хяналт: Сайн байцгаана уу, энэ зааварчилгаанд би хямд термостатын модулийг ашиглан дулааны солилцооны сэнсийг хэрхэн автоматжуулахыг танд үзүүлэх болно. Та юу хийж байгаагаа сайн мэдэхгүй байна, бүү оролдоорой
Температур мэдрэгч (LM35) ATmega32 болон LCD дэлгэцтэй харилцах - Автомат сэнсний хяналт: 6 алхам
Температур мэдрэгч (LM35) ATmega32 болон LCD дэлгэцтэй харилцах | Автомат сэнсний хяналт: Температур мэдрэгч (LM35) ATmega32 болон LCD дэлгэцтэй харилцах
Blynk програм ашиглан USB ашиглан ухаалаг гар утсыг ашиглан Arduino -г удирдах: 7 алхам (зурагтай)
Blynk програм ашиглан USB ашиглан ухаалаг гар утсыг ашиглан Arduino -ийг удирдах Arduino эсвэл c-ээ алсаас удирдах хамгийн энгийн шийдэл