TUJUAN
Dari Arduino UNO, kirim perintah AT ke ESP8266 melalui port SoftwareSerial dan terima hasilnya.
STATUS TERKINI
Saya baik mengirim perintah AT dan mendapatkan kembali ( skema pengkabelan 1 ) atau saya mengirim perintah AT dan mendapatkan sampah kembali ( skema pengkabelan 2 ).
Menggunakan Arduino sebagai pass through (seperti dijelaskan dalam tutorial yang tercantum di bagian sumber daya), saya dapat mengirim perintah AT. Saya telah menemukan bahwa saya dapat berkomunikasi dengan ESP8266 di 115200 baud.
Ini adalah hasil dari menjalankan AT+GMR
:
AT version:0.40.0.0(Aug 8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
SKEMA KABEL 1
!! Saya memiliki kabel hijau yang terpasang pada pin 3 di Arduino Uno dan kabel kuning terpasang pada pin 2; bukan 1 dan 0 seperti yang ditunjukkan gambar !!
SKEMA KABEL 2
Kabel yang sama seperti di atas, tetapi saya memiliki RX dan TX terbalik. Kabel hijau terpasang ke pin 2 dan kabel kuning terpasang ke pin 3.
KODE
Ini berjalan di Arduino Uno
#include <SoftwareSerial.h>
SoftwareSerial esp8266(2, 3);
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Started");
// set the data rate for the SoftwareSerial port
esp8266.begin(115200);
esp8266.write("AT\r\n");
}
void loop() {
if (esp8266.available()) {
Serial.write(esp8266.read());
}
if (Serial.available()) {
esp8266.write(Serial.read());
}
}
HASIL DARI SKETCH MENJALANKAN
Skema Pengkabelan 1
Started
Skema Pengkabelan 2
Started
�����
Saya telah menguji ESP8266 melalui instruksi yang tercantum dalam tutorial di bagian Resources Saya telah Digunakan di bawah ini. ESP8266 berfungsi dengan baik saat mengirimkan instruksi melalui Serial Prompt.
SUMBER DAYA AKAN DIGUNAKAN http://rancidbacon.com/files/kiwicon8/ESP8266_WiFi_Module_Quick_Start_Guide_v_1.0.4.pdf
PERTANYAAN
Adakah yang tahu kalau apa yang saya coba lakukan itu mungkin? Dan jika benar, apa yang saya lakukan salah?
Jawaban:
Benar-benar mungkin :)
SoftwareSerial tidak mampu memberikan baud rate 115200 (meskipun "memungkinkan" ini sebagai pengaturan). Beberapa laporan menyarankan setinggi 57600 bisa diterapkan, meskipun dalam pengalaman saya 9600 adalah yang terbaik untuk keandalan. Cara mengubah baud rate pada ESP8266 akan tergantung pada versi firmware. Saya sudah sukses dengan
AT+IPR=9600
. Anda hanya perlu menjalankan perintah ini sekali saja (ini adalah pengaturan yang persisten). Saya sarankan, berdasarkan uraian Anda, bahwa ini adalah penyebab paling mungkin yang menyebabkan keluaran "sampah" yang Anda gambarkan.Beberapa catatan lain:
AT
tetapi ketika Anda mencoba menyambung ke jaringan dll. Itu mungkin menyebabkan perangkat tidak diatur ulang.sumber
Anda bisa coba ini:
Mulailah dengan mengunggah sketsa kedip ke Arduino Anda lalu hubungkan ke ESP8266 Anda seperti ini: TX-TX dan RX-RX.
Sekarang buka Serial Monitor dan kirim perintah AT dan lihat apakah ia merespons. Jika demikian maka Anda dapat mengontrolnya menggunakan Arduino Anda dengan menghubungkannya kembali ke TX-RX dan RX-TX.
PS: Jangan lupa untuk mengatur baris yang berakhir di Serial Monitor ke Newline atau Carriage Return.
Gunakan kode ini untuk terhubung ke ESP8266:
Karena antarmuka Serial Perangkat Keras akan sibuk ketika terhubung ke Komputer, maka Anda harus menggunakan antarmuka Serial lain untuk berkomunikasi dengan ESP8266 Anda. Dalam hal ini, Serial Perangkat Lunak menjadi berguna.
sumber
Adakah yang tahu kalau apa yang saya coba lakukan itu mungkin? Mungkin saja, saya sudah melakukannya dengan 2 arduinos di mana seseorang mensimulasikan ESP8266 (menunggu pesanan ebay).
Dan jika benar, apa yang saya lakukan salah?
Apa yang Anda lakukan salah pada sebagian besar level, tetapi saya pikir Anda paling beres.
Sebuah ide adalah untuk mengimplementasikan teman kecil ini: Tingkat logika shifter itu akan menyelamatkan Anda dari banyak masalah nanti.
Pada "WIRING SCHEME 1" Anda, Anda menggunakan port serial Hardware arduino untuk berbicara langsung ke perangkat seolah-olah terhubung melalui kabel TTL atau kabel FTDI.
Ini berarti bahwa perangkat arduino secara teori akan membaca dari perangkat keras ketika berbicara terlalu ESP8266, jika Anda memiliki arduino lain atau kabel TTL, coba dan hubungkan ke gerbang 2 dan 3 pada arduino "utama" dan Anda harus mendapatkan yang serupa hasil seperti untuk contoh hasil Anda 2. Karena Anda akan seperti itu proxy melalui Arduino. Jika tidak, itu akan menjadi tempat untuk memulai debugging.
Selain itu saya hanya bisa merekomendasikan Anda untuk berinvestasi dalam TTL 3,3v atau konverter level logika. Ketika saya mendapatkan kabel saya semuanya bekerja di luar kotak.
sumber
Saya punya banyak masalah juga. Dalam kasus saya masalah hampir diselesaikan dengan beralih dari SoftwareSerial ke AltSoftSerial . Tampaknya di Uno perpustakaan serial perangkat lunak standar tidak berfungsi untuk saya. Setelah beralih saya mulai mendapatkan hasil kembali untuk pertama kalinya. (Saya juga menggunakan level shifting dan catu daya eksternal untuk 3.3V)
Dan dengan hampir memecahkan maksud saya - saya masih mendapatkan, dari waktu ke waktu, omong kosong di terminal. Jadi bahkan AltSoftSerial bukanlah solusi yang sempurna. Saya menggunakan ESP-07 dengan data rate 115200 bps.
sumber
Kami menemukan bahwa banyak masalah dengan integrasi perangkat lunak serial ESP - Arduino Uno berkaitan dengan baudrate yang tidak kompatibel. Kami membuat tutorial singkat ini (termasuk perpustakaan Github) yang dapat Anda coba dan lihat apakah itu memecahkan masalah ini. http://www.instructables.com/id/Simple-ESP8266-Arduino-Uno-Software-Serial-Integra/
sumber
Berikut adalah beberapa tips saat menggunakan Modul ESP8266.
Jangan gunakan serial perangkat lunak karena tidak dapat diandalkan terutama pada tingkat baud yang lebih tinggi.
Selalu sambungkan modul ESP ke komputer dan uji semua perintah AT sebelum berinteraksi dengan Arduino untuk memastikan bahwa Anda bekerja di arah yang benar
Buat papan adaptor daya untuk membuat modul ESP kompatibel dengan pasokan Arduino 5v
Lihat juga tautan ini untuk detail lebih lanjut
sumber