İçindekiler:
- Gereçler
- Adım 1: Devreyi Kurmak
- Adım 2: ThingSpeak ile CPU Sıcaklığını Günlüğe Kaydedin
- Adım 3: Python Kullanarak Ahududu Pi'den CPU Sıcaklığını Alma
- Adım 4: Fanın Sıcaklığa Göre Kontrol Edilmesi
- Adım 5: Son Python Kodu
- 6. Adım: Verileri Thingspeak Bulut Üzerinden İzleme
- 7. Adım: Başlangıçta Python Komut Dosyasını Çalıştırın
Video: Python ve Thingspeak Kullanarak Raspberry Pi Fanının Akıllı Kontrolü: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Kısa bir bakış
Varsayılan olarak, fan doğrudan GPIO'ya bağlıdır - bu, sürekli çalışması anlamına gelir. Fanın nispeten sessiz çalışmasına rağmen, sürekli çalışması aktif bir soğutma sisteminin etkili bir kullanımı değildir. Aynı zamanda, bir fanın sürekli çalışması sadece can sıkıcı olabilir. Ayrıca Raspberry Pi kapatılırsa, güç bağlıysa fan çalışmaya devam eder.
Bu makale, basit ve karmaşık olmayan manipülasyonları kullanarak, mevcut bir soğutma sistemini yalnızca işlemci gerçekten ihtiyaç duyduğunda açılacak olan akıllı bir sisteme nasıl dönüştürdüğünü gösterecektir. Fan, yalnızca yoğun kullanım olduğunda açılır, böylece fan güç tüketimini ve gürültüsünü azaltır. Ayrıca ihtiyaç olmadığında kapatarak fan ömrünü uzatır.
Ne öğreneceksin
Sıcaklık histerezisi ile On-Off kontrolünü kullanarak Raspberry CPU'nun mevcut sıcaklığına dayalı olarak bir fanı kontrol etmek için bir Python betiği nasıl uygulanır. RaspberryPi'nizden Things Speak Cloud'a veri nasıl aktarılır.
Gereçler
Bu proje için gerekli olacak bileşenler aşağıdaki gibidir
- Raspberry Pi 4 Bilgisayar Modeli B 4GB
- NPN transistör S8050330ohms direnç
- Ahududu Pi için Çift Fanlı Zırhlı Alüminyum Metal Kasa
- Atlama kabloları
- ekmek tahtası
Adım 1: Devreyi Kurmak
Devre oldukça basit. Fanın gücü NPN transistörü kullanılarak kesilir. Bu konfigürasyonda, transistör düşük taraf anahtarı görevi görür. Direnç yalnızca akımı GPIO üzerinden sınırlamak için gereklidir. Raspberry Pi'nin GPIO'su maksimum 16mA akım çıkışına sahiptir. Bize yaklaşık (5-0.7)/330 = 13mA temel akım veren 330 ohm kullandım. Bir NPN transistör S8050 seçtim, bu nedenle her iki fandan da 400mA'lık bir yükü değiştirmek sorun değil.
Adım 2: ThingSpeak ile CPU Sıcaklığını Günlüğe Kaydedin
ThingSpeak, Nesnelerin İnterneti konseptine dayalı projeler için bir platformdur. Bu platform, sensörlerden toplanan verilere dayalı uygulamalar oluşturmanıza olanak tanır. ThingSpeak'in ana özellikleri şunları içerir: gerçek zamanlı veri toplama, veri işleme ve görselleştirme. ThingSpeak API, yalnızca veri göndermenize, depolamanıza ve erişmenize izin vermekle kalmaz, aynı zamanda bunları işlemek için çeşitli istatistiksel yöntemler sağlar.
ThingSpeak, aşağıdakiler gibi popüler cihazları ve hizmetleri entegre edebilir:
- Arduino
- ahududu pii
- oBridge / RealTime.io
- Elektrik imp
- Mobil ve Web uygulamaları
- Sosyal ağlar
- MATLAB'de Veri Analizi
Başlamadan önce, ThingSpeak'te bir hesaba ihtiyacınız var.
- Aşağıdaki bağlantıya gidin ve ThingSpeak'e kaydolun.
- Hesabınızı etkinleştirdikten sonra oturum açın.
- Kanallar -> Kanallarım'a gidin
- Yeni Kanal düğmesine tıklayın.
- Yüklemek istediğiniz verilerin adını, açıklamasını ve alanlarını girin
- Tüm ayarlarınızı kaydetmek için Kanalı Kaydet düğmesine tıklayın.
CPU sıcaklığımızı Thingspeak bulutuna yüklemek için daha sonra python koduna ekleyeceğimiz bir API anahtarına ihtiyacımız var.
API Anahtarını Yazmak için API Anahtarları sekmesine tıklayın
API Anahtarını Yazdıktan sonra, verilerimizi yüklemeye neredeyse hazırız.
Adım 3: Python Kullanarak Ahududu Pi'den CPU Sıcaklığını Alma
Komut dosyası, her saniye gerçekleşen işlemci sıcaklığının alınmasına dayanır. Measure_temp parametresi ile vcgencmd komutu çalıştırılarak terminalden alınabilir.
vcgencmd ölçü_temp
Komutu yürütmek için Subprocess.check_output() kitaplığı kullanıldı ve ardından döndürülen dizeden gerçek değeri çıkarmak için normal ifade kullanıldı.
alt süreçten import check_output
yeniden içe aktar findalldef get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+', temp)[0]) return(temp) yazdır(get_temp())
Sıcaklık değeri alındıktan sonra verilerin ThingSpeak bulutuna gönderilmesi gerekir. Aşağıdaki Python kodunda myApi değişkenini değiştirmek için Write API Key'inizi kullanın.
urllib içe aktarma isteğinden
yeniden içe aktar findall from zamandan içe aktar alt süreçten uyku içe aktar check_output myAPI = '###############' baseURL = 'https://api.thingspeak.com/update?api_key=% s' % myAPIdef get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+', temp)[0]) return(temp) deneyin: while True: temp = get_temp() conn = request.urlopen(baseURL + '&field1=%s' % (temp)) print(str(temp)) conn.close() sleep(1) KeyboardInterrupt hariç: print ("Ctrl+C'ye basıldığında çıkış")
Adım 4: Fanın Sıcaklığa Göre Kontrol Edilmesi
Aşağıda gösterilen Python betiği, sıcaklık tempOn'un üzerine çıktığında fanı açan ve yalnızca sıcaklık eşiğin altına düştüğünde kapanan mantığı uygular. Bu şekilde fan hızlı bir şekilde açılıp kapanmaz.
RPi. GPIO'yu GPIO olarak içe aktar
sys'i yeniden içe aktar findall'ı zamandan içe aktar alt süreçten uykuyu içe aktar check_output def get_temp(): temp = check_output(["vcgencmd", "measure_temp"]).decode() temp = float(findall('\d+\.\d+) ', temp)[0]) return(temp) deneyin: GPIO.setwarnings(False) tempOn = 50 eşik = 10 controlPin = 14 pinState = False GPIO.setmode(GPIO. BCM) GPIO.setup(controlPin, GPIO. OUT, initial=0) while True: temp > tempOn ve pinState veya temp < tempOn - eşik ve pinState değilse temp = get_temp(): pinState = pinState değil GPIO.output(controlPin, pinState) print(str(temp) + " " + str(pinState)) uyku(1) KeyboardInterrupt hariç: print("Çıkış Ctrl+C'ye basıldı") hariç: print("Diğer İstisna") print("--- İstisna Verilerini Başlat:") traceback.print_exc(limit=2, file=sys.stdout) print("--- İstisna Verilerini Sonlandır:") nihayet: print("CleanUp") GPIO.cleanup() print("Programın sonu")
Adım 5: Son Python Kodu
Ana python kodu GitHub hesabımda aşağıdaki bağlantıda bulunabilir. Kendi Yazma API Anahtarınızı koymayı unutmayın.
- Raspberry PI panonuza giriş yapın
- Terminalde aşağıdaki komutu çalıştırın
python3 işlemci.py
6. Adım: Verileri Thingspeak Bulut Üzerinden İzleme
Bir süre sonra ThingSpeak'te kanalınızı açın ve gerçek zamanlı olarak Thingspeak bulutuna yüklenen sıcaklığı görmelisiniz.
7. Adım: Başlangıçta Python Komut Dosyasını Çalıştırın
Bunu yapmak için /etc/rc.local dosyasının sonunda:
sudo nano /etc/rc.local
Komut dosyası başlatma komutunu, çıkış 0 satırının önüne yerleştirmeniz gerekir:
sudo python /home/pi/cpu.py &
Arka planda işlemi başlatmak için bir bayrak olduğundan komutun sonunda & sembolünün bulunması zorunludur. Yeniden başlatmanın ardından script otomatik olarak çalışacak ve belirtilen koşullar sağlandığında fan açılacaktır.
Önerilen:
Raspberry Pi ve LIS3DHTR ile Hareket Kontrolü, 3 Eksenli İvmeölçer, Python Kullanarak: 6 Adım
Raspberry Pi ve LIS3DHTR ile Hareket Kontrolü, 3 Eksenli İvmeölçer, Python Kullanarak: Güzellik etrafımızı sarar, ancak genellikle bunu bilmek için bir bahçede yürüyor olmamız gerekir. - Rumi Göründüğümüz gibi eğitimli bir grup olarak, enerjimizin büyük çoğunluğunu bilgisayarlarımızdan ve cep telefonlarımızdan önce çalışarak harcıyoruz. Bu nedenle, sık sık sağlığımıza izin veririz
Raspberry Pi ve AIS328DQTR Kullanarak Hızlandırmayı Python Kullanarak İzleme: 6 Adım
Raspberry Pi ve AIS328DQTR Kullanarak İvmeyi Python Kullanarak İzleme: İvme sonludur, bence bazı Fizik yasalarına göre. Karaya çıkan en hızlı yaratık, arada bir avını yakalamak için en yüksek hızını kullanır. NS
ESP8266 RGB LED ŞERİT WIFI Kontrolü - NODEMCU Wifi Üzerinden Kontrollü Led Şerit için IR Uzaktan Kumanda Olarak - RGB LED STRIP Akıllı Telefon Kontrolü: 4 Adım
ESP8266 RGB LED ŞERİT WIFI Kontrolü | NODEMCU Wifi Üzerinden Kontrollü Led Şerit için IR Uzaktan Kumanda Olarak | RGB LED STRIP Akıllı Telefon Kontrolü: Merhaba arkadaşlar, bu eğitimde nodemcu veya esp8266'yı bir RGB LED şeridini kontrol etmek için IR uzaktan kumanda olarak nasıl kullanacağımızı öğreneceğiz ve Nodemcu wifi üzerinden akıllı telefon ile kontrol edilecek. Yani temel olarak RGB LED STRIP'i akıllı telefonunuzla kontrol edebilirsiniz
HT12D Kullanarak RF 433MHZ Radyo Kontrolü HT12E - 433mhz ile HT12E & HT12D Kullanarak Rf Uzaktan Kumanda Yapma: 5 Adım
HT12D Kullanarak RF 433MHZ Radyo Kontrolü HT12E | 433mhz ile HT12E ve HT12D Kullanarak Rf Uzaktan Kumanda Yapma: Bu talimatta size HT12E kodlamalı & HT12D kod çözücü IC.Bu talimatta çok ucuz BİLEŞENLER GİBİ kullanarak veri gönderip alabilirsiniz: HT
Akıllı Telefon Oyun Simülatörü - Hareket Kontrolü IMU, İvmeölçer, Jiroskop, Manyetometre Kullanarak Windows Oyunları Oynayın: 5 Adım
Akıllı Telefon Oyun Simülatörü- Hareket Kontrolü Kullanarak Windows Oyunlarını Oynayın IMU, İvmeölçer, Jiroskop, Manyetometre: Bu projeyi destekleyin: https://www.paypal.me/vslcreations açık kaynak kodlarına bağışta bulunarak & daha fazla gelişme için destek