İçindekiler:
- Gereçler
- Adım 1: Dosyaları İndirin, Değiştirin ve 3B Dosyaları Yazdırın
- Adım 2: Bileşenleri Lehimleme/Birleştirme - Bölüm a (Tuş Takımı ve Yan Numara)
- Adım 3: Bileşenleri Lehimleme/Birleştirme - Bölüm B (Tüy Kanatları ve Sensörler)
- Adım 4: Bileşenleri Lehimleme/Birleştirme - Bölüm C (Kapasitif Sensör için Tuş Takımı ve Durumda Tüy Alma)
- Adım 5: İSTEĞE BAĞLI - Bileşenleri Lehimleme/Birleştirme - Bölüm D (INA219 Tüy)
- Adım 6: Arka Kapağı Vidalayın ve USB'yi Takın
- 7. Adım: AWS Ortamını Hazırlayın
- 8. Adım: Yazılım Anahtarlarını İndirin ve 3. Taraf Hizmetlerini Kurun
- 9. Adım: AWS Kodunu Değiştirin ve Yükleyin
- Adım 10: Arduino IDE'yi Hazırlayın ve Kitaplıkları İndirin
- Adım 11: Arduino Kodunu Güncelleyin ve Kurun ve Engage
Video: Öyleyse yap! Star Trek TNG Mini Mühendislik Bilgisayarı: 11 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
genel bakış
Star Trek: The Next Generation'ı izleyerek büyüdüm. Her zaman Star Trek temalı bir cihaz yapmak istemişimdir, bu yüzden sonunda eski projelerimden birini Star Trek Ekran Terminali yapmak için yeniden düzenlemeye karar verdim.
Terminal aşağıdaki bilgileri sağlar:
- Hava Durumu - Ulusal Hava Durumu Hizmetini kullanma
- İç Mekan Sıcaklığı, Nem ve Uçucu Organik Bileşik (VOC) gücü
- Haber Makaleleri - News.org'dan
- Program (alarm işlevli) - Microsoft Outlook'tan
- Fitness Bilgileri (Adımlar, Hareket Dakikaları, Kardiyo Puanları, Ağırlık, Yakılan Kaloriler) - Google Fitness'tan
- a Direnç renk kodu tablosu
- bir LED Direnç Hesaplayıcı (akım ve kaynak gücüne dayalı direnç değerini belirlemek için)
- Güç ve Akım Ölçüm aracı
Bu bilgiler, API'ler ve donanım sensörlerinin bir kombinasyonu aracılığıyla sağlanır. Mikrodenetleyici için bir ESP32'den ve tüm veri toplama ve toplama işlemleri için AWS Cloud'dan yararlanıyorum.
Ayrıca birkaç "paskalya yumurtası" ekledim:
-
Ron McNair saygısı - Mühendis olmamın nedeni Dr McNair; memleketimden 45 dakika uzakta büyüdü. Challenger patlamasında öldü.
- Yıldız gemimin adı "USS Ronald E McNair"
- Kayıt Numarası, Sr McNair'in doğum tarihine aittir; Önek Kodu hayatını kaybettiği gündür.
- "Önek kodunun" kullanılması, Star Trek: Khan'ın Gazabı'na (tüm zamanların en iyi Star Trek filmi; don't @ me) bir selamdır.
- Son davanın sağındaki sayılar kardeşliğime (1906 - Alpha Phi Alpha) ve mezun olduğum okul ve çalışma alanıma atıfta bulunuyor - (Oklahoma Üniversitesi, Mühendislik Fakültesi)
Kendi "paskalya yumurtalarınız" için numaralandırmayı, harfleri ve gemi adını, kayıt defterini vb. özelleştirme seçeneğiniz vardır.
Arka plan
Geçen yıl, giyilebilir bir proje için güç ve pil tüketimini ölçmek için düşük maliyetli bir yola ihtiyacım vardı. Bir Adafruit INA219 Featherwing satın aldım ve basit bir Güç Ölçüm cihazı oluşturmak için çeşitli yedek parçalar kullandım (bunun hakkında daha fazla bilgiyi buradan okuyabilirsiniz).
Bu yıl, cihazı daha "teknolojik" hale getirmek için yükseltmeye karar verdim. Başlangıçta çalışan bir Star Trek tricorder yapmayı planlamıştım (önemseyenler için Mark IV TR-590 Mark IX versiyonu)… ama hemen fark ettim ki masamda duracak bir şey yaratmanın daha mantıklı olduğunu anladım (yani, neden havalı bir cihaz yapmak için tüm bu zahmete girin, sadece kapatın ve kullanılmadığında çekmeceye koyun).
Bu yüzden, Star Trek TNG veya Voyager'da (veya çeşitli filmlerde) gördüğünüz bilgisayar ekranlarının bir versiyonunu yapmaya başladım. Farklı tasarımlarla oyalandım, sonra Ruiz Brothers of Adafruit tarafından yaratılan bir versiyona rastladım. Adafruit, 3D basılı projeleri için sağlanan kaynak dosyaları konusunda harika bir iş çıkarıyor, bu yüzden orijinal sürümlerini alıp donanımım, düğmelerim ve diğer çevre birimlerim için yeniden karıştırabildim.
Devam etmeden önce bilmeniz gerekenler
- Proje versiyonumu yapmak için adım adım talimatlar veriyorum; ancak, belirli adımların ayrıntılarına girmiyorum (destekleyici talimatlara veya belgelere bağlantı vereceğim)
-
Bu karmaşık bir projedir. Aşağıdaki becerileri gerektiren bir "çok disiplinli yapı"
- Arduino IDE'si
- AWS - Bir hesaba ihtiyacınız olacak ve S3, Lambda ve Node JS'yi anlamanız gerekecek
- Lehimleme
- 3D Baskı
- Takvim ve Fitness bilgilerini almak için projeyi geliştirmek için isteğe bağlı "eklentiler" vardır. İşlev, kod tabanına dahildir; ancak özellikleri desteklemek için Azure ve Google bulutlarında "uygulamalar" oluşturmanız gerekecektir.
- Bu sonuçta özelleştirilebilir… Akım Sensörünü başka bir tüy kanat ile değiştirebilirsiniz Farklı bir tüy/wifi kombinasyonu kullanabilirsiniz.
Gereçler
Elektronik parçalar
- Adafruit ESP32 Huzzah Tüy
- Adafruit Featherwing Tripler Mini Kit
- Adafruit 12 Tuşlu Kapasitif Dokunmatik Sensör Koparma
- Adafruit TFT FeatherWing - 3.5" 480x320 Dokunmatik Ekran
- Adafruit BME680 - Sıcaklık, Nem, Basınç ve Gaz Sensörü
- DC Panel Montajlı 2.1 Namlu Jakı (2)
- Lityum İyon Polimer Pil - 3.7 V 500mAh
- Piezo Zil
- Mirco USB kablosu ve 5V şarj cihazı (tipik bir USB telefon şarj cihazı çalışır)
- Yapışkanlı Bakır Folyo Bant
- Opsiyonel - Adafruit INA219 Tüy Kanat
- Opsiyonel - 2.1 Erkek fişler - (INA219 Akım Sensörü ile kullanım için)
2.1 fişler hariç tüm elektronik bileşenlere bağlantı:
3D Filament Bileşenleri ve Opsiyonel Boya/Zımpara Bileşenleri
- Proto Makarna İletken PLA
- Ek 3D filamentler - 4 renk kullandım - Gri, Siyah, Aqua (açık mavi) ve Beyaz
- 0,25 ve 0,4 mm nozullar (yazı detayları için 0,25 kullandım).
Donanım Montaj Bileşenleri ve Araçları
- M2x5 ve M3x5 Vidalar
- Düz ve Sağ Açılı Başlık Pimleri (Bağlantılar için Adafruit istek listesine bakın)
- Havya (ve lehim makarası, uç kalaylayıcı, lehim emici vb.)
- Philips Başlı Tornavida Takımı
- Shrink Wrap
- Telli Tel 22AWG - beş veya altı renk
- Solid Wire 22AWG - beş veya altı renk
- PCB Mengene ve Yardımcı Eller (isteğe bağlı, ancak lehimlemeyi kolaylaştırır)
- Çapraz Tel Kesiciler
- Tel Sıyırıcılar
- Xacto Knife (3D yazıcı parçalarından destekleri çıkarmak için)
- 3D Yazıcı (kendiniz yazdırmayı planlıyorsanız)
- Macun veya bant (basılı kutunun içine pili yapıştırmak için)
- Dijital kumpaslar
- çılgın yapıştırıcı
- Opsiyonel - Nitril Tek Kullanımlık Eldivenler
- Opsiyonel - Lehim Matı (isteğe bağlı, ancak yüzeyleri korur)
Not: Bu araçlara sahip değilseniz, iyi seçenekler için öneriler için Becky Stern'in sitesine göz atmanızı öneririm.
Yazılım
Adım 1: Dosyaları İndirin, Değiştirin ve 3B Dosyaları Yazdırın
Dosyaları bir 3B yazdırma hizmetine (3B Hub'lar gibi) gönderebilir veya kendinizinkini yazdırabilirsiniz. Dosyalar PrusaPrinters.org'da mevcuttur.
Bu vaka, Adafruit web sitesinde yer alan Py Portal Alarm Clock'un bir remiksidir. Projem benzer bir TFT kullanıyor, bu yüzden kasanın aksesuarlarımla çalışması için gereken tasarım işi miktarını en aza indirebildim.
Yazdırma için aşağıdaki ayarları kullandım:
- 0,4 mm nozül ile 0,2 mm Katman Yüksekliğinde Ön ve Arka baskı, destek yok
- Taraf Numarası - 0,25 mm püskürtme ucuyla 0,10 mm Katman Yüksekliğinde yazdırılır, destek yok
- Tuşlar - 0,4 mm nozül ile 0,2 mm Katman Yüksekliğinde yazdırılır. 7 yazdırmanız gerekecek ve Proto-Makarna İletken Filament ile yazdırmanız gerekecek.
-
Kasa - 0,2 mm Katman Yüksekliğinde basılmıştır.
Desteklere ihtiyaç vardır, ancak her yerde gerekli değildir (yalnızca tuş takımının oturduğu yanlarda ve ortada
Bilmeniz gereken birkaç şey:
- Prusa MK3, renkleri farklı katman yüksekliklerinde değiştirmenize olanak tanır. Bu özelliği yan numara parçası için kullandım.
-
Ayrıca, yan sayı parçası ile ilgili olarak:
- Star Trek TNG üretim ekibi, aksesuarlara paskalya yumurtaları serpecekti. Çeşitli plaketlere ve panellere yakından bakarsanız, insan adlarını, şarkı sözlerini vb. göreceksiniz. Yan numara için kendi "paskalya yumurtamı" oluşturmak istedim, bu yüzden kardeşliğimi ifade eden "06" kullanıyorum (1906'da kuruldu) ve "OUCOE" - mezun olduğum materyali ifade ediyor (Oklahoma Üniversitesi, Mühendislik Fakültesi).
- Kendi özel numaranızı ve metninizi oluşturmak için değiştirebileceğiniz bir "boş" yan_sayı parçası oluşturdum.
Adım 2: Bileşenleri Lehimleme/Birleştirme - Bölüm a (Tuş Takımı ve Yan Numara)
İlk olarak, yan numarayı yapıştıracağız. Yan numarayı yerine koymak için küçük bir yapıştırıcı kullanın.
Ardından, tuş takımını monte edeceğiz
-
Her biri 10-12 inç uzunluğunda 7 parça telli tel kesmeniz gerekecek. Bunlar kapasitif dokunmatik sensörün 0-6 Pinlerine bağlanacaktır. Farklı renkler kullanmanızı öneririm (ve bu bilgilere daha sonra ihtiyaç duyacağınız için renkleri/pin eşlemesini aşağıya yazın). Aşağıdaki renk kombinasyonunu kullandım:
- Sarı - Pin 0/Düğme 1
- Gri - Pin 1/Düğme 2
- Kırmızı - Pin 2 /Düğme 3
- Mavi - Pin 3 //Düğme 4
- Yeşil - Pin 4 //Buton 5
- Beyaz - Pim 5 // Düğme 6
- Siyah - Pin 6 //Buton 7
- Her telin ucundan 1/2 inç soyun.
- 7 adet iletken bant (her biri yaklaşık 1/2 inç genişliğinde) kesin ve telleri bandın bakır tarafına lehimleyin.
- Yapışkan desteği çıkarın ve tuşların altına yapıştırın. Bakır bandın bir kısmını kesmeniz gerekebilir.
Not: Anahtarlar ya alttan yapıştırılabilir (üst ile aynı hizada olacak şekilde) ya da üstten yapıştırılabilir (böylece üstten birkaç mm "yüzerler"). Benimkini yukarıdan yapıştırmayı seçtim.
7'yi de tamamladıktan sonra, küçük bir tutkal parçası kullanarak tuşları tuş takımına yapıştırın. Daha kolay buluyorum:
- Önce kabloyu anahtar deliğinden "yılan".
- Ardından anahtarın kenarına/kenarına küçük bir miktar yapıştırıcı sürün.
- Anahtarı hızlıca yerine yerleştirin.
Not: Krazy Glue burada en iyi sonucu verir; Kazaları ve cilt tahrişi olasılığını sınırlamak için eldiven kullanmak isteyebilirsiniz.
Adım 3: Bileşenleri Lehimleme/Birleştirme - Bölüm B (Tüy Kanatları ve Sensörler)
Bir sonraki adım, donanım bileşenlerini hazırlamak ve bir araya getirmektir. Sonuç olarak, bu, daha sonra kullanılmak üzere lehimleme başlık pimleri ve telleri anlamına gelir. Bu kılavuz, lehimleme konusunda rahat olduğunuzu varsayar; değilse, Adafruit'in bu "Mükemmel Lehimleme Kılavuzu"na bakın.
İlk önce malzemeleri hazırlayacağız. Bu adım için ihtiyacınız olacak:
- TFT 3.5 Tüy Kanat
- ESP32 Tüy
- INA219 Tüy Kanat
- Üçlü Tüy Kanat
- MPR121 Kapasitif Dokunmatik Sensör
- BME680 Sensörü
- Düz ve Sağ Açı Başlık pimleri
- Katı ve Örgülü Tel
- Lehimleme Aletleri ve Yardımcı Eller
- Çapraz Tel kesiciler ve tel sıyırıcılar
- Kaliperler
Not: Lehimlemeye başlamadan önce bu adımı okumanızı ve tüm kablolarınızı ve başlıklarınızı kesmenizi öneririm. Bu şekilde, ölçmek/kesmek için durmanız gerekmeyecek.
TFT 3.5 Featherwing'i hazırlayın
TFT, tek bir ayar ile kutudan çıktığı gibi kullanıma hazırdır. "Lite" pedi ile pin lehim pedi arasına bir tel lehimlemeniz gerekecek. Kodumuz, TFT lite'ı kontrol etmek için ESP32 Pin 21'i kullanır. TFT'yi "uzun" şekilde, alttaki sıfırlama düğmesiyle düzenleyin. Pin 21, sol alt pin olacaktır.
40 mm'lik bir telli tel parçası kesin. Uçları, her iki uçta birkaç milimetre tel görünecek şekilde soyun. Havyanızı kullanarak, her iki pime de dikkatlice lehimleyin.
Not: Yalnızca yaklaşık 35 mm uzunluğa ihtiyacınız vardır… böylece kablonuzu gerektiği gibi kesebilirsiniz. Ayrıca, önce pede, sonra tele lehim eklemenin, ardından teli pede lehimlemenin en kolay yaklaşım olduğunu buldum. Son olarak - bu pedler küçüktür… Rahatsızsanız, her zaman bu adımı atlayabilirsiniz: bu sadece tuş takımıyla TFT'yi kapatmak içindir.
ESP32 Feather'ı hazırlayın
ESP32'ye standart erkek başlık pinlerini lehimlemeniz gerekecek. ESP32'niz başlıklarla birlikte gelmelidir, ancak doğru uzunluğa ulaşmak için onları kırpmanız gerekebilir (uzun kenarda 16 iğne; kısa kenarda 12 iğne). Başlık pimleri "çıkarmak" için yapılmıştır, böylece başlıkları doğru uzunlukta kesmek için diyagonal kesicileri kullanabilirsiniz. Yine Adafruit'in bunun nasıl yapılacağına dair harika talimatları var, bu yüzden rehberliğe ihtiyacınız olup olmadığını kontrol edin.
İSTEĞE BAĞLI - INA219 Featherwing'i hazırlayın
İlk olarak, erkek başlıkları tüy kanadına lehimleyin (ESP32 için kullanılanla aynı talimatları kullanarak). Daha sonra dört adet 20 mm uzunluğunda çok telli tel kesin. 2 SİYAH ve diğerlerini farklı bir renk yapardım. Renk seçimlerimde GRİ ve MAVİ kullandım.
Telin uçlarını, her iki ucunda 3-4 mm bakır tel görünecek şekilde soyun. Her bir teli aşağıdaki gibi lehimleyeceksiniz:
- GRİ -> V+ (artı)
- MAVİ -> V- (eksi)
- SİYAH -> GND (toprak)
- SİYAH -> GND (toprak)
Bu sırada tellerin diğer uçlarını bırakın; sonunda onları DC 2.1 fişlerine lehimleyeceğiz.
Piezo Buzzer'ı takın
INA Featherwing, küçük bir prototipleme alanıyla birlikte gelir; bunu piezomuzu eklemek için kullanacağız. Piezo, projemize bip sesi çıkarma ve sesli uyarılar, alarmlar vb. yeteneği verecektir.
Piezo, ESP32 PIN 13'e bağlanır; bu, geçiş yumuşatma üzerindeki USB piminin yanındaki pimle ilişkilidir (oklar için resme bakın). Diğer piezo pimi toprağa bağlanır. Pieze pimleri, onları doğrudan kuş tüyüne lehimlemek için yeterince uzundur… pimleri "yay bacaklı adam" şeklinde bükmeniz yeterlidir (resme bakın). Pimleri yerleştirdikten sonra, piezoyu yerinde tutmak için bir yardım eli (veya bant) kullanın ve tüy kanadın alt tarafından lehimleyin.
Not - INA219'u kullanmazsanız, piezoyu doğrudan tüylü tahtaya lehimlemeniz gerekir.
Tripler Featherwing'i hazırlayın
Tüy kanat bizi lehimlemeden kurtarıyor; 3 tüy/tüy kanadı tutabilir… bu yüzden onu TFT, ESP32, INA219 (aynı zamanda piezo ve TFT Lite pini) arasında elektrik bağlantıları yapmak için kullanacağız.
Bağlantıları düzgün bir şekilde yapmak için iki çift istifleme başlığını ve bir çift standart erkek başlığı lehimlememiz gerekecek.
- Normal erkek başlıklar "üst" noktada devam edecek, ancak Tripler'ın alt tarafına lehimlenecek.
- İki istifleme başlığı, Tripler'ın üst tarafındaki 2. ve 3. noktalarda lehimlenecektir.
Bu biraz kafa karıştırıcı, bu yüzden her bir başlığın nereye yerleştirildiğini anlamak için resimlere baktığınızdan emin olun. Ayrıca, bir PCB Mengenesi ve Helping Hands kombinasyonu, bileşenlerin lehimlenmesine büyük ölçüde yardımcı olabilir.
BME 680 Sensörü ve MPR121 Kapasitif Dokunmatik Sensörü hazırlayın
Son iki sensör, takılması en zor olanıdır. Montajı tamamlamadan önce, koparma panolarına başlık pimleri takmamız gerekiyor.
BME Sensörü, sensörü kasadaki bir deliğe hizalayabilmem için 90 açıyla takılır (böylece sensör sıcaklık, gaz, nem yakalayabilir). Deliklere dik açılı pimleri lehimlemeniz gerekecek. Doğru hizaladığınızdan emin olmak için resimlere bakın.
Kapasitif Dokunmatik sensör basittir - burada belirtildiği gibi sadece düz erkek konektör pimlerini lehimleyin. Not: Pimleri Kapasitif Dokunmatik Pimlere (0 - 11) lehimlememelisiniz.
BME 680 ve MPR121 Sensörlerini Tripler Board'a bağlayın
Her iki Sensör de I2C aracılığıyla iletişim kurar… bu da, devre kartları ile Featherwing arasında yalnızca 4 bağlantı yapmamız gerektiği anlamına gelir. Basit olması için, panolar arasındaki tüm bağlantıları lehimliyorum.
BME 680
Bu sensör için, her iki bileşeni de yerinde tutmak için Helping Hands ve bir PCB Mengene kullanıyorum (yukarıdaki resme bakın). BME680 Sensörü, tüy kanadının sonuna yerleştirilmelidir. Yerleştirmeyi onaylamak için yukarıdaki resimlere bakın.
Bağlantıları lehimleme süreci sıkıcıdır, bu yüzden yavaş ilerleyin. Bağlantılar için tek damarlı tel kullanıyorum:
- SİYAH - GND
- KIRMIZI - VIN
- SARI - SCL (sensör üzerindeki SCK pini
- TURUNCU - SDA (sensör üzerindeki SDA pini)
Not: Her iki sensör için de SCL ve SDA pinleri gereklidir, bu nedenle Featherwing'in başka bir bölümünde bir SCL veya SDA pini kullanmak daha kolay olabilir.
MPR121
Yardım eden eller de bu sensörü yerinde lehimlerken yardımcı olur (bant da işe yarar). Kod, ESP32 ile iletişim için I2C'yi kullandı, bu nedenle SCA ve SDA pinlerini bağlayacaksınız.
Adım 4: Bileşenleri Lehimleme/Birleştirme - Bölüm C (Kapasitif Sensör için Tuş Takımı ve Durumda Tüy Alma)
Bu adımda Tuş Takımından Kapasitif Dokunmatik sensöre giden kabloları lehimleyeceksiniz. Daha önce aynı renk eşlemesini kullanın. Renk şemamı takip ettiyseniz, renkli telleri aşağıdaki gibi lehimleyeceksiniz:
- Sarı - Pin 0/Düğme 1
- Gri - Pin 1/Düğme 2
- Kırmızı - Pin 2 /Düğme 3
- Mavi - Pin 3 /Düğme 4
- Yeşil - Pim 4/Düğme 5
- Beyaz - Pim 5/Düğme 6
- Siyah - Pim 6/Düğme 7
Lehimleme bittiğinde, telleri yerinde tutmak için bükümlü bir bağ kullanın.
Ardından, TFT ekranını "Ön" parçaya vidalayın. M3 vidaları kullanacaksınız (toplam dört). TFT yerine oturduğunda, "Ön" parçayı kasaya vidalayın. Yine M3 vidaları (iki) kullanacaksınız.
Ardından, Featherwing Tripler'ı tüm bileşenleri takılı olarak TFT'ye takın.
Not - Pil kullanmayı planlıyorsanız, TFT'yi takmadan önce pili ESP32-JST bağlantı noktasına taktığınızdan emin olun. Pili kasanın iç kısmına yapıştırmak için bant kullanın.
Adım 5: İSTEĞE BAĞLI - Bileşenleri Lehimleme/Birleştirme - Bölüm D (INA219 Tüy)
INA219 sensörünü kullanıyorsanız, kabloları DC fişlerine taktığınız yer burasıdır.
- DC fişlerini arka kapağa takın ve yerine vidalayın.
-
INA219 kablolarını bağlamak için bir havya kullanın.
- Siyah teller, her DC fişi için ZEMİNE gitmelidir.
- Gri kablo INPUT DC fişine gitmelidir
- Mavi kablo ÇIKIŞ fişine gitmelidir.
Adım 6: Arka Kapağı Vidalayın ve USB'yi Takın
Donanım montajındaki son adım, M2 vidaları (4) kullanarak arka kapağı yerine vidalamaktır. Oradan USB kablosunu takın, PC'nize bağlayın ve yazılım adımlarına geçin!
7. Adım: AWS Ortamını Hazırlayın
Girişte belirttiğim gibi, çözümün öncülü şu şekildedir:
- ESP32 tarafından desteklenen Terminal, AWS bulutu ile iletişim kurmak için bir MQTT (Wifi üzerinden) bağlantısı kullanır.
- AWS bulutu, işlemin büyük kısmını yapar ve Monitör ile istenen hizmetler arasında bir geçiş görevi görür.
Bu adımda yapmamız gereken birkaç şey var:
Öncelikle, henüz yapmadıysanız, AWS ortamınızı kurmanız gerekir. Bu talimat, önceden kurulmuş bir AWS Hesabınızın olduğunu varsayar, bu nedenle bir bulut hesabı kurmaya ilişkin talimatlar dahil değildir. Bununla birlikte, adımlar basittir ve burada bulunabilir.
Bu adımı geçtikten sonra birkaç hizmet oluşturmanız gerekir, bu nedenle AWS konsolunda oturum açın.
Bir Şey Oluşturun ve Anahtarları İndirin
AWS IoT Core, AWS bulutu ile ekran arasındaki iletişimi kolaylaştırır. İletişimi desteklemek için bir "şey" yaratmanız ve sertifikaları indirmeniz gerekecek.
[Not: Bu talimatların çoğu, AWS Evangelist Moheeb Zara tarafından yazılmış bir kılavuzdan alınmıştır]
- AWS konsolunu açın ve AWS IoT Core'u seçin.
- AWS IoT konsolunda Yeni bir şey kaydet, Tek bir şey oluştur'u seçin.
- Yeni şeye "starTrekESP32" adını verin. Kalan alanları varsayılanlarına ayarlanmış bırakın. İleri'yi seçin.
- Sertifika oluştur'u seçin. ESP32'nin bağlanması için yalnızca şey sertifikası, özel anahtar ve Amazon Root CA 1 indirmeleri gereklidir. ESP32 cihazını programlarken kullanıldıkları için bunları güvenli bir yere indirin ve kaydedin.
- Etkinleştir, Bir ilke ekle'yi seçin.
- İlke eklemeyi atlayın ve Öğeyi Kaydet'i seçin.
- AWS IoT konsolu yan menüsünde Güvenli, İlkeler, Bir ilke oluştur'u seçin.
- Politikaya AllowEverything adını verin. Gelişmiş sekmesini seçin.
- Aşağıdaki politika şablonuna yapıştırın.
- { { "Sürüm": "2012-10-17", "Bildirim": [{ "Etki": "İzin Ver", "Eylem": "iot:*", "Kaynak": "*" }] }
- Oluştur'u seçin. (Not: Bu yalnızca başlangıç için önerilir. Her şeyin çalıştığından emin olduktan sonra lütfen geri dönün ve bunu daha kısıtlayıcı bir şeyle değiştirin.)
- AWS IoT konsolunda Güvenli, Sertifikasyon'u seçin.
- Cihazınız için oluşturulanı seçin ve Eylemler, İlke ekle'yi seçin.
- AllowEverything, Ekle'yi seçin.
- Ayrılmadan önce "Ayarlar"a tıklayın (soldaki menüde). "Özel uç noktanız" gösterilecektir; bunu bir metin dosyasına kaydedin… ESP32'yi yapılandırırken buna ihtiyacınız olacak.
Boş bir Lambda dosyası oluşturun
Lambda bir sunucusuz bilgi işlem biçimidir, bu nedenle burada herhangi bir donanım hakkında endişelenmemize gerek yok. Son olarak, güncellenmiş kodumuzu buraya yerleştireceğiz (bunu birkaç adımda yapacağız). Şimdilik sadece bir yer tutucu oluşturmak istiyoruz, bu yüzden…
- AWS konsolunda tekrar oturum açın (çıkış yaptıysanız) ve Lambda'ya tıklayın.
- "İşlev Oluştur" düğmesine tıklayın.
- Sonraki sayfada, starTrekDisplay gibi temel bir ad girin
- Node.js 12. X'i seçin
-
İzinler altında:
- Lambda'da yolunuzu biliyorsanız ve buna aşinaysanız, mantıklı olan seçeneği seçebilirsiniz. CloudWatch, IotCore, S3 (okuma ve yazma) üzerinde izinlere ihtiyacınız olacak.
- İzinlerden emin değilseniz, "Temel Lambda izinleriyle yeni bir rol oluştur"u seçin. Rolün adını yazın. Daha sonra izinleri değiştireceğiz.
- İşlev Oluştur'a tıklayın.
- Bir dakika sonra, "merhaba dünya" kod parçacığının bulunduğu yeni bir ekrana gireceksiniz. Aşağıya, Temel Ayarlar'a gidin ve "Düzenle"yi tıklayın.
- Zaman aşımını 3 saniyeden 2 dakika ve 0 saniyeye değiştirin. Not: kodunuz hiçbir zaman 5-10 saniyeden uzun çalışmamalıdır… ancak Microsoft ile ilk kimlik doğrulamanız için (takvim işlevi için) daha uzun bir zaman aşımına ihtiyacımız var. Kimliğinizi doğruladıktan sonra bunu 20 saniyeye değiştirebilirsiniz.
- Kaydet'e basın.
Çok Kural Oluşturun
- Lambda konsolunda kalın ve yukarı kaydırın. "Tetikleyici Ekle"yi seçin.
- AWS IoT'yi seçin. Ardından "Özel Kural" ı seçin.
-
"Yeni Kural Oluştur" u seçin.
- Kural Adı: ESP Bağlantısı
- Kural sorgu ifadesi: "StarTrekDisplay/pub'dan * SEÇİN
- "Ekle" ye tıklayın
Bir S3 Kovası ve Klasörü Oluşturun
- AWS Konsoluna gidin ve S3'ü seçin.
- Kimlik doğrulama dosyalarını depolamak için bir klasöre ve klasöre ihtiyacınız olacak. Bu klasör özel olmalıdır. Zaten sahip olduğunuz herhangi bir kovayı kullanmanızı ve "starTrekDisplay" adlı bir klasör oluşturmanızı öneririm. Not - Bir kepçeniz yoksa, buradaki talimatları kullanarak bir tane oluşturun.
İzinleri Güncelle - Lambda'nın sizin için bir rol oluşturmasına izin verdiyseniz, bu adımı izlemeniz gerekir
- AWS konsolunda oturum açın ve IAM'yi seçin
- ROLLER'e tıklayın, ardından daha önce oluşturduğunuz rol adını seçin.
-
İlkeleri ekle'ye tıklayın, ardından aşağıdaki ilkeleri seçin:
- AWSIoTFullErişim
- AmazonSNSFullErişim
- CloudWatchTam Erişim
- AmazonS3Tam Erişim
8. Adım: Yazılım Anahtarlarını İndirin ve 3. Taraf Hizmetlerini Kurun
Projede aşağıdaki üçüncü taraf hizmetlerini kullanıyorum:
- Worldtime API - zaman için
- Ulusal Hava Durumu Hizmeti API'leri - hava durumu için
- Takvimime erişim için Microsoft Graph API
- Fitness bilgilerine erişim için Google Fitness API'si
Aynı hizmetlerden yararlanmak için hesaplar oluşturmanız ve anahtarları indirmeniz gerekecektir.
Worldtime API - zaman için
Bu API bir anahtar gerektirmez, bu nedenle bunun çalışması için herhangi bir işlem yapılması gerekmez.
Ulusal Hava Durumu Hizmeti API'leri - hava durumu için
Ulusal Hava Durumu Hizmeti API'si ücretsizdir ve API anahtarı gerekmez. Ancak, her istekte (başlık dosyasının bir parçası olarak) iletişim bilgilerini (e-posta biçiminde) iletmenizi isterler. Bir sonraki adımda koda iletişim bilgilerini ekleyeceksiniz.
İSTEĞE BAĞLI - Microsoft Graph API ve Google Fitness API
Bu, kod kurulumunun en karmaşık kısmıdır. Cihazımızda tam teşekküllü bir klavye yok… bu nedenle takvimimize erişmek için Sınırlı Cihazlar için OAUTH adlı bir şey kullanıyoruz. Maalesef, sınırlı cihazlarda OAUTH'u kullanmak üzere kod yazabilmeniz için bir Azure "uygulaması" ve bir Google Uygulaması oluşturmanız gerekir.
Uygulama oluşturma talimatları Microsoft için burada, Google için burada. İşte bilmeniz gereken birkaç şey:
- Bir Azure ve Google bulut hesabı oluşturmanız gerekecek. Bu ücretsizdir ve sizden herhangi bir ücret alınmaz
-
Microsoft:
- Hangi kullanıcıların uygulamayı kullanabileceğini belirtmeniz istenecektir. "Herhangi bir kuruluş dizinindeki ve kişisel Microsoft hesaplarındaki hesaplar" seçeneğini seçmenizi öneririm. Bu, kişisel Microsoft hesaplarını ve kurumsal hesapları (çoğu durumda) kullanmanıza olanak tanır.
- "Mobil ve Masaüstü" uygulamaları seçmek isteyeceksiniz, ancak tüm bilgileri doldurmanız gerekmiyor (çünkü bu kişisel bir uygulama). Bu, uygulamanızı dünyanın kullanımına sunamayacağınız anlamına gelir…. ama bu durumda sorun değil
- Uygulamanız kurulduktan sonra gerekli izinleri seçmeniz gerekir. Profiller ve takvimlerle ilgili izinler istedim (izinlerin tam listesi için galerideki resme bakın). Aynı seti seçmeniz gerekecek. Daha fazla izin eklerseniz, bir sonraki adımda kapsamı uygun şekilde değiştirmeniz gerekecektir.
9. Adım: AWS Kodunu Değiştirin ve Yükleyin
Bu talimat, Node.js geliştirme ve Lambda hakkında bilgi sahibi olduğunuzu varsayar. Bağlantılı dosyayı indirin ve güncellemek için değişiklikler yapın:
- Microsoft Uygulaması ve İstemci bilgileri
- Google Anahtarı
- Ulusal Hava Servisi takibi için e-posta adresi
- S3 paket adı
- S3 klasör adı
- AWS Uç Noktası
Ayrıca aşağıdaki düğüm kitaplıklarını da indirmeniz gerekir:
- aws-sdk
- an saat dilimi
- aksan
Bu değişiklikler yapıldıktan sonra, kodu daha önce oluşturduğunuz lambda yer tutucusuna yükleyin.
Adım 10: Arduino IDE'yi Hazırlayın ve Kitaplıkları İndirin
Bu kılavuz ayrıca Arduino'ya aşina olduğunuzu varsayar. IDE'nizin bir Adafruit ESP32 ile çalışacak şekilde ayarlandığından emin olmanız gerekir. Yardıma ihtiyacınız olursa buradaki talimatları izleyin.
Bu tamamlandığında, aşağıdaki kitaplıkları indirin:
- Adafruit_GFX (kütüphane yöneticisinden)
- Adafruit_HX8357 (kütüphane yöneticisinden)
- TFT_eSPI (kütüphane yöneticisinden)
- TFT_eFEX (https://github.com/Bodmer/TFT_eFEX)
- PubSubClient (kütüphane yöneticisinden)
- ArduinoJson (kütüphane yöneticisinden)
- Adafruit_STMPE610 (kütüphane yöneticisinden)
- Adafruit_MPR121 (kütüphane yöneticisinden)
- Adafruit_INA219 (kütüphane yöneticisinden)
- Adafruit_Sensor (kütüphane yöneticisinden)
- Adafruit_BME680 (kütüphane yöneticisinden)
- Tone32 (https://github.com/lbernstone/Tone)
Daha sonra kitaplıklardan birkaçını değiştirmemiz gerekecek:
- PubSubClient klasörünü açın (Arduino/Library klasöründe) ve " PubSubClient.h " dosyasını açın. MQTT_MAX_PACKET_SIZE değerini bulun ve 2000 olarak değiştirin.
- Ardından TFT_eSPI klasörünü açın ve " User_Setup_Select.h " dosyasını açın. Herhangi bir "user_setup içerir…" satırını yorumlayın ve şu satırı ekleyin:
#Dahil etmek
Ardından, bağlantılı Custom_Tricorder.zip dosyasını indirin ve ".h" dosyasını Arduino kitaplıkları klasörünüzdeki "TFT_eSPI / User_Setups" konumuna çıkarın. ben
Artık Arduino kodunu güncellemeye geçebiliriz.
Adım 11: Arduino Kodunu Güncelleyin ve Kurun ve Engage
Arduino Kodu
Arduino kodu için bağlantılı dosyayı indirin ve açın. secrets.h sekmesine gidin. Aşağıdakileri güncellemeniz gerekecek:
- WIFI_SSID = wifi SSID'niz ile güncelleyin
- WIFI_PASSWORD = wifi şifrenizle güncelleyin
- TIMEZONE = bu listeden kendi saat diliminizle güncelleyin
- LAT (Enlem ve Boylamınızı bulmak için "https://www.latlong.net" gibi bir hizmet kullanabilirsiniz)
- LNG
- AWS_IOT_ENDPOINT = bunu daha önce kaydetmiş olmanız gerekirdi. "dx68asda7sd.iot.us-east1-amazonaws.com" gibi görünmelidir.
- AWS_CERT_CA
- AWS_CERT_CRT
- AWS_CERT_PRIVATE
Ayrıca daha önceki bir adımdaki sertifikaları da indirmiş olacaksınız. Ardından not düzenleyicide (örneğin not defteri) açın ve metni ' R"EOF(' ve ')EOF";' arasına yapıştırın.. "----- SERTİFİKA BAŞLAT -----" veya "-----RSA ÖZEL ANAHTARI BAŞLAT -----" eklediğinizden emin olun.
Görüntü Dosyaları
ESP32, küçük bir dosya sistemi ile birlikte gelir. Programımız için görüntüleri kaydetmek için bu dosya sistemini kullanıyoruz. Dosya yüklemenize izin veren aracı yüklemeniz gerekir.
- İlk olarak, Rastgele Nerd Öğreticileri hakkındaki ayrıntılı öğreticiyi ziyaret edin.
- Bu çalışmayı yaptıktan sonra, dosyaları veri klasörüne yükleyebilirsiniz (zip dosyasına da dahildir).
Angaje etmek
Son Arduino kodunu yükleyin ve işiniz bitti!
Not - Star Trek adı ve Star Trek görüntüleri CBS/Paramount'a aittir. Cosplay ve hayran kurgu konusunda oldukça gevşek bir politikaları var - sorularınız varsa lütfen buradan okuyun.
Fandom Yarışmasında Birincilik Ödülü
Önerilen:
Tersine Mühendislik: 11 Adım (Resimlerle)
Tersine Mühendislik: Instructables'taki üyelerin çoğu, veri sayfaları veya bir cihazın pin çıkışları hakkında sorular soruyor veya yanıtlarda görüntüleniyor, ne yazık ki her zaman bir veri sayfası ve şema alamazsınız, bu durumlarda yalnızca bir seçeneğiniz vardır tersine mühendislik. Tersine mühendislik
Kendin Yap Güç Kaynağı Eski Bir Bilgisayarı Geri Dönüştürme: 7 Adım
Kendin Yap Güç Kaynağı Eski Bir PC'yi Geri Dönüştürme.: Atölyenizi elektronik projeleriniz için hazırlama. Laboratuarın en önemli laboratuvarlarından biri. Buscas, poco un poco, un fuente medya
OAREE - 3D Baskılı - Arduino İle Mühendislik Eğitimi için Engelden Kaçınan Robot (OAREE): 5 Adım (Resimlerle)
OAREE - 3D Baskılı - Mühendislik Eğitimi için Engelden Kaçınan Robot (OAREE) Arduino ile: OAREE (Mühendislik Eğitimi için Engelden Kaçınan Robot) Tasarım: Bu talimatın amacı, basit/kompakt bir OAR (Engelden Kaçan Robot) robotu tasarlamaktı, 3D yazdırılabilir, montajı kolay, hareket için sürekli dönüş servoları kullanır
Pi-Berry Dizüstü Bilgisayar-- Klasik Kendin Yap Dizüstü Bilgisayarı: 21 Adım (Resimlerle)
Pi-Berry Dizüstü Bilgisayar-- Klasik Kendin Yap Dizüstü Bilgisayarı: “Pi-Berry Dizüstü Bilgisayar” yaptığım dizüstü bilgisayar Raspberry Pi 2 üzerine inşa edilmiştir. 1 GB RAM, Dört çekirdekli CPU, 4 USB Bağlantı Noktası ve Bir Ethernet bağlantı noktasına sahiptir. Dizüstü bilgisayar günlük yaşam ihtiyaçlarını karşılar ve VLC media player, Mozilla Firefox, Ardu gibi programları sorunsuzca çalıştırır
Kendin Yap Ev Bilgisayarı: 4 Adım
Kendin Yap Ev Bilgisayarı: Bir süre önce bir ev bilgisayarı yapmak için bir Espruino Pico kullanarak bir Eğitilebilir Kitap yayınladım: https://www.instructables.com/id/Make-Your-Own-Hom… Bir VGA kablosunu keserek VGA monitör, ancak bu Eğitilebilirlik için ben