Orange Pi Zero ile IoT Lab Notları – Bölüm 1
Giriş
- Orange Pi nedir? Bir micro bilgisayar. HDMI ve USB arayüzlerine takılı klavye, fare, monitör üçlüsü ile mütavazi ama bir o kadar maharetli bir masaüstü. Aynı zamanda do-it-yourself DIY kendin-yap maker projeleri için bir İsviçre çakısı…
- Herşey apaçık bizi bekliyor:
- Forum.armbian.com
- linux-sunxi.org/Orange_Pi_Zero
- Modelleri karşılaştıralım
- Sistem Kurulumu
- Kavramlar:
Host: Kullandığınız bilgisayar işletim sistemi için kullanılır.
Guest: Kullandığınız bilgisayardaki sanal makinede koşan işletim sistemini ifade eder.
Target: Orange Pi gibi uygulama geliştirdiğiniz hedef cihazı anlatır. - İmaj dosyasını hazırlayalım:
https://dl.armbian.com/orangepizero/ linkinden indirdiğiniz örneğin Debian_jessie_default.7z dosyasını host makinenizde açın ve çıkan.img
uzantılı dosyayı Disk Imager uygulamanıza gösterin. SD kartımızı hazırlayalım FAT formatlı 4GB ve üstü boş bir sdkartı host makinenize takın ve Disk Imager uygulamanıza gösterin. - Armbian Linux imajlarımızı yakalım:
- Windows host ile yapmak için aşağıdaki uygulamaları kullanabilirsiniz
- Win32DiskImager (http://opi.web.tr/down/araclar/Win32DiskImager-0.9.5-install.zip)
- Etcher.io
- Linux host komut satırında :
- $ sudo dd if=/dev/sdX of=Armbian….img bs=4M
- Windows host ile yapmak için aşağıdaki uygulamaları kullanabilirsiniz
- Kavramlar:
Temel Bağlantı Şekilleri
- TTL-USB bağlantımız (putty, minicom …)
- TTL-USB çeviriciyi https://linux-sunxi.org/Orange_Pi_Zero#Locating_the_UART linkindeki şekilde bağlayın ve USB tarafını host PC’ye takın. Host PC’de COMx indisini aygıt yöneticisinden öğrenin. Linux host kullanıyorsanız komut satırından dmesg | grep ttyUSB ile görebilirsiniz.
- Windows host için putty (putty.org) uygulamasını indirin. Uygulamayı açıp Serial butonu seçin ve Speed kısmına 115200 değerini, Serial line boşluğuna ise COMx değerini girin ve Open butonuna tıklayın. Linux host’da da putty kullanılabilir ancak minicom uygulaması tavsiye edilir.
- İlk login ve kullanıcı oluşturma
- Kull: root, Şifre:1234 ile login olun
- İlk olarak 1234 şifresini tekrar girip root şifresini değitirmeniz istenecek
- Ardında sudo kullanıcı tanımlaması başlar ve sistem sizden yeni kullanıcı ile login olmanızı tavsiye eder. Bunun için “exit” komutu ile logout olun ve yeni kull/pass ile açtığınız kullanıcıya login olun.
- Statik IP ile birebir ethernet bağlantısı ve SSH login
- Opi ethernet girişine taktığınız kablonun diğer ucunu Host PC’ye takın.
- Opi komut satırında sudo ifconfig eth0 192.168.1.2 up komutunu girin.
- Host PC ethernet IP.sini statik 192.168.1.3 olarak sabitleyin.
- IP değerleri isteğe bağlıdır ancak Host ile Target aynı blokda olmalıdır.
- SSH bağlantı için Host cihazda yeni bir putty ekranı açın ve SSH seçeneğini seçin Target IP değerini girin ve Open butonuna tıklayın. Linux host’da ise bir terminal açın ve ssh <kullanıcı-adı>@<ip> komutu ile login olun.
- Nmtui & route komutları ile wifi/ethernet bağlantısı
- Target Orange Pi’ye SSH ile bağlı olduğunuz terminal ekranında sudo nmtui komutunu çalıştırın
- Edit a connection -> (tab ile) Add -> Wi-Fi seçin
- Gelen ekranda
- Device: wlan0
- SSID: “Wifi ssid ifadesi”
- Security’yi tıklayıp şifreleme durumunu girin
- Password girin
- Ardından tab tuşları ile OK’e gelerek tıklayın
- Bağlantınızı sudo ping -I wlan0 www.google.com ile kontrol edin
- İleri bir konu olarak sudo route komutunu inceleyin
- Kalıcı static ethernet ayarları için de nmtui uygulamasını deneyebilirsiniz.
- Örneğin sudo more “/etc/NetworkManager/system-connections/Wi-Fi\ connection\ 1”
ile kalıcı ayarlarınızı görebilirsiniz. Unutmayın, Linux’da herşey dosyadır…
GPIO Erişimleri
- https://linux-sunxi.org/Orange_Pi_Zero#Expansion_Port Sayfasındaki pin tablosunu inceleyin.
- Eğitim sırasında
- WiringPi kurulumu
- https://github.com/zhaolei/WiringOP browserda girin ve açıklamayı okuyun ardından komut satırında sırasıyla:
$> git clone https://github.com/zhaolei/WiringOP.git -b h3 $> cd WiringOP $> chmod +x ./build $> sudo ./build
- gpio readall ile 40 pinlik liste goreceksiniz. Zero pin sayısı 26’dır fakat sıralama olarak 40 pin atamaları ile uyumludur.
- RGB LED için
- 3 pini “gpio mode out” ile output olarak ayarlayın. wPi numaralandırmayı gpio readall kolondan öğrenebilirsiniz
- gpio write <wPi pinno> 1 ile high ve gpio write <wPi pinno> 0 low set yapabilirsiniz
- DHT11 için pini gpio mode<wPi pinno> in ile input olarak ayarlayın
-g
parametresi ile wPi numaralandırması yerine işlemci numaralandırması kullanabilirsiniz- Diğer tüm detay için “man gpio” komutu ile dokümanı okuyabilir yada wiringpi.com sayfasını ziyaret edebilirsiniz
- Örnek C projesi için tıklayın http://wiringpi.com/examples/blink/
- https://github.com/zhaolei/WiringOP browserda girin ve açıklamayı okuyun ardından komut satırında sırasıyla:
IoT Lab
- Dweet.io servisi:
- Target terminalde git clone https://github.com/mboyar/opi0-training.git ile kod repomuzu cihaza indirin
- cd opi0-training/dht-dweet ile klasöre girin
- nano dht.sh ile scripti aşağıdaki şablonda güncelleyin ve Ctrl-X Yes ile çıkın:
- BASE_DIR=”/home/[KULLANICI ADINIZ]/opi0-training/dht-dweet”
- Curl satırlarında “https://dweet.io:443/dweet/for/[KULLANICI ADINIZ]-opi0-dht”. Thing name yalnızca size özel olması gerektiği dışında hiç bir bağlayıcılığı yok, dilediğiniz ismi verebilirsiniz.
- sudo ./dht.sh ile uygulamayı çalıştırın
% Total % Received % Xferd Average Speed Time Time Time Current
içeren curl satırlarının geldiğini görmelisiniz
- Eğer DHT11 sensörü GPIO1 yani wPi0 dışında bir pine bağlamak isterseniz, ilgili pini input moda çektikten sonra
- nano dht.c ile C kaynak dosyasını açın
- #define DHT_PIN 0 satırındaki wPi pinnoyu güncelleyin ve Ctrl-X Yes ile kaydedin.
- gcc dht.c -o dht -lwiringPi ile derleyin
- sudo ./dht.sh ile servis uygulamasını yeniden çalıştırın
- Freeboard.io ayarları
- Hesaplarımızı açalım
- My Freeboards kısmında bir etiket adı girin ve Create New butonuna tıklayın
- Oluşan etiket adına tıklayın
- Datasources->Add ile Dweet.io kaynağını seçin ve Thing Name için [KULLANICI ADINIZ]-opi0-dht değerini girin.
- Add Pane ile + butonuna tıklayarak örneğin Gauge widget seçin ve datasource seçiminizi yapın
- İyi eğlenceler
- Armbianmonitor ile Cihaz durumunu izleme
- RPi-monitor kurulumu: sudo armbianmonitor ile listeyi okuyun ve ardından kurulum için sudo armbianmonitor -r ile kuruluma başlayın. Cihaz yaklaşık 5 dk sonra
http://<local IP>:8888
adresinden aynı lokal ağdaki bir bilgisayardan browser kullanarak erişebileceğiniz diagnostik bilgilerin görselleştirildiği bir web sayfa sunuyor olacak. - sudo armbianmonitor -u komutu ile armhwinfo.log dosyasını özel bir web sayfasına http://sprunge.us/MhiN gibi unique bir link ile upload eder. Böylece cihazda karşılaşacağınız durumları başkaları ile rahatlıkla paylaşabilirsiniz.
- RPi-monitor kurulumu: sudo armbianmonitor ile listeyi okuyun ve ardından kurulum için sudo armbianmonitor -r ile kuruluma başlayın. Cihaz yaklaşık 5 dk sonra
Yazı Bölüm 2 ile devam edecek, takipte kalın…
Faydalı bi’ yazı olmuş. Devamı gelmesi dileği ile.
Merhaba Bölüm 2 sitemizde biraz önce yayınlandı.