Bu çok geniş bir soru, ama umarım diğerlerine ve sizin için faydalı birkaç genel işaretçi vermeye çalışacağım (bu yüzden, zaten bildiğiniz şeyleri gönderirsem özürlerimi kabul edin).
Eğer sensörleri okumak istiyorsanız, bu telemetri ve mutlaka IoT değil. Bağımsız bir bilgisayarın bazı ölçümleri okuduğu ve görüntülediği birçok projeyi kodladım.
Bağlı donanımı da denetlemek istiyorsanız, bu SCADA'dır . Yine, mutlaka internete bağlı olması gerekmez.
İşte genel olarak IoT için çok iyi bir his veren SCADA'nın bir diyagramı. Not PLC s şemasında sensörleri ve IOT kontrollerdir cihazlar.
Donanım Önerileri bölümünden sensörler ve denetleyici için donanım değerlendirmeleri isteyebilirsiniz .
Ve, bir kez kodunuz olduğunda, Stack Overflow'daki sorunlar için tavsiye alabilirsiniz .
Genel olarak endüstri için IoT, istemci donanım cihazlarını ölçen / kontrol eden ve sunucudan komutları alan / sunucudan alan istemci / sunucu modelini içerir. Sunucu ayrıca genellikle bir veritabanına sahiptir ve yönetim ve alarmlar için raporların oluşturulmasına izin verir (ve uzak donanıma alınan verilere göre yeniden yapılandırma / kapatma talimatı verebilir).
Uf! Bu yoldan giriş. Şimdi ellerimizi kirletmek için.
Eğer kodlamadan bahsetmek istiyorsanız, soketlere bakın ve TCP ile UDP arasındaki farkı anlayın .
Neyse ki, onlarca yıl kütüphanelerde daha zorlayıcı şeylerin çoğunu tamamladı ve muhtemelen en iyi RESTful hizmetlerini okumanız tavsiye edilir. Dilinize bağlı olarak çok sayıda ücretsiz çevrimiçi öğretici, kurs ve video bulunmaktadır; C, bazıları C ++ kullanan geleneksel bir gömülü dildir, ancak elbette bildiğiniz / rahat hissettiğiniz her şeyi kullanın. Python, Raspberry Pi için önerilen dil olmasının yanı sıra oldukça popüler ve öğrenmesi basittir.
Şahsen, hataları çıkarmak daha kolay olduğu için derlenmiş dilleri yorumlamayı tercih ederim, ancak seçim tamamen size bağlıdır. Sadece çevre birimlerine USB, Ethernet üzerinden erişim sağladığından ve sektörde seri bağlantı noktasında oldukça yaygın olduğundan emin olun.
Sunucu tarafı için, dünya sunucusunun% 90'ı + hala PHP'de çalışıyor. Ancak, NodeJS kullanımında, özellikle tarayıcı uygulamalarını kodlayan ve şu anda yalnızca JavaScript'te yapılabilen ve iki dil öğrenmek istemeyen kişilerden bir alım söz konusudur. Dosya sistemine ve çevre birimlerine erişen tarayıcı kodundaki kısıtlamalar nedeniyle tarayıcı tabanlı IoT uygulamaları geliştirmenizi önermiyorum ( akıllı telefon için geliştirmek istiyorsanız Cordova'nın beğenilerinden bahsederim ).
Başlamak için bir Ahududu Pi (Python veya C kodlama) tavsiye ederim .
Ve * yüksek * Bir sensör şapka önerilir. Bu sadece bir örnek, ama pahalı değil ve
- Jiroskop - açısal hız sensörü: +/- 245/500 / 2000dps İvmeölçer
- Doğrusal hızlanma sensörü: +/- 2/4/8/16 g
- Manyetometre - Manyetik Sensör: +/- 4/8/12/16
- Gauss Barometre: 260 - 1260 hPa mutlak aralık (doğruluk sıcaklığa ve basınca bağlıdır, normal koşullar altında +/- 0.1 hPa)
- Sıcaklık sensörü (0-65 ° C aralığında sıcaklık +/- 2 ° C'ye kadar hassas)
- Bağıl Nem sensörü (% 20-80 rH aralığında +/-% 4,5'e kadar, 15-40 ° C aralığında +/- 0,5 ° C'ye kadar)
- 8x8 RGB LED matris ekran
- Küçük 5 düğmeli kumanda kolu
Bu, bazı verileri toplamanıza ve sunucunuza bildirmenize olanak tanır. Verilerinizi almak ve görüntülemek için çevrimiçi olarak ücretsiz bir hizmet bulabilirsiniz. Diğer SO sitesinde bazı gördüm, ama nerede unut.
Ancak, muhtemelen kendi sunucunuzu kodlamak istiyorsunuz. Programlama dili olarak PHP'yi tavsiye ederim. Linux için LAMP (Linux, Apache, Mysql ve PHP) ile iyi bir şekilde donatılmıştır. Windows için bir WAMP (Windows… vb.) Yüklemeniz gerekir .
Seçiminizi yapabilirsiniz. On yıldan fazla bir süredir endüstriyel uygulamalarda XAMPP kullandım . Mysql kullanmak zorunda değilsiniz , Sqlite de aynı şekilde hizmet edebilir (6 yıl önceki kendi SO sorum için, “ Sqlite veya MySql? Nasıl karar verilir? ” İçin shaless fiş ). CRUD hakkında da bilgi edinmeniz gerekecek .
İstemciden / sensörden alınan verilere dayanarak, sadece basit bir komut bile geri göndermek isteyebilirsiniz (ekran: "sıcaklık çok yüksek", bu da endüstriyel bir sistemdeki bir vananın kapatılmasına dönüşebilir).
Alarmları gerçek zamanlı olarak yükseltmek isteyebilirsiniz (sıcaklığın çok yüksek olduğunu belirten bir e-posta gönderin).
Ayrıca, rapor oluşturma hakkında da düşünmek isteyebilirsiniz. Alınan verileri gösteren bir tabloyla başlayın. Bir grafik veya daha meraklı bir şey düşünün. Son kullanıcının verileri daha fazla analiz ve manipülasyon için bir e-tabloya aktarmasına olanak tanıyan Virgülle Ayrılmış Değerlere (CSV) dışa aktarma seçeneği ekleyin .
Eğer varsa do süslü raporlama istediğinize karar, sen yapabilirsiniz şimdi tarayıcıda, rapor şeyler istemci tarafında çok yapıyor taşınmış Bunun birkaç on yıl sonra, PHP bunu ancak.
Genel prensipler için, Tek Sayfalı Uygulamalar ve AJAX hakkında genel bilgi edinin . Şahsen, çok fazla araştırma yaptım ve Google'ın AngularJS'sini programlama dilim olarak seçtim (çok sayıda öğretici ve büyük destek var), ancak istediğiniz gibi düz JS, Jquery, vb.
Tarayıcı öğelerini de kodlamaya karar verirseniz ve sunucu tarafında NodeJ'leri kullanmak için de iyi olabilirsiniz , böylece sadece bir yeni programlama dili öğrenmeniz gerekir.
Çok fazla seçenek var mı? Afedersiniz :-(
Umarım bu size bazı tavsiyeler verir, ancak soru sormaktan çekinmeyin ve burada eksik genel bir tavsiye olup olmadığını bana bildirin.