Ana içeriğe atla

Lessons I Learned from Developing an IoT Project from Scratch

I am working on an Internet Of Things (IoT) project. I work with medical IoT devices in my project.
Photo by Zan on Unsplash
Photo by Zan on Unsplash

These are the lessons I learned from this project:

Networking: You must know how the network works. You must have a good knowledge of network protocols such as TCP and UDP. If you will work with IoT devices that have multiple network interfaces, you must know about CIDR. Some IoT devices use different technologies such as Bluetooth and Serial port (COM) for data transmitting. Also, there are IoT specific network technologies such as LPWAN.

Data Structures: IoT devices use different data structures. They tend to compress data and send/receive small data because of limited resources. Some old devices which are converted to IoT use weird ways to process data. So you must be aware of endianness, signed and unsigned numbers and encodings. IoT devices can produce large data. Design your system to save and process big data.

Parallel Processing: Asynchronous programming has advantages and disadvantages. Every situation is different and there is no real grab-bag solution. It is not a silver bullet. You must know the differences between process and thread, debugging and tracking asynchronous functions.

Building Embedded Softwares: It is now easier than before. You can easily build a specific solution with Arduino, Raspberry Pi and many other platforms. I couldn’t find an IoT device that fits my need. So I decided to develop one. There is huge information about Arduino. I implemented an IoT solution with Arduino in 3 days.

Encryption: It is not only needed for confidentiality. It is also used for user authentication and checking the integrity of data messages. A basic understanding of encryption is enough. There are too many tools and libraries for it.

Building a Mock Device: I was working on a medical IoT device (defibrillator). Preparing this device and configuring the setup takes one hour at some times. So I built a mock device which is completely a software that simulates this device. I used this mock device for too many reasons: traffic monitoring, security and integrity check but mostly for demo purposes in meetings. We had only one device but more than one developer could be able to work on the mock device simultaneously.

Use the same device as much as possible: Edit a configuration and boom! Nothing works! Documents about IoT devices are not up-to-date. Don’t make assumptions when changing a configuration or when an IoT device will work as expected. Test it!

You will deal with a lot of cables, triple plugs, batteries, screwdrivers, wi-fi devices, SD cards, USB flash drives.

Working with IoT devices is fun when everything works as expected :)

Yorumlar

Bu blogdaki popüler yayınlar

Bir Uluslararası Yazılım Şirketinin Batış Hikayesi

 Güzel başlamıştı hikaye. Yazılımcılar mutlu, kullanıcılar memnundu. Sonra pandemi başladı. Sorun para değildi. Olmayan şey huzurdu… Durdurun hype trenini, inecek var kırık kalpler durağında  — Photo by Kelly Sikkema on  Unsplash Gerçek olamayacak kadar güzeldi çalışma ortamı. Yazılımcılara istedikleri eğitim ve donanım alınıyordu, personel arası hiyerarşik bir yapı yoktu, sorumluluğun yanında yetki de veriliyordu, esnek çalışma saatleri yazılımcılara göre esnekti, izin isteyen hiç kimse geri çevrilmiyordu, pandemiden önce bile uzaktan çalışma vardı. Ne oldu bu şirkete? Nazar mı değdi? Şirketin yazılım ürünü Türkiye’de doğmuştu. Ürün birçok ülkede hem kamu tarafından hem de özel sektör tarafından kullanılıyordu. Yazılım geliştirme ekipleri hem Türkiye’de hem de diğer ülkelerde bulunuyordu. Yazılımın argesi için gelen geri bildirimlerin çoğu Türkiye’den geliyordu. Yazılımın kalbi Türkiye’de atıyordu.  Koronavirüs pandemisi nedeniyle Türkiye’de kamu kuruluşları hizmet alımı ile aldıklar

Türkiye'de Yazılım Şirketi Açmak ve Çıldırmamak

Aklında bir fikir vardı. Piyasada bunu karşılayan yazılımlar vardı ama hepsi eksikti. Hayalindeki yazılım ürününe hiçbiri yaklaşamıyordu. Gördüğü kadarıyla piyasanın böyle bir ürüne ihtiyacı vardı. Kullanıcılar mevcut ürünlerden şikayetçiydi. Kendi ekibini toplayıp hayalindeki şirketi kurmaya niyetlendi. Rüzgarlara dikkat!- Francesco Ungaro -  Pexels İşinden istifa etmeden önce piyasa araştırmasını yaptı, rakip ürünleri inceledi. En önemlisi ekibini kurdu. Ürününün MVP hali için çalışmaları başlattı. Girişim kurmak ile ilgili birçok kitap ve blog okudu, podcastler dinledi. Girişimci birkaç kişinin çayını kahvesini içti. Öngörebildiği her şey için önlemini aldı ve istifa edip kendi yazılım şirketini kurdu. Şirket kurmak için gerekli süreçler düşündüğünden daha kolay geçti. Şirketin adı ve logosu zaten hazırdı. Şirket teknoparkta yerini almıştı. Kendisi etiketlere çok önem vermiyordu ama yine de LinkedIn’deki profiline “Founder of the …” ibaresini ekledi. MVP’nin ortaya çıkması hedefini

Yazılımcılar İçin Yan Proje Oluşturma Rehberi

İster hobi amaçlı olsun ister maddi amaçlı her yazılımcının bir yan projesi olmalıdır. Peki yan proje oluştururken nelere dikkat edilmelidir, nasıl bir yan projemiz olmalıdır? Organize olalım beyler Yan proje (side project) için öncelikle bir fikir bulmak gerekli. Bu projenin amacı ne olacak? Hangi ihtiyacı çözecek? Yeni bir fikir mi olacak yoksa mevcut bir fikrin daha iyi uygulanmış bir hali mi olacak? Sadece yeni bir teknolojiyi öğrenmek için mi? Deneysel mi olacak ya da eğlenceli mi? Yoksa maddi bir getirisi olacak mı? Bu proje ürün olursa kimler kullanacak? Ürünü kullanacak kişilere erişip geri bildirim alabilecek miyim? . . . Bu soruların doğru bir cevabı yok, cevaplar size bağlı. Ama proje bir amaca hizmet edip bir ihtiyacı çözecekse, hele birde maddi getirisi olacaksa motivasyonunuz yükselecektir. Bunun yanında sadece eğlence amaçlı olan deneysel bir proje yapmak stressiz bir öğrenme ortamı sağlayacaktır. Gün içinde proje için aklınıza gelen her şeyi not alın. Not almazsan