ESP8266 ile Server üzerinde RGB Led Kontrolü

ESP8266 RGB Led Server

Bir önceki NodeMCU ile DHT11 Kullanımı yazımda da belirttiğim gibi ESP8266 kullanarak bir şeyler öğrenmeye devam ediyorum. Bu yazımda ise Arduino‘muza bağlı olan ESP8266 modülü ile server üzerinden, bizim vermiş olduğumuz değerler ile yanacak bir RGB led kontrolü yapacağız.

İnternetteki bir çok kaynaktan bulabileceğiniz server kurma kodlarını yazarak vakit kaybetmek istemiyorum. Ben öncelikle RGB ledim için küçük bir renk fonksiyonu yazarak başlamak istiyorum.

https://gist.github.com/erenkeskin/5ad3207a1ee6db9bb609123233d29951

Bu kodları gerekli yerlere yerleştirdikten sonra geriye sadece RGB led’imiz için değer göndermek kalıyor. Unutmayın! RGB bacaklarınızı PWM sinyali veren pinlere takmalısınız.

Serverdan değerleri almamız için ben GET methodunu kullandım. Sanırım POST methodu ile de yapılabiliyor ama henüz o konuda net bir bilgiye ulaşamadığım için GET methodunu kullandım. Bunun için öncelikle bir HTML formu içerisinde değerler ile göndermemiz gerekli. Gönderme işleminin ardından sayfa adresi “/kirmizi=90&yesil=130&mavi=240” gibi bir hal alıyor. Bizim yapmamız gereken ise bu satırdan sayısal verileri alarak integer’a çevirmek ve ardından bu integer değerleri renkAyarla() fonksiyonuna göndererek ledi yakmak.

C’de URL parçalamak için çok kolay bir yol bulamadım. O yüzden kısmen uzun bir yol izleyerek tek tek parçaladım ve stabil sonuç elde edebildim. Eğer siz daha kısa ve kolay bir yol biliyorsanız benimle paylaşırsanız sevinirim.

Aşağıdaki kodlar ile HTML sayfanızı oluşturup RGB ledinizi kontrol edebilirsiniz.

Loop fonksiyonu içerisinde HTML olarak server yapısı oluşturduğum kod:

https://gist.github.com/e9ded39eaaf7e80900876f5c8650f59b

URL’yi parçalamak (split) ve Led’i yakmak için ise aşağıdaki kodu kullanıyorum.

https://gist.github.com/e3409dd51e52052324916a5d201086b4

Herhangi bir soru ve sorununuz olursa elimden geldiği kadar yardımcı olmaya çalışırım, yorum olarak belirtmeniz yeterli.