Komunikasi tanpa wayar antara peranti dan modul Elektronik sangat penting, untuk menjadikannya 'Fit' dalam Dunia Internet Perkara. Protokol HTTP dan bahasa HTML memungkinkan untuk memindahkan Data ke mana sahaja di dunia, melalui web. Kami telah membahas beberapa projek yang menggunakan Wi-Fi dengan Arduino, melihatnya untuk Bermula:
- Menghantar E-mel menggunakan Arduino dan Modul WiFi ESP8266
- Robot Terkawal WiFi menggunakan Arduino
- Mengendalikan RGB LED menggunakan Arduino dan Wi-Fi
Sekarang dalam tutorial ini, kami sedang membangun program untuk Menghantar Data ke Web menggunakan modul Arduino dan Wi-Fi. Untuk ini pertama-tama kita memerlukan alamat IP sama ada pelayan Global atau Tempatan, di sini untuk kemudahan dan demonstrasi, kita menggunakan Pelayan Tempatan.
Komponen yang Diperlukan:
- Arduino UNO
- Modul Wi-Fi ESP8266
- Wayar USB
- Menyambung wayar
- Komputer riba
- Bekalan kuasa
Modul Wi-Fi ESP8266:
Sambungan Litar:
Diagram Litar untuk "Post Data dari Arduino ke Web" diberikan di bawah. Kami terutamanya memerlukan modul Wi-Fi Arduino dan ESP8266. Pin Vcc dan GND ESP8266 disambungkan secara langsung ke 3.3V dan GND Arduino dan CH_PD juga disambungkan dengan 3.3V. Pin Tx dan Rx ESP8266 disambungkan terus ke pin 2 dan 3 Arduino. Perisian Serial Perisian digunakan untuk membenarkan komunikasi bersiri pada pin 2 dan 3 Arduino. Kami telah membahas Interfacing modul Wi-Fi ESP8266 ke Arduino secara terperinci.
Dengan menggunakan Perisian Serial Perpustakaan di sini, kami telah membenarkan komunikasi bersiri pada pin 2 dan 3, dan menjadikannya Rx dan Tx masing-masing. Secara lalai Pin 0 dan 1 dari Arduino digunakan untuk komunikasi bersiri tetapi dengan menggunakan perpustakaan SoftwareSerial, kami dapat membenarkan komunikasi bersiri pada pin digital lain dari Arduino.
Catatan: Untuk melihat tindak balas ESP8266 pada monitor bersiri, sila buka Serial Monitor Arduino IDE.
Penjelasan Kerja:
Pertama sekali kita perlu menyambungkan modul Wi-Fi kita ke penghala Wi-Fi untuk penyambungan rangkaian. Kemudian kita akan Mengkonfigurasi pelayan tempatan, Menghantar data ke Web dan akhirnya Tutup sambungan. Proses dan arahan ini telah dijelaskan dalam langkah-langkah berikut:
1. Mula-mula kita perlu menguji modul Wi-Fi dengan menghantar perintah AT , ia akan mengembalikan respons yang mengandungi OK .
2. Setelah ini, kita perlu memilih mod menggunakan perintah AT + CWMODE = mode_id , kita telah menggunakan Mode id = 3. Id mod:
1 = Mod stesen (pelanggan)
2 = mod AP (host)
3 = AP + Mod stesen (Ya, ESP8266 mempunyai mod dwi!)
3. Sekarang kita perlu memutuskan modul Wi-Fi kita dari rangkaian Wi-Fi yang sebelumnya disambungkan, dengan menggunakan perintah AT + CWQAP, kerana ESP8266 adalah sambungan lalai secara automatik dengan rangkaian Wi-Fi yang ada sebelumnya
4. Selepas itu, pengguna dapat Menetapkan semula modul dengan arahan AT + RST . Langkah ini adalah pilihan.
5. Sekarang kita perlu menyambungkan ESP8266 ke penghala Wi-Fi menggunakan arahan yang diberikan
6. Sekarang dapatkan Alamat IP dengan menggunakan arahan yang diberikan:
Ia akan mengembalikan Alamat IP.
7. Sekarang aktifkan mod multiplex dengan menggunakan AT + CIPMUX = 1 (1 untuk sambungan berganda dan 0 untuk sambungan tunggal)
8. Sekarang konfigurasikan ESP8266 sebagai pelayan dengan menggunakan AT + CIPSERVER = 1, port_no (port mungkin 80). Kini Wi-Fi anda sudah siap. Di sini '1' digunakan untuk membuat pelayan dan '0' untuk menghapus pelayan.
9. Sekarang dengan menggunakan perintah yang diberikan pengguna dapat mengirim data ke pelayan buatan lokal:
Id = No. ID sambungan penghantaran
Panjang = Panjang data maksimum ialah 2 kb
10. Setelah menghantar ID dan Panjang ke pelayan, kita perlu menghantar data seperti: Serial.println (“[email protected]”);
11. Setelah menghantar data, kita perlu menutup sambungan dengan arahan yang diberikan:
Kini data telah dihantar ke pelayan tempatan.
12. Sekarang ketik Alamat IP di Bar Alamat di penyemak imbas web dan tekan enter. Kini pengguna dapat melihat data yang dihantar di laman web.
Lihat Video di bawah untuk proses yang lengkap.
Langkah Pengaturcaraan:
1. Sertakan SoftwareSerial Library untuk membolehkan komunikasi bersiri pada PIN 2 & 3 dan menyatakan beberapa pemboleh ubah dan rentetan.
#sertakan
2. Setelah ini, kita harus menentukan beberapa fungsi untuk melaksanakan tugas yang kita inginkan.
Dalam fungsi Setup () , kami memulakan komunikasi UART bersiri terbina dalam untuk ESP8266 sebagai client.begin (9600); pada kadar baud 9600.
persediaan tidak sah () {Serial.begin (9600); pelanggan.begin (9600); wifi_init (); Serial.println ("Sedia Sistem.."); }
3. Dalam fungsi wifi_init () , kami menginisialisasi modul wifi dengan mengirimkan beberapa perintah seperti reset, mode set, sambungkan ke router, konfigurasi sambungan dll. Perintah-perintah ini juga telah dijelaskan di atas di bahagian keterangan.
batal wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………….
4. Dalam fungsi connect_wifi () , kami mengirim data perintah ke ESP8266 dan kemudian membaca respons dari modul Wi-Fi ESP8266.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; sementara (1) {Serial.println (cmd);…………….
5. fungsi sendwebdata () digunakan untuk mengirim data ke Pelayan Tempatan atau Halaman Web.
batal sendwebdata (String webPage) {int ii = 0; sementara (1) {unsigned int l = webPage.length (); Serial.print ("AT + CIPSEND = 0,"); client.print ("AT + CIPSEND = 0,");…………….
6. fungsi void send () digunakan untuk menghantar rentetan data ke fungsi sendwebdata () . Itu akan dihantar lebih jauh ke laman web.
batal Hantar () {laman web = "
Selamat Datang ke Circuit Digest
"; sendwebdata (laman web); laman web = nama; laman web + = dat;…………………7. fungsi get_ip () digunakan untuk mendapatkan alamat IP pelayan tempatan yang dibuat.
8. Dalam fungsi loop kosong () , kami mengirimkan arahan kepada pengguna untuk memuat semula halaman dan memeriksa sama ada pelayan disambungkan. Semasa pengguna menyegarkan atau meminta halaman web, data secara automatik dihantar ke alamat IP yang sama.
gelung void () {k = 0; Serial.println ("Sila Segarkan Halaman Anda"); sambil (k <1000)………………
Kami dapat memaparkan data dari Arduino ke Laman Web menggunakan proses ini, seperti Suhu & Kelembapan Bilik, waktu Jam, koordinat GPS, Denyut Jantung dll.