Агуулгын хүснэгт:

Python & Thingspeak ашиглан Raspberry Pi сэнсний ухаалаг хяналт: 7 алхам
Python & Thingspeak ашиглан Raspberry Pi сэнсний ухаалаг хяналт: 7 алхам

Видео: Python & Thingspeak ашиглан Raspberry Pi сэнсний ухаалаг хяналт: 7 алхам

Видео: Python & Thingspeak ашиглан Raspberry Pi сэнсний ухаалаг хяналт: 7 алхам
Видео: read data from thingspeak using python Raspberry pi or arduino 2024, Долдугаар сарын
Anonim
Python & Thingspeak ашиглан Raspberry Pi сэнсний ухаалаг хяналт
Python & Thingspeak ашиглан Raspberry Pi сэнсний ухаалаг хяналт

Товч танилцуулга

Анхдагч байдлаар, сэнс нь 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 ашиглан CPU -ийн температурыг бүртгэх
ThingSpeak ашиглан CPU -ийн температурыг бүртгэх

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

ThingSpeak нь алдартай төхөөрөмж, үйлчилгээг нэгтгэж болно.

  • Ардуино
  • Raspberry pii
  • oBridge / RealTime.io
  • Цахилгаан имп
  • Мобайл болон вэб програмууд
  • Нийгмийн сүлжээ
  • MATLAB дахь өгөгдлийн шинжилгээ

Эхлэхээсээ өмнө танд ThingSpeak дээр данс хэрэгтэй болно.

  1. Дараах линкээр орж ThingSpeak -д бүртгүүлнэ үү.
  2. Бүртгэлээ идэвхжүүлсний дараа нэвтэрнэ үү.
  3. Сувгууд -> Миний сувгууд руу очно уу
  4. Шинэ суваг товчийг дарна уу.
  5. Байршуулахыг хүссэн өгөгдлийн нэр, тайлбар, талбарыг оруулна уу
  6. Сувгийг хадгалах товчийг дарж бүх тохиргоогоо хадгална уу.

Бидэнд 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 бичих түлхүүрээ оруулахаа мартуузай.

  1. Raspberry PI самбарт нэвтэрнэ үү
  2. Дараах тушаалыг терминал дээр ажиллуулна уу

python3 cpu.py

Алхам 6: Thingspeak Cloud -ээр дамжуулан өгөгдлийг хянах

Өгөгдлийг Thingspeak Cloud ашиглан хянах
Өгөгдлийг Thingspeak Cloud ашиглан хянах

Хэсэг хугацааны дараа ThingSpeak дээр сувгаа нээвэл Thingspeak үүл рүү оруулах температур бодит цаг хугацаанд харагдах болно.

Алхам 7: Эхлэх үедээ Python скриптийг ажиллуулна уу

Үүнийг хийхийн тулд /etc/rc.local файлын төгсгөлд:

sudo нано /etc/rc.local

Та скрипт эхлүүлэх командыг 0 -р гарцын урд байрлуулах хэрэгтэй.

sudo python /home/pi/cpu.py &

Тушаалын төгсгөлд & тэмдэг байх нь заавал байх ёстой, учир нь энэ үйл явцыг ар талд эхлүүлэх туг юм. Дахин ачаалсны дараа скрипт автоматаар ажиллах бөгөөд заасан нөхцлийг хангасан үед сэнс асах болно.

Зөвлөмж болгож буй: