Elektronik cihazlar ve modüller arasındaki kablosuz iletişim, onları Nesnelerin İnterneti Dünyasına 'Uygun' hale getirmek için çok önemlidir. HTTP protokolü ve HTML dili, Verilerin web üzerinden dünyanın herhangi bir yerine aktarılmasını mümkün kılmıştır. Arduino ile Wi-Fi kullanan bazı projeleri zaten ele aldık, Başlarken'e bir göz atalım:
- Arduino ve ESP8266 WiFi Modülü kullanarak E-posta Gönderme
- Arduino ile WiFi Kontrollü Robot
- Arduino ve Wi-Fi kullanarak RGB LED'i kontrol etme
Şimdi bu eğitimde, Arduino ve Wi-Fi modülünü kullanarak Web'e Veri Göndermek için bir program oluşturuyoruz. Bunun için önce Global veya Yerel sunucunun bir IP adresine ihtiyacımız var, burada kolaylık ve gösterim amacıyla Yerel Sunucu kullanıyoruz.
Gerekli Bileşenler:
- Arduino UNO
- ESP8266 Wi-Fi Modülü
- USB kablosu
- Bağlantı telleri
- Dizüstü bilgisayar
- Güç kaynağı
Wi-Fi Modülü ESP8266:
Devre Bağlantıları:
“Arduino'dan Web'e Veri Sonrası” için Devre Şeması aşağıda verilmiştir. Esas olarak bir Arduino ve ESP8266 Wi-Fi modülüne ihtiyacımız var. ESP8266'nın Vcc ve GND pinleri doğrudan Arduino'nun 3.3V ve GND'sine bağlanır ve CH_PD de 3.3V ile bağlıdır. ESP8266'nın Tx ve Rx pinleri doğrudan Arduino'nun 2. ve 3. pinlerine bağlıdır. Yazılım Seri Kitaplığı, Arduino'nun 2. ve 3. pinlerinde seri iletişime izin vermek için kullanılır. ESP8266 Wi-Fi modülünün Arduino ile Arayüzünü ayrıntılı olarak ele aldık.
Burada Software Serial Library kullanarak pin 2 ve 3 üzerinde seri iletişime izin verdik ve bunları sırasıyla Rx ve Tx yaptık. Varsayılan olarak Arduino'nun Pin 0 ve 1'i seri iletişim için kullanılır, ancak SoftwareSerial kitaplığını kullanarak, Arduino'nun diğer dijital pinlerinde seri iletişime izin verebiliriz.
Not: ESP8266'nın yanıtını seri monitörde izlemek için lütfen Arduino IDE'nin Seri Monitörünü açın.
Çalışma Açıklaması:
Öncelikle, ağ bağlantısı için Wi-Fi modülümüzü Wi-Fi yönlendiriciye bağlamamız gerekir. Ardından yerel sunucuyu yapılandıracağız, verileri Web'e göndereceğiz ve son olarak bağlantıyı kapatacağız. Bu işlem ve komutlar aşağıdaki adımlarda açıklanmıştır:
1. Önce AT komutu göndererek Wi-Fi modülünü test etmemiz gerekiyor, OK içeren bir yanıtı geri alacaktır.
2. Bundan sonra, AT + CWMODE = mode_id komutunu kullanarak modu seçmemiz gerekiyor , Mode id = 3 kullandık. Mod kimlikleri:
1 = İstasyon modu (istemci)
2 = AP modu (ana bilgisayar)
3 = AP + İstasyon modu (Evet, ESP8266'da ikili mod vardır!)
3. Şimdi, ESP8266 önceden mevcut herhangi bir Wi-Fi ağına varsayılan olarak otomatik olarak bağlı olduğundan , AT + CWQAP komutunu kullanarak Wi-Fi modülümüzün önceden bağlanmış Wi-Fi ağından bağlantısını kesmemiz gerekiyor.
4. Bundan sonra kullanıcı modülü AT + RST komutu ile sıfırlayabilir. Bu adım isteğe bağlıdır.
5. Şimdi, ESP8266'yı verilen komutu kullanarak Wi-Fi yönlendiriciye bağlamamız gerekiyor
6. Şimdi verilen komutu kullanarak IP Adresini alın:
Bir IP Adresi döndürecektir.
7. Şimdi, AT + CIPMUX = 1 (çoklu bağlantı için 1 ve tekli bağlantı için 0) kullanarak çoklu modu etkinleştirin
8. Şimdi, AT + CIPSERVER = 1, port_no (bağlantı noktası 80 olabilir) kullanarak ESP8266'yı sunucu olarak yapılandırın. Artık Wi-Fi'niz hazır. Burada '1' sunucuyu oluşturmak için ve '0' sunucuyu silmek için kullanılır.
9. Şimdi verilen komutu kullanarak, kullanıcı yerel olarak oluşturulan sunucuya veri gönderebilir:
Id = ID no. iletim bağlantısı
Uzunluk = Maksimum veri uzunluğu 2 kb'dir
10. Sunucuya ID ve Length gönderdikten sonra, Serial.println (“[email protected]”) gibi verileri göndermemiz gerekiyor ;
11. Veriyi gönderdikten sonra verilen komutla bağlantıyı kapatmamız gerekiyor:
Artık veriler yerel sunucuya aktarıldı.
12. Şimdi web tarayıcısında Adres Çubuğuna IP Adresini yazın ve enter tuşuna basın. Artık kullanıcı iletilen verileri web sayfasında görebilir.
İşlemin tamamı için aşağıdaki Videoya bakın.
Programlama Adımları:
1. PIN 2 ve 3 üzerinde seri iletişime izin vermek için SoftwareSerial Library ekleyin ve bazı değişkenleri ve dizileri bildirin.
#Dahil etmek
2. Bundan sonra, istediğimiz görevleri yerine getirmek için bazı işlevleri tanımlamalıyız.
Gelen Setup () işlev, biz ESP8266 için dahili seri UART iletişimi başlatmak client.begin (9600); 9600 baud hızında.
geçersiz kurulum () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("Sistem Hazır.."); }
3. wifi_init () fonksiyonunda, wifi modülünü reset, set mode, router'a bağlan, bağlantı yapılandırma vb. Komutlar göndererek başlatıyoruz . Bu komutlar da yukarıdaki açıklama bölümünde açıklanmıştır.
void wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. connect_wifi () işlevinde, komut verilerini ESP8266'ya gönderiyoruz ve ardından ESP8266 Wi-Fi modülünden yanıtı okuyoruz.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd);…………………
5. sendwebdata () işlevi verileri Yerel Sunucuya veya Web sayfasına göndermek için kullanılır.
void sendwebdata (String webPage) {int ii = 0; while (1) {işaretsiz int l = webPage.length (); Seri.print ("AT + CIPSEND = 0,"); client.print ("AT + CIPSEND = 0");…………………
6. void send () işlevi, sendwebdata () işlevine veri dizgileri göndermek için kullanılır. Bu daha sonra web sayfasına gönderilecektir.
void Gönder () {webpage = "
Circuit Digest'e hoş geldiniz
"; sendwebdata (web sayfası); web sayfası = ad; web sayfası + = dat;…………………7. get_ip () işlevi Yerel oluşturulan sunucunun IP adresini almak için kullanılır.
8. void loop () fonksiyonunda, kullanıcıya sayfayı yenilemesi için talimat gönderir ve sunucunun bağlı olup olmadığını kontrol ederiz. Kullanıcı web sayfasını yenilediğinde veya talep ettiğinde, veriler otomatik olarak aynı IP adresine iletilir.
boşluk döngü () {k = 0; Serial.println ("Lütfen Sayfanızı Yenileyin"); süre (k <1000)………………
Bu işlemi kullanarak Arduino'dan Web sayfasına, Oda Sıcaklığı ve Nem, Saat zamanı, GPS koordinatları, Kalp atışı Hızı vb. Gibi tüm verileri görüntüleyebiliriz.