14 KiB
Sanal tek kartlı bilgisayar
Bir IoT cihazı, sensörler ve aktüatörler satın almak yerine, bilgisayarınızı IoT donanımını simüle etmek için kullanabilirsiniz. CounterFit projesi, sensörler ve aktüatörler gibi IoT donanımını simüle eden bir uygulamayı yerel olarak çalıştırmanıza ve fiziksel donanım kullanarak Raspberry Pi üzerinde yazacağınız kodla aynı şekilde yazılmış yerel Python kodundan sensörlere ve aktüatörlere erişmenize olanak tanır.
Kurulum
CounterFit'i kullanmak için bilgisayarınıza bazı ücretsiz yazılımlar yüklemeniz gerekecek.
Görev
Gerekli yazılımları yükleyin.
-
Python'u yükleyin. En son Python sürümünü yükleme talimatları için Python indirme sayfasına bakın.
-
Visual Studio Code (VS Code) yükleyin. Bu, Python'da sanal cihaz kodunuzu yazmak için kullanacağınız editördür. VS Code'u yükleme talimatları için VS Code belgelerine bakın.
💁 Bu derslerde tercih ettiğiniz bir Python IDE veya editörünü kullanmakta özgürsünüz, ancak dersler VS Code kullanımı temel alınarak talimatlar verecektir.
-
VS Code Pylance uzantısını yükleyin. Bu, Python dil desteği sağlayan bir VS Code uzantısıdır. Bu uzantıyı VS Code'a yükleme talimatları için Pylance uzantı belgelerine bakın.
CounterFit uygulamasını yükleme ve yapılandırma talimatları, ilgili zamanlarda ve proje bazında verilecektir.
Merhaba Dünya
Yeni bir programlama dili veya teknolojiyle başlarken geleneksel olarak bir 'Merhaba Dünya' uygulaması oluşturulur - tüm araçların doğru şekilde yapılandırıldığını göstermek için "Merhaba Dünya"
gibi bir metni çıktı olarak veren küçük bir uygulama.
Sanal IoT donanımı için Merhaba Dünya uygulaması, Python ve Visual Studio Code'un doğru şekilde yüklendiğinden emin olmanızı sağlar. Ayrıca sanal IoT sensörleri ve aktüatörleri için CounterFit'e bağlanır. Herhangi bir donanım kullanmaz, sadece her şeyin çalıştığını kanıtlamak için bağlanır.
Bu uygulama nightlight
adlı bir klasörde bulunacak ve bu ödevin sonraki bölümlerinde gece lambası uygulamasını oluşturmak için farklı kodlarla yeniden kullanılacaktır.
Bir Python sanal ortamı yapılandırın
Python'un güçlü özelliklerinden biri, Pip paketlerini yükleme yeteneğidir - bunlar, diğer kişiler tarafından yazılmış ve İnternet'e yayınlanmış kod paketleridir. Bir Pip paketini bilgisayarınıza tek bir komutla yükleyebilir ve ardından bu paketi kodunuzda kullanabilirsiniz. CounterFit ile iletişim kurmak için bir paket yüklemek için Pip kullanacaksınız.
Varsayılan olarak bir paket yüklediğinizde, bu paket bilgisayarınızda her yerde kullanılabilir hale gelir ve bu, paket sürümleriyle ilgili sorunlara yol açabilir - örneğin, bir uygulamanın bir paketin bir sürümüne bağlı olması ve başka bir uygulama için yeni bir sürüm yüklediğinizde bozulması gibi. Bu sorunu çözmek için, Python sanal ortamı kullanabilirsiniz; bu, özel bir klasörde Python'un bir kopyasıdır ve Pip paketlerini yüklediğinizde yalnızca o klasöre yüklenir.
💁 Eğer bir Raspberry Pi kullanıyorsanız, bu cihazda Pip paketlerini yönetmek için bir sanal ortam kurmadınız, bunun yerine küresel paketler kullanıyorsunuz çünkü Grove paketleri yükleyici betiği tarafından küresel olarak yüklenir.
Görev - bir Python sanal ortamı yapılandırın
Bir Python sanal ortamı yapılandırın ve CounterFit için Pip paketlerini yükleyin.
-
Terminalinizden veya komut satırından, yeni bir dizin oluşturmak ve bu dizine gitmek için aşağıdaki komutları çalıştırın:
mkdir nightlight cd nightlight
-
Şimdi
.venv
klasöründe bir sanal ortam oluşturmak için aşağıdaki komutu çalıştırın:python3 -m venv .venv
💁 Python 2'nin yanı sıra Python 3'ün (en son sürüm) yüklü olma ihtimaline karşı sanal ortamı oluşturmak için açıkça
python3
çağırmanız gerekir. Eğer Python 2 yüklüyse,python
çağrısı Python 2'yi kullanacaktır. -
Sanal ortamı etkinleştirin:
-
Windows'da:
-
Komut İstemi veya Windows Terminal üzerinden Komut İstemi kullanıyorsanız, aşağıdaki komutu çalıştırın:
.venv\Scripts\activate.bat
-
PowerShell kullanıyorsanız, aşağıdaki komutu çalıştırın:
.\.venv\Scripts\Activate.ps1
Eğer bu sistemde betiklerin çalıştırılmasının devre dışı bırakıldığına dair bir hata alırsanız, uygun bir yürütme politikası ayarlayarak betiklerin çalıştırılmasını etkinleştirmeniz gerekecektir. Bunu, PowerShell'i yönetici olarak başlatarak ve ardından aşağıdaki komutu çalıştırarak yapabilirsiniz:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Onay istendiğinde
Y
girin. Ardından PowerShell'i yeniden başlatın ve tekrar deneyin.Gerekirse bu yürütme politikasını daha sonra sıfırlayabilirsiniz. Bununla ilgili daha fazla bilgiyi Microsoft Docs'taki Yürütme Politikaları sayfasında bulabilirsiniz.
-
-
macOS veya Linux'ta, aşağıdaki komutu çalıştırın:
source ./.venv/bin/activate
💁 Bu komutlar, sanal ortamı oluşturduğunuz konumdan çalıştırılmalıdır.
.venv
klasörüne asla gitmeniz gerekmez, her zaman etkinleştirme komutunu ve paketleri yüklemek veya kod çalıştırmak için komutları sanal ortamı oluşturduğunuz klasörden çalıştırmalısınız. -
-
Sanal ortam etkinleştirildikten sonra, varsayılan
python
komutu, sanal ortamı oluşturmak için kullanılan Python sürümünü çalıştıracaktır. Sürümü almak için aşağıdaki komutu çalıştırın:python --version
Çıktı aşağıdakileri içermelidir:
(.venv) ➜ nightlight python --version Python 3.9.1
💁 Python sürümünüz farklı olabilir - sürüm 3.6 veya daha yüksek olduğu sürece sorun yok. Eğer değilse, bu klasörü silin, daha yeni bir Python sürümü yükleyin ve tekrar deneyin.
-
CounterFit için Pip paketlerini yüklemek için aşağıdaki komutları çalıştırın. Bu paketler, Grove donanımı için ana CounterFit uygulamasının yanı sıra shims içerir. Bu shims, fiziksel sensörler ve Grove ekosisteminden aktüatörler kullanıyormuş gibi kod yazmanıza olanak tanır, ancak sanal IoT cihazlarına bağlanır.
pip install CounterFit pip install counterfit-connection pip install counterfit-shims-grove
Bu pip paketleri yalnızca sanal ortamda yüklenecek ve bu ortamın dışında kullanılamayacaktır.
Kodu yazın
Python sanal ortamı hazır olduğunda, 'Merhaba Dünya' uygulaması için kodu yazabilirsiniz.
Görev - kodu yazın
Konsola "Merhaba Dünya"
yazdıran bir Python uygulaması oluşturun.
-
Sanal ortam içinde terminalinizden veya komut satırından aşağıdaki komutu çalıştırarak
app.py
adlı bir Python dosyası oluşturun:-
Windows'dan çalıştırın:
type nul > app.py
-
macOS veya Linux'ta çalıştırın:
touch app.py
-
-
Mevcut klasörü VS Code'da açın:
code .
💁 Eğer terminaliniz macOS'ta
command not found
döndürüyorsa, bu VS Code'un PATH'e eklenmediği anlamına gelir. PATH'e VS Code'u eklemek için VS Code belgelerindeki Komut satırından başlatma bölümündeki talimatları izleyin ve ardından komutu çalıştırın. VS Code, Windows ve Linux'ta varsayılan olarak PATH'e eklenir. -
VS Code başlatıldığında, Python sanal ortamını etkinleştirecektir. Seçilen sanal ortam alt durum çubuğunda görünecektir:
-
VS Code Terminali, VS Code başlatıldığında zaten çalışıyorsa, sanal ortam terminalde etkinleştirilmemiş olacaktır. En kolay şey, Aktif terminal örneğini kapat düğmesini kullanarak terminali kapatmaktır:
Terminalin sanal ortamı etkinleştirdiğini, terminal isteminde sanal ortamın adının bir ön ek olarak görünmesiyle anlayabilirsiniz. Örneğin, şu şekilde olabilir:
(.venv) ➜ nightlight
Eğer istemde
.venv
ön eki yoksa, sanal ortam terminalde etkin değil demektir. -
Terminal -> Yeni Terminal seçeneğini seçerek veya
CTRL+`
tuşlarına basarak yeni bir VS Code Terminali başlatın. Yeni terminal sanal ortamı yükleyecek ve bunu etkinleştirme çağrısı terminalde görünecektir. İstem ayrıca sanal ortamın adını (.venv
) içerecektir:➜ nightlight source .venv/bin/activate (.venv) ➜ nightlight
-
VS Code gezgininden
app.py
dosyasını açın ve aşağıdaki kodu ekleyin:print('Hello World!')
print
fonksiyonu, kendisine iletilen her şeyi konsola yazdırır. -
VS Code terminalinden, Python uygulamanızı çalıştırmak için aşağıdaki komutu çalıştırın:
python app.py
Çıktı aşağıdaki gibi olacaktır:
(.venv) ➜ nightlight python app.py Hello World!
😀 'Merhaba Dünya' programınız başarılı oldu!
'Donanımı' bağlayın
İkinci bir 'Merhaba Dünya' adımı olarak, CounterFit uygulamasını çalıştıracak ve kodunuzu ona bağlayacaksınız. Bu, bir IoT donanımını bir geliştirme kitine bağlamanın sanal eşdeğeridir.
Görev - 'Donanımı' bağlayın
-
VS Code terminalinden, CounterFit uygulamasını aşağıdaki komutla başlatın:
counterfit
Uygulama çalışmaya başlayacak ve web tarayıcınızda açılacaktır:
Bağlantısız olarak işaretlenecek ve sağ üst köşedeki LED kapalı olacaktır.
-
app.py
dosyasının üstüne aşağıdaki kodu ekleyin:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
Bu kod, daha önce yüklediğiniz
counterfit-connection
pip paketinden gelencounterfit_connection
modülündenCounterFitConnection
sınıfını içe aktarır. Ardından,127.0.0.1
üzerinde çalışan CounterFit uygulamasına bir bağlantı başlatır, bu IP adresi her zaman yerel bilgisayarınıza erişmek için kullanılabilir (genellikle localhost olarak adlandırılır), 5000 portunda.💁 Eğer 5000 portunda çalışan başka uygulamalarınız varsa, bunu kodda portu güncelleyerek ve CounterFit'i
CounterFit --port <port_number>
komutuyla çalıştırarak değiştirebilirsiniz.<port_number>
yerine kullanmak istediğiniz portu yazın. -
CounterFit uygulaması mevcut terminalde çalıştığı için yeni bir VS Code terminali başlatmanız gerekecek. Yeni bir entegre terminal oluştur düğmesini seçerek bunu yapabilirsiniz.
-
Bu yeni terminalde, daha önce olduğu gibi
app.py
dosyasını çalıştırın. CounterFit'in durumu Bağlı olarak değişecek ve LED yanacaktır.
💁 Bu kodu code/virtual-device klasöründe bulabilirsiniz.
😀 Donanıma bağlantınız başarılı oldu!
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlıklar içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.