Mundarija:

Python va Thingspeak yordamida Raspberry Pi fanatini aqlli boshqarish: 7 qadam
Python va Thingspeak yordamida Raspberry Pi fanatini aqlli boshqarish: 7 qadam

Video: Python va Thingspeak yordamida Raspberry Pi fanatini aqlli boshqarish: 7 qadam

Video: Python va Thingspeak yordamida Raspberry Pi fanatini aqlli boshqarish: 7 qadam
Video: Измерьте температуру и влажность Wi-Fi с помощью ESP32 DHT11 и DHT22 - Robojax 2024, Iyul
Anonim
Python & Thingspeak yordamida Raspberry Pi fanatini aqlli boshqarish
Python & Thingspeak yordamida Raspberry Pi fanatini aqlli boshqarish

Qisqa ma'lumot

Odatiy bo'lib, fan to'g'ridan -to'g'ri GPIO -ga ulangan - bu uning doimiy ishlashini bildiradi. Ventilyatorning nisbatan jim ishlashiga qaramay, uning uzluksiz ishlashi faol sovutish tizimidan samarali foydalanish emas. Shu bilan birga, fanning doimiy ishlashi shunchaki zerikarli bo'lishi mumkin. Bundan tashqari, agar Raspberry Pi o'chirilgan bo'lsa, quvvat ulangan bo'lsa ham fan ishlaydi.

Ushbu maqolada oddiy va murakkab bo'lmagan manipulyatsiyalar yordamida mavjud sovutish tizimini aqlli tizimga aylantirish ko'rsatiladi, u faqat protsessorga chindan ham kerak bo'lganda yoqiladi. Ventilyator faqat ko'p ishlatilganda yoqiladi, shuning uchun fan quvvati va shovqin kamayadi. Bundan tashqari, kerak bo'lmaganda uni o'chirib qo'yish orqali fanning umrini uzaytiring.

Siz nimani o'rganasiz

Raspberry protsessorining joriy haroratiga asoslangan fanni boshqarish uchun Python skriptini qanday amalga oshirish kerak? Harorat histerezisi bilan On-Off boshqaruvini ishlating. RaspberryPi-dan Things Speak Cloud-ga ma'lumotlarni qanday o'tkazish kerak.

Ta'minotlar

Loyihani amalga oshirish uchun sizga quyidagi komponentlar kerak bo'ladi

  • Raspberry Pi 4 kompyuter modeli B 4GB
  • NPN tranzistorli S8050330 ohmli rezistor
  • Raspberry Pi uchun ikkita muxlisli alyuminiy metall korpus
  • Jumper kabellari
  • Non paneli

1 -qadam: O'chirish tizimini yaratish

O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri

O'chirish sxemasi juda oddiy. Ventilyatorning kuchi NPN tranzistori yordamida uziladi. Ushbu konfiguratsiyada tranzistor past burchakli kalit vazifasini bajaradi. Rezistor faqat GPIO orqali tokni cheklash uchun kerak. Raspberry Pi GPIO -ning maksimal chiqish quvvati 16 mA. Men 330 ohmdan foydalandim, bu bizga asosiy oqimni (5-0.7)/330 = 13mA ga beradi. Men NPN tranzistorli S8050 ni tanladim, shuning uchun har ikkala fanatdan ham 400mA yukni almashtirish muammo emas.

2 -qadam: ThingSpeak yordamida CPU haroratini kiriting

ThingSpeak yordamida CPU haroratini yozib oling
ThingSpeak yordamida CPU haroratini yozib oling

ThingSpeak - bu narsalar Interneti kontseptsiyasiga asoslangan loyihalar uchun platforma. Ushbu platforma sensorlardan yig'ilgan ma'lumotlarga asoslangan holda ilovalar tuzishga imkon beradi. ThingSpeak-ning asosiy xususiyatlari quyidagilardan iborat: real vaqtda ma'lumotlarni yig'ish, ma'lumotlarni qayta ishlash va vizualizatsiya. ThingSpeak API nafaqat ma'lumotlarni yuborish, saqlash va ularga kirishga ruxsat beradi, balki ularni qayta ishlashning turli statistik usullarini ham taqdim etadi.

ThingSpeak mashhur qurilmalar va xizmatlarni birlashtirishi mumkin, masalan:

  • Arduino
  • Malina pii
  • oBridge / RealTime.io
  • Elektr imp
  • Mobil va veb -ilovalar
  • Ijtimoiy tarmoqlar
  • MATLAB -da ma'lumotlarni tahlil qilish

Ishni boshlashdan oldin, sizga ThingSpeak -da hisob kerak.

  1. Quyidagi havolaga o'ting va ThingSpeak -ga ro'yxatdan o'ting.
  2. Hisobni faollashtirgandan so'ng, tizimga kiring.
  3. Kanallar -> Mening kanallarimga o'ting
  4. Yangi kanal tugmasini bosing.
  5. Yuklamoqchi bo'lgan ma'lumotlar nomi, tavsifi va maydonlarini kiriting
  6. Barcha sozlamalarni saqlash uchun Kanalni saqlash tugmasini bosing.

Bizga CPU kalitini Thingspeak bulutiga yuklash uchun keyinchalik Python kodiga qo'shadigan API kaliti kerak.

API yozish kalitini olish uchun API kalitlari yorlig'ini bosing

Agar sizda API yozish kaliti bo'lsa, biz ma'lumotlarni yuklashga deyarli tayyormiz.

3 -qadam: Python yordamida Raspberry Pi -dan CPU haroratini olish

Skript har soniyada sodir bo'ladigan protsessor haroratini olishga asoslangan. Buni terminaldan vcgencmd buyrug'ini o'lchov_temp parametri bilan ishga tushirish orqali olish mumkin.

vcgencmd o'lchov_temp

Subprocess.check_output () kutubxonasi buyruqni bajarish uchun ishlatilgan va keyin qaytarilgan satrdan haqiqiy qiymatni chiqarish uchun oddiy ifodadan foydalanilgan.

subprocess import check_output dan

Qayta importdan findalldef get_temp (): temp = check_output (["vcgencmd", "tədbir_temp"]). dekod () temp = float (findall ('\ d+\. / d+', temp) [0]) qaytish (temp) chop etish (get_temp ())

Harorat qiymatini olgandan so'ng, ma'lumotlarni ThingSpeak bulutiga yuborish kerak. Quyidagi Python kodidagi myApi o'zgaruvchisini o'zgartirish uchun Write API kalitidan foydalaning.

urllib import so'rovidan

qayta import topishdan vaqt importidan uyquga o'tish jarayonidan import check_output myAPI = '###############' baseURL = 'https://api.thingspeak.com/update?api_key=% s ' % myAPIdef get_temp (): temp = check_output (["vcgencmd", "meter_temp"]). dekod () temp = float (findall (' / d+\. / d+', temp) [0]) qaytish (temp) harakat qilib ko'ring: while True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 = % s' % (temp)) print (str (temp)) conn.close () sleep (1) in KeyboardInterruptdan tashqari) ("Chiqish Ctrl+C tugmalarini bosilgan")

4 -qadam: Fanni haroratga qarab boshqarish

Quyida ko'rsatilgan Python skriptida harorat tempOndan yuqori bo'lganda va fanat ostidan pastga tushganda o'chadi, fanni yoqadi. Shunday qilib, fan tez yoqilmaydi va o'chmaydi.

RPi. GPIO -ni GPIO sifatida import qilish

tizimni qayta import qilish topilmasidan vaqtni import qilishdan keyin uyqu jarayonini import qilish check_output def get_temp (): temp = check_output (["vcgencmd", "tədbir_temp"]). dekod () temp = float (findall ('\ d+\. / d+) ', temp) [0]) qaytish (temp) urinib ko'ring: GPIO.setwarnings (False) tempOn = 50 pol = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, boshlang'ich = 0) rost bo'lsa: temp = get_temp () if temp> tempOn va pinState yoki temp <tempOn - pol va pinState emas: pinState = pinState emas GPIO.output (controlPin, pinState) chop etish (str (temp) + "" + str (pinState)) uxlash (1) KeyboardInterruptdan tashqari: chop etish ("Chiqish Ctrl+C" bosilgan) bundan mustasno: chop etish ("Boshqa istisno") chop etish ("--- Istisno ma'lumotlarini ishga tushirish:") traceback.print_exc (limit = 2), file = sys.stdout) print ("--- Istisno ma'lumotlarini tugatish:") nihoyat: chop etish ("CleanUp") GPIO.cleanup () chop etish ("Dasturning oxiri")

5 -qadam: Oxirgi Python kodi

Asosiy piton kodini GitHub hisobimdan quyidagi havolada topish mumkin. O'z API API kalitini yozishni unutmang.

  1. Raspberry PI kartangizga kiring
  2. Terminalda quyidagi buyruqni bajaring

python3 cpu.py

6 -qadam: Thingspeak Cloud orqali ma'lumotlarni monitoring qilish

Thingspeak Cloud orqali ma'lumotlarni kuzatish
Thingspeak Cloud orqali ma'lumotlarni kuzatish

Biroz vaqt o'tgach, ThingSpeak-da kanalingizni oching va siz Thingspeak bulutiga real vaqtda yuklanayotgan haroratni ko'rasiz.

7 -qadam: ishga tushganda Python skriptini ishga tushiring

Buning uchun /etc/rc.local faylining oxirida:

sudo nano /etc/rc.local

Siz skriptni ishga tushirish buyrug'ini 0 -chiqishdan oldin qo'yishingiz kerak:

sudo python /home/pi/cpu.py &

Buyruqning oxirida & belgisining mavjudligi majburiydir, chunki bu jarayonni orqa fonda boshlash uchun. Qayta ishga tushirilgandan so'ng, skript avtomatik ravishda ishga tushadi va ko'rsatilgan shartlar bajarilganda fan yoqiladi.

Tavsiya: