WiFi ile Tost Makinası Çalıştırma #6

in #tr6 years ago (edited)


#1. yazıda, Bulunduğumuz mekandaki WiFi ağlarını taramıştık.
#2. yazıda, Serial haberleşme ekranındaki NL&CR yorumuna bakmıştık.
#3. yazıda, Şifremizi girerek kendi WiFi ağımıza bağlanmış ve ESP'nin IP adresini öğrenmiştik.
#4.yazıda, Elle yapılan işlemleri, Kodla yapmış ve ESP'yi sunucu olarak hazırlamıştık.
#5.yazıda, Loop fonksiyonuna değinmiş, ESP-sunucu'da gösterilecek olan Yönetim sayfamızı hazırlamıştık.


AT+CIPSEND komutu ile göndermiş olduğumuz dataya (html kodlarına) baktığımızda küçük bir nüans dikkatimizi çekmiş olmalı:


Klasik bir link kodu.
Ve butonuna tıkladığımızda, adres satırına ?pin=on ilave etmekten başka da bir şey yapmıyor. Fakat biz, ilave edilen kelimeleri takip edersek, düğmesine basıldığını anlayabiliriz ;)

Hızlıca düşündüğümüz üzere bir tane de KAPAT butonu yaparsak ve bu buton adres satırına farklı bir şey yazdırırsa( örn: ?pin=off ), bu sefer KAPAT butonuna basılmış olduğunu anlayabiliriz.

Bi dakika..

Evet. ?pin=on yazdırmak yerine,
?pin=TostMakinasiON, ?pin=KlimaOn, ?pin=KombiON .. ..
yazdırırsak (ve elbetteki bağlantılarını ve kodlarını ayarlarsak) canımızın çektiği tüm cihazları WiFi'dan kontrol edebiliriz.

Ok!
Madem öyle adres satırında ne yazıyor bunu takip etme işini yapalım. Basıldığında haberimiz olması için sürekli adres satırını kontrol etmemiz lazım. Ve önceki yazıdan bildiğimiz üzere biz istesek de istemesek de elektrik olduğu müddetçe devreler haliyle Arduino çalışıyordu. Yani loop() fonksiyonumuz tam da bu iş için biçilmiş kaftan ;)

Yapmamız gereken, Sunucu/Html kodlarını gönderdikten sonra, adres satırından (GET) gelecek değişikleri takip etmek.

Bunun için en uygun şey; CIPSEND'den sonra, ama loop() { 'un içinde olacak bir yerde ac_kapa() fonksiyonu olabilir ;) }


Loop'u kapatmadan önce bir iki küçük şey daha yapmamız lazım ama şimdilik yazılı akış sırasına değil, programın akış sırana bakalım.


Fonksiyon isminin başındaki void, bu fonksiyon bir şeyler yapacak ama bir yanıt döndürmeyecek demek. Dikkat edersek setup ve loop fonksiyonları da bu şekilde bir değer döndürmeyecek fonksiyonlar. Burada bazı arkadaşların kafasının karıştığını gözlemlediğim için bir benzetme yapayım.

Liseden hatırladığımız f(x) fonsiyonu bir fabrika olarak düşünelim. Plastik ham madde fabrikaya girsin, tabla kaysın, bıçaklar ayak tabını şeklinde kesim yapsın, yan kenarlar eklensin, dikip yapılsın.. sonrada taban ölçüsü alınıp "36" şeklinde bir rapor sunulsun.

Elimizdeki fonksiyon bir sürü şeyler yapıp sonrasında bize bir rapor sunuyorsa, Değer çıktısı/dönüşü olan fonksiyonlar diyoruz.

Yukarıdaki fonksiyonumuz bir değer döndürecek olsaydı, dönecek olan verinin tipini yazmalıydık. Örneğin:
int topla(x){ sonuc = x+3; return sonuc; }
byte sensor () { if(isik_degeri>100){ return 1; } }
burada bi işlemler yapılacak sonuc ve ya 1 gibi bir dönüş yapılacak demek.

"Bir şeyler yapılacak" ama rapor/çıktı dönüşü olmayacaksa int/byte/bool vb. veri tipleri yerine void kullanıyoruz. Örn:

void biseyYap() { digitalWrite(8, HIGH); // 8. pinin voltajını arttır }


Posted from my blog with SteemPress :

https://murattatar.xyz/wifidan-tost-makinasini-calistirma/

Sort:  

This post has received a 20.00% upvote from @jmiller05!

This post has received a 18.89% upvote from @lovejuice thanks to @sweetpee. They love you, so does Aggroed. Please be sure to vote for Witnesses at https://steemit.com/~witnesses.

Arduino ile bunu yapmak lazim @murattatar Emeğinize sağlık güzel olmuş

Teşekkürler.
Yalnız, iş bitince heyecan duyacak birilerine göstermek lazım. Bazıları, "kumandaya basınca da tv açılıyor" tarzı, sanki kumandanın mucidi de bu artık emekli olmuş gibi donuk tepkiler verebiliyor :)


@murattatar, sorry to see you have less Steem Power.
Your level lowered and you are now a Red Fish!

Do not miss the last post from @steemitboard:

SteemFest3 and SteemitBoard - Meet the Steemians Contest

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @murattatar! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 12000 upvotes. Your next target is to reach 13000 upvotes.

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:

SteemFest3 and SteemitBoard - Meet the Steemians Contest

Support SteemitBoard's project! Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 60073.81
ETH 2420.97
USDT 1.00
SBD 2.45