Tambah WiFi ke Arduino UNO

Sambungkan mincrocontroller anda ke internet dengan menambah ESP8266 WiFi Module!

Modul Wifi ESP8266 adalah rangkaian WiFi lengkap di mana anda boleh dengan mudah menyambung sebagai penyedia Wi-Fi penyesuai, antara muka akses internet tanpa wayar kepada sebarang reka bentuk berasaskan mikrokontroler pada sambungan mudahnya melalui antara muka Serial Communication atau UART.

Menambah modul ini kepada Arduino UNO anda akan membuka anda ke projek-projek yang lebih menarik dan menarik

Langkah 1: Membina Litar

Sambungkan pin yang lebih digambarkan pada jadual Pin yang dilampirkan

Ikut langkah-langkah ini.

  • sambung wayar merah ke VIN (3.3V) ke kuasa + 3.3V dari mikropengawal.
  • sambung wayar hitam ke tanah.
  • sambung wayar hijau ke TX modul Wifi dan mikrokontroler
  • sambungkan wit kuning ke RX modul wifi dan mikrokontroler

Mengenai litar

ESP8266 hanya dikuasakan hanya untuk 3.3 V. Lebih daripada itu akan memusnahkan modul.

PENTING tidak menggunakan voltan melebihi 3.3V!

Sambungkan VIN ke 3.3v untuk menghidupkan dan juga pin ENABLE untuk membolehkan modul.

TX disambungkan ke RX yang bermaksud apa sahaja yang kami mahu Menghantar di ESP8266 akan Terima oleh Arduino UNO. Dan sebaliknya untuk RX ke TX. Apabila membina litar ini, kami kini bersedia untuk memulakan WIFI dengan Arduino UNO.

Langkah 2: Bercakap dengan Modul

Komunikasi dengan ESP8266 adalah melalui Command Perhatian atau AT Perintah.

Semak jadual AT Commands yang dilampirkan untuk mengkaji semula kod.

Menetapkan papan anda

1. Muat naik sampel lakaran yang dilampirkan ke Arduino UNO anda.

2. Muat turun Telnet Client untuk Android

3. Sambungkan ke Wifi ESP8266 anda

4. Setelah dihubungkan, dapatkan alamat IP

5. Buka Pelanggan Telnet pada telefon Android.

6. buat sambungan dengan mengklik bersambung, Tambah IP dan port 80.

Setelah menghantar permintaan hantar dengan menaip:

 esp8266: 

Atau menghidupkan terbina dalam arahan menggunakan LED

 LEDON 

Atau matikan terbina dalam arahan menggunakan LED

 LEDOFF 

Atau katakan saja

 HELLO 

Lampiran

  • esp8266Sample.ino Muat turun

Langkah 3: Mengenai Kod

Semua permintaan kami akan dibaca dan dihuraikan pada fungsi gelung ()

jika (wifiSerial.available ()> 0) {

Mesej String = readWifiSerialMessage (); jika (cari (mesej, "esp8266:")) {Hasil rentetan = sendToWifi (message.substring (8, message.length ()), responsTime, DEBUG); jika (cari (hasil, "OK")) sendData ("\ n" + hasil); lain sendData ("\ nErrRead"); // Pada arahan CODE ERROR untuk pernyataan Gagal Pelaksanaan} lain jika (cari (mesej, "HELLO")) {// menerima HELLO dari wifi sendData ("\\ nHI!"); // arduino kata HI} lain jika (cari (mesej, "LEDON")) {digitalWrite (13, TINGGI); } lain jika (cari (mesej, "LEDOFF")) {digitalWrite (13, LOW); } else {sendData ("\ nErrRead"); / // KOD KODE ERROR untuk UNABLE TO READ}}

Sekiranya anda ingin berkomunikasi dengan Arduino UNO atau tanya apa-apa, tambahkan keadaan anda

jika (cari (mesej, "")) {
// ada yang buat di sini

}

Saya menambah beberapa fungsi untuk berkomunikasi dengan ESP8266.

/ *
* Nama: sendData
* Penerangan: Fungsi yang digunakan untuk menghantar string kepada klien tcp menggunakan cipsend * Params: * Returns: void * / void sendData (String str) {String len = ""; len + = str.length (); sendToWifi ("AT + CIPSEND = 0, " + len, responseTime, DEBUG); kelewatan (100); sendToWifi (str, responsTime, DEBUG); kelewatan (100); sendToWifi ("AT + CIPCLOSE = 5", responsTime, DEBUG); }

/ * * Nama: cari * Keterangan: Fungsi yang digunakan untuk memadankan dua rentetan * Params: * Returns: true jika match else false * / boolean find (string string, value string) {if (string.indexOf (value)> = kembali benar; kembali palsu; }

/ * * Nama: readSerialMessage * Keterangan: Fungsi yang digunakan untuk membaca data dari Serial Arduino. * Params: * Pengembalian: Respon dari Arduino (jika ada respon) * / String readSerialMessage () {char value [100]; int index_count = 0; sementara (Serial.available ()> 0) {value [index_count] = Serial.read (); index_count ++; nilai [index_count] = '\ 0'; // Null menamatkan rentetan} Str str (nilai); str.trim (); kembali str; }

/ * * Name: readWifiSerialMessage * Description: Fungsi yang digunakan untuk membaca data dari Serial ESP8266. * Params: * Pengembalian: Respon dari esp8266 (jika ada respon) * / String readWifiSerialMessage () {char value [100]; int index_count = 0; sementara (wifiSerial.available ()> 0) {value [index_count] = wifiSerial.read (); index_count ++; nilai [index_count] = '\ 0'; // Null menamatkan rentetan} Str str (nilai); str.trim (); kembali str; }

/ * * Nama: sendToWifi * Penerangan: Fungsi yang digunakan untuk menghantar data ke ESP8266. * Params: command - data / command to send; masa tamat - masa menunggu tindak balas; sambutan dari esp8266 (jika ada respons) * / String sendToWifi (String command, int int timeout, boolean debug) {String response = ""; wifiSerial.println (perintah); / / hantar watak baca ke esp8266 panjang int masa = millis (); sementara ((masa + masa tamat)> millis ()) {sementara (wifiSerial.available ()) {// esp mempunyai data supaya memaparkan outputnya ke window siri char c = wifiSerial.read (); // baca watak seterusnya. tindak balas + = c; }} if (debug) {Serial.println (response); } sambutan balas; }

/ * * Nama: sendToUNO * Keterangan: Fungsi yang digunakan untuk menghantar data ke UNO. * Params: command - data / command to send; masa tamat - masa menunggu tindak balas; debug - cetak ke tetingkap Serial? (true = yes, false = no) * Pulangan: Respon dari UNO (jika ada respon) * / String sendToUno (String command, const int timeout, boolean debug) ""; Serial.println (perintah); / / hantar watak baca ke esp8266 panjang int masa = millis (); semasa (time + timeout)> millis ()) {while (Serial.available ()) {// esp mempunyai data supaya memaparkan outputnya ke window window char c = Serial.read (); // baca watak seterusnya. tindak balas + = c; }} if (debug) {Serial.println (response); } sambutan balas; }

Itulah! Sekarang bahawa anda telah belajar bagaimana untuk berkomunikasi dengan ESP8266, kini anda boleh meneroka lebih banyak projek Internet Perkara. Maksimalkan kuasa modul WiFI ini dan jadilah Maker !.
Jangan ragu untuk menambah semakan pada repo github saya

Artikel Berkaitan