Mundarija:
- Ta'minotlar
- 1 -qadam: O'chirish tizimini yaratish
- 2 -qadam: ThingSpeak yordamida CPU haroratini kiriting
- 3 -qadam: Python yordamida Raspberry Pi -dan CPU haroratini olish
- 4 -qadam: Fanni haroratga qarab boshqarish
- 5 -qadam: Oxirgi Python kodi
- 6 -qadam: Thingspeak Cloud orqali ma'lumotlarni monitoring qilish
- 7 -qadam: ishga tushganda Python skriptini ishga tushiring
Video: Python va Thingspeak yordamida Raspberry Pi fanatini aqlli boshqarish: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
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 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 - 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.
- Quyidagi havolaga o'ting va ThingSpeak -ga ro'yxatdan o'ting.
- Hisobni faollashtirgandan so'ng, tizimga kiring.
- Kanallar -> Mening kanallarimga o'ting
- Yangi kanal tugmasini bosing.
- Yuklamoqchi bo'lgan ma'lumotlar nomi, tavsifi va maydonlarini kiriting
- 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.
- Raspberry PI kartangizga kiring
- Terminalda quyidagi buyruqni bajaring
python3 cpu.py
6 -qadam: Thingspeak Cloud orqali ma'lumotlarni monitoring qilish
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:
Arduino va Ps2 masofadan boshqarish pulti yordamida 4dof yuqori quvvatli katta o'lchamli robot qo'lini qanday boshqarish mumkin?: 4 qadam
Arduino va Ps2 masofadan boshqarish pulti bilan 4dof yuqori quvvatli katta o'lchamli robot qo'lini qanday boshqarish mumkin?: Bu to'plamda yuqori quvvatli mg996 dvigateli ishlatiladi, u yuqori oqimga muhtoj, bizda ko'p quvvat manbai sinovi bor. Faqat 5v 6a adapter ishlaydi. Va arduino taxtasi 6dof robot qo'li ustida ham ishlaydi.end: yozing SINONING do'konini DIY o'yinchoq uchun sotib oling
SONOFF aqlli kalitlari yordamida aqlli rolikli pardalarni qanday yasash mumkin ?: 14 qadam
SONOFF aqlli kalitlari yordamida aqlli rolikli pardalarni qanday yasash mumkin?: SONOFF aqlli kalitlarida interlok rejimidan foydalaning, oddiy rolikli pardalarni aqlli ko'rinishga aylantirish uchun ko'pchiligingiz rozi bo'lasizmi, siz ertalab rolikli pardalarni tortib olasiz. va kechqurun uni pastga tushirmoqchimisiz? Qanday bo'lmasin, men
Python yordamida Raspberry Pi va LIS3DHTR, 3 o'qli akselerometr yordamida harakatni boshqarish: 6 qadam
Python yordamida Raspberry Pi va LIS3DHTR, 3 o'qli akselerometr yordamida harakatni boshqarish: Go'zallik bizni o'rab oladi, lekin odatda biz buni bilish uchun bog'da yurishimiz kerak. - Biz o'qimishli guruh sifatida biz energiyamizning katta qismini kompyuter va mobil telefonlarimizdan oldin sarflaymiz. Shuning uchun, biz tez -tez o'z sog'ligimizga ruxsat beramiz
Yorqinlikni boshqarish PWM asosidagi LEDni boshqarish tugmachalari, Raspberry Pi va skretch yordamida: 8 qadam (rasmlar bilan)
Yorqinlikni boshqarish PWM asosidagi LEDni boshqarish tugmachalari, Raspberry Pi va Scratch yordamida: Men PWMning o'quvchilarimga qanday ishlashini tushuntirishga harakat qilardim, shuning uchun men o'z oldimga ikkita tugma yordamida LEDning yorqinligini boshqarishga harakat qildim. - bitta tugmachaning yorqinligini oshiradi, ikkinchisi esa uni o'chiradi. Dastur uchun
Smartfon yordamida ESP8266 asosidagi Sonoff asosiy aqlli kalitini qanday boshqarish mumkin: 4 qadam (rasmlar bilan)
Smartfon yordamida ESP8266 asosidagi Sonoff asosiy aqlli kalitini qanday boshqarish mumkin: Sonoff - bu ITEAD tomonidan ishlab chiqilgan Smart Home uchun qurilma liniyasi. Ushbu liniyaning eng moslashuvchan va arzon qurilmalaridan biri Sonoff Basic. Bu ESP8266 ajoyib chipiga asoslangan Wi-Fi yoqilgan kalit. Ushbu maqolada Clni qanday sozlash kerakligi tasvirlangan