- Pengantar ESP8285
- Diagram Sirkuit Papan Pengembangan ESP
- Membuat Papan Pengembangan ESP8285 kami
- Memesan PCB dari PCBWay
- Merakit dan Memprogram Papan ESP8285
- Menguji dengan Sketsa Kedip LED Sederhana
- Menguji Sketsa Webserver di ESP8285
Pengontrol ESP dari Espressif menjadi pilihan yang sangat populer untuk desain berbasis IoT. Ada banyak jenis modul ESP dan papan pengembangan yang sudah tersedia di pasaran, di antaranya NodeMCU adalah yang paling populer. Selain itu, ESP-12E, ESP01 juga merupakan pilihan yang populer. Namun jika Anda ingin membuat desain Anda lebih fleksibel dan kompak, kemungkinan besar kita harus mendesain modul ESP kita sendiri dari level chip, daripada langsung menggunakan modul yang sudah tersedia. Pada artikel ini, kita akan belajar bagaimana mendesain sirkuit dan PCB untuk menggunakan pengontrol ESP (ESP8285) secara langsung tanpa menggunakan modul.
Dalam proyek ini kami telah menggunakan ESP8285 karena ini adalah chip kecil yang sangat menarik. Ini adalah SoC (System on Chip) kecil, dengan IoT (Internet of Things) dan kemampuan tidur nyenyak. Ia memiliki kekuatan yang sama dengan kakaknya ESP8266 dan sebagai bonus, ia hadir dengan memori flash 1MB built-in dengan banyak GPIO. Anda juga dapat menggunakan ESP8266 sebagai alternatif dan sebagian besar hal yang dibahas di artikel ini akan tetap sama.
Dalam artikel sebelumnya, saya telah menunjukkan kepada Anda bagaimana Anda dapat mendesain antena PCB Anda sendiri untuk 2.4GHz, menggunakan chip ESP8285 yang sama sebagai contoh. Anda dapat membaca artikel tersebut untuk mempelajari tentang desain antena untuk ESP8266 / ESP8285.
Jadi pada artikel ini, saya akan membahas bagaimana semua sirkuit bekerja dan akhirnya akan ada video yang menjelaskan semuanya. Saya juga telah membahas secara rinci prosedur lengkap untuk merancang dan memesan papan PCB dari PCBWay untuk desain modul ESP kami.
Pengantar ESP8285
Jika Anda tidak tahu tentang chip ESP8285 serbaguna ini, berikut adalah penjelasan singkat dengan daftar fitur. ESP8285 adalah chip kecil dengan flash dan ram 1M built-in, sangat mirip dengan ESP8286, modul ESP-01 tetapi memori flash internal membuatnya jauh lebih kompak dan lebih murah.
Chip ini menampung prosesor inti 32-bit L106 Diamond Tensilica dan hal yang sama berlaku untuk ESP8266 juga, itulah mengapa semua kode untuk ESP8266 dapat di-flash langsung ke chip ini tanpa modifikasi apa pun, dan memiliki tumpukan jaringan yang sama dengan dosis ESp8266.
ESP8285 mengintegrasikan sakelar antena, balun RF, penguat daya, penguat penerima kebisingan rendah, filter, dan modul manajemen daya. Desain yang ringkas meminimalkan ukuran PCB, dan membutuhkan sirkuit eksternal yang minimal. Jika Anda ingin mempelajari lebih lanjut tentang IC ini, Anda selalu dapat memeriksa lembar data ESP8285 perangkat di Espressif Systems.
Diagram Sirkuit Papan Pengembangan ESP
Rangkaiannya sangat sederhana dan saya telah memecahnya untuk pemahaman yang lebih baik. Skema ESP di bawah ini menunjukkan seluruh rangkaian, seperti yang Anda lihat ada delapan blok fungsional, saya akan membahas masing-masing dan menjelaskan setiap blok.
ESP8285 SOC:
Inti dari proyek ini adalah ESP8285 SoC, semua GPIO dan koneksi lain yang diperlukan ditentukan di sini.
Power Filter: Ada 7 pin power pada IC ini, pertama pin power untuk ADC dan IOs. Saya telah menyingkat mereka bersama-sama, dan menggunakan kapasitor filter daya 47uF, dan kapasitor decoupling 0,1uF untuk menyaring input DC 3,3V.
Filter PI: Filter PI adalah salah satu blok terpenting dari desain ini karena bertanggung jawab untuk memberi daya pada penguat RF dan LNA, gangguan internal atau eksternal apa pun dapat deskriptif untuk bagian ini, Jadi untuk itu, bagian RF tidak akan berfungsi. Itulah mengapa filter low pass untuk bagian LNA sangat penting. Anda dapat mempelajari lebih lanjut tentang filter PI dengan mengikuti tautan.
Osilator Kristal: Osilator kristal 40MHz berfungsi sebagai sumber jam untuk ESP8285 SoC, dan kapasitor decoupling 10pF ditambahkan seperti yang direkomendasikan oleh lembar data.
Bagian LNA: Bagian terpenting lainnya dari rangkaian ini adalah bagian LNA; di sinilah antena PCB terhubung ke pin fisik ESP. Seperti yang direkomendasikan oleh lembar data, kapasitor 5.6pF digunakan, dan seharusnya berfungsi dengan baik sebagai rangkaian yang cocok. Tetapi saya telah menambahkan dua placeholder untuk dua induktor seolah-olah dalam hal perbedaan pendapat sirkuit yang cocok berfungsi, saya selalu dapat memasukkan beberapa induktor, untuk mengubah nilai agar sesuai dengan impedansi antena.
Bagian LNA juga memiliki dua jumper PCB dengan konektor UFL. Antena PCB diatur secara default, tetapi jika aplikasi Anda memerlukan jangkauan yang lebih jauh, Anda dapat melepas jumper PCB dan menyingkat jumper untuk konektor UFL, dan Anda dapat menghubungkan antena eksternal begitu saja.
Konektor Input Baterai:
Anda dapat melihat di atas, saya telah meletakkan tiga jenis konektor baterai secara paralel karena jika Anda tidak dapat menemukannya, Anda selalu dapat meletakkan yang lain.
Header GPIO dan Header Pemrograman:
Header GPIO ada untuk mengakses pin GPIO dan header pemrograman ada untuk mem-flash Soc utama.
Sirkuit Reset Otomatis:
Di blok ini, dua transistor NPN, MMBT2222A membentuk sirkuit reset otomatis ketika Anda menekan tombol unggah di Arduino IDE, alat python mendapat panggilan, alat python ini adalah alat flash untuk perangkat ESP, alat pi ini memberikan sinyal ke konverter UART untuk mengatur ulang papan sambil menahan pin GPIO ke ground. Setelah itu, proses pengunggahan dan verifikasi dimulai.
LED Daya, LED On-Board, dan Pembagi Tegangan:
LED Daya: LED daya memiliki jumper PCB Jika Anda menggunakan papan ini seperti untuk aplikasi bertenaga baterai, Anda dapat menyolder jumper ini untuk menghemat cukup banyak daya.
LED Onboard: Banyak dev-board di pasaran memiliki LED onboard, dan board ini tidak terkecuali; GPIO16 dari IC terhubung ke led onboard. Di samping itu, ada placeholder untuk resistor 0 OHM dengan mengisi resistor 0 Ohm, Anda menghubungkan GPIO16 ke reset, dan seperti yang Anda ketahui, ini adalah langkah yang sangat penting untuk menempatkan ESP dalam mode tidur nyenyak.
Pembagi Tegangan: Seperti yang Anda ketahui, tegangan input maksimum ADC adalah 1V. Jadi, untuk mengubah kisaran input menjadi 3,3V, pembagi tegangan digunakan. Konfigurasi dibuat sedemikian rupa sehingga Anda selalu dapat menambahkan resistor secara seri dengan pin untuk mengubah Range ke 5V.
HT7333 LDO:
LDO atau Pengatur Tegangan Dropout Rendah digunakan untuk mengatur tegangan ke ESP8285 dari baterai dengan kehilangan daya minimum.
Tegangan input maksimum dari HT7333 LDO adalah 12V dan digunakan untuk mengubah tegangan baterai menjadi 3.3V, saya memilih HT7333 LDO karena ini adalah perangkat dengan arus diam yang sangat rendah. Kapasitor decoupling 4.7uF digunakan untuk menstabilkan LDO.
Tombol tekan untuk Mode Pemrograman:
Tombol tekan terhubung ke GPIO0, jika konverter UART Anda tidak memiliki pin RTS atau DTR, Anda dapat menggunakan tombol tekan ini untuk menarik GPIO0 ke ground secara manual.
Resistor Pullup dan Pulldown:
Resistor pullup dan pulldown ada seperti yang direkomendasikan oleh lembar data.
Selain itu, banyak norma dan pedoman desain diikuti saat merancang PCB. Jika Anda ingin mengetahui lebih banyak tentang itu, Anda dapat menemukannya di panduan desain perangkat keras untuk ESP8266.
Membuat Papan Pengembangan ESP8285 kami
Skema selesai, dan kita dapat melanjutkan dengan meletakkan PCB. Kami telah menggunakan perangkat lunak desain Eagle PCB untuk membuat PCB, tetapi Anda dapat mendesain PCB dengan perangkat lunak pilihan Anda. Desain PCB kami terlihat seperti ini setelah selesai.
File BOM dan Gerber tersedia untuk diunduh dari Tautan Berikut:
- File Gerber Papan Pengembang ESP8282
- ESP8282 Dev-Board BOM
Sekarang, setelah Desain kita siap, sekarang saatnya untuk membuat PCB menggunakan. Untuk melakukannya, cukup ikuti langkah-langkah di bawah ini:
Memesan PCB dari PCBWay
Langkah 1: Masuk ke https://www.pcbway.com/, daftar jika ini pertama kalinya Anda. Kemudian, di tab Prototipe PCB, masukkan dimensi PCB Anda, jumlah lapisan, dan jumlah PCB yang Anda butuhkan.
Langkah 2: Lanjutkan dengan mengklik tombol 'Kutip Sekarang'. Anda akan dibawa ke halaman di mana untuk mengatur beberapa parameter tambahan seperti jenis Papan, Lapisan, Bahan untuk PCB, Ketebalan, dan Lainnya, kebanyakan dipilih secara default, jika Anda memilih parameter tertentu, Anda dapat memilih itu di dengar.
Seperti yang Anda lihat, kami membutuhkan PCB hitam kami! jadi, saya telah memilih hitam di bagian warna topeng solder.
Langkah 3: Langkah terakhir adalah mengunggah file Gerber dan melanjutkan pembayaran. Untuk memastikan prosesnya lancar, PCBWAY akan memverifikasi apakah file Gerber Anda valid sebelum melanjutkan pembayaran. Dengan cara ini, Anda dapat yakin bahwa PCB Anda ramah fabrikasi dan akan mencapai Anda sesuai komitmen.
Merakit dan Memprogram Papan ESP8285
Setelah beberapa hari, kami menerima PCB kami dalam kotak paket yang rapi, dan kualitas PCB bagus seperti biasa. Lapisan atas dan lapisan bawah papan ditunjukkan di bawah ini:
Setelah menerima papan, saya segera mulai menyolder papan. Saya telah menggunakan stasiun solder udara panas dan banyak fluks solder untuk menyolder CPU utama, dan komponen lain pada PCB disolder melalui besi solder. Modul yang dirakit ditunjukkan di bawah ini.
Setelah selesai, saya telah menghubungkan modul FTDI terpercaya saya untuk menguji papan dengan mengunggah sketsa, Pin yang terhubung dan gambar papan yang ditunjukkan di bawah ini:
Modul FTDI Papan Pengembang ESP8285
3,3V -> 3,3V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Setelah, semua koneksi yang diperlukan selesai, saya telah menyiapkan Arduino IDE dengan memilih Generic ESP8285 Board dari Tools > Board > Generic ESP8285 Module .
Menguji dengan Sketsa Kedip LED Sederhana
Selanjutnya saatnya test board dengan cara mengedipkan LED, untuk itu saya sudah menggunakan kode berikut ini:
/ * ESP8285 Blink Blink LED biru pada modul ESP828285 * / #define LED_PIN 16 // Definisikan blinking LED pin void setup () {pinMode (LED_PIN, OUTPUT); // Inisialisasi pin LED sebagai output} // fungsi loop berjalan berulang kali selamanya void loop () {digitalWrite (LED_PIN, LOW); // Nyalakan LED (Perhatikan bahwa LOW adalah level voltase) delay (1000); // Tunggu digitalWrite kedua (LED_PIN, HIGH); // Matikan LED dengan membuat penundaan tegangan TINGGI (1000); // Tunggu dua detik}
Kode ini sangat sederhana, pertama saya telah menentukan pin LED untuk papan ini, dan itu ada di GPIO 16. Selanjutnya, saya telah menetapkan pin itu sebagai output di bagian pengaturan. Dan akhirnya, di bagian loop, saya telah menghidupkan dan mematikan pin dengan jeda satu detik di antaranya.
Menguji Sketsa Webserver di ESP8285
Setelah itu berfungsi dengan baik, saatnya untuk menguji sketsa HelloServer dari Contoh ESP8266WebServer. Saya menggunakan contoh ESP8266 karena sebagian besar kode kompatibel dengan chip esp8285. Kode contoh juga dapat ditemukan di bagian bawah halaman ini.
Kode ini juga sangat sederhana, Pertama, kita perlu mendefinisikan semua pustaka yang diperlukan, #include
Selanjutnya, kita perlu memasukkan nama dan kata sandi hotspot.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * password = STAPSK;
Selanjutnya, kita perlu mendefinisikan objek ESP8266WebServer. Contoh di sini mendefinisikannya sebagai server (80), (80) adalah nomor port.
Selanjutnya, kita perlu menentukan pin untuk LED dalam kasus saya itu adalah pin no 16.
const int led = 16;
Selanjutnya, Fungsi handleRoot () didefinisikan. Fungsi ini akan dipanggil saat memanggil alamat IP dari browser kita.
void handleRoot () {digitalWrite (led, 1); server.send (200, "text / plain", "hello from esp8266!"); digitalWrite (led, 0); }
Selanjutnya adalah fungsi pengaturan, dengar kita harus menentukan semua parameter yang diperlukan seperti-
pinMode (led, OUTPUT); // kita telah mendefinisikan pin led sebagai keluaran Serial.begin (115200); // kami telah memulai koneksi serial dengan 115200 baud WiFi.mode (WIFI_STA); // kami telah menyetel mode wifi sebagai stasiun WiFi.begin (ssid, password); lalu kita mulai koneksi wifi Serial.println (""); // baris ini memberikan spasi tambahan sementara (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } / * di loop sementara kami menguji status koneksi satu ESP dapat terhubung ke hotspot loop akan rem * / Serial.println (""); Serial.print ("Terhubung ke"); Serial.println (ssid); Serial.print ("Alamat IP:"); Serial.println (WiFi.localIP ());
Selanjutnya, kami mencetak nama dan alamat IP dari SSID yang terhubung ke jendela monitor serial.
server.on ("/", handleRoot); // metode on dari objek server dipanggil untuk menangani fungsi root server.on ("/ inline", () {server.send (200, "text / plain", "ini juga berfungsi");}); // sekali lagi kita memanggil metode on untuk / inline example server.begin (); // selanjutnya kita memulai server dengan metode begin Serial.println ("server HTTP mulai"); // dan akhirnya kami mencetak pernyataan di monitor serial. } // yang menandai akhir dari fungsi setup void loop (void) {server.handleClient (); }
Dalam fungsi loop, kita telah memanggil metode handleClient () untuk mengoperasikan esp dengan benar.
Setelah ini selesai, papan ESP8285 membutuhkan beberapa waktu untuk terhubung ke server web dan berhasil bekerja seperti yang diharapkan yang menandai akhir dari proyek ini.
Kerja lengkap papan juga dapat ditemukan di video yang ditautkan di bawah ini. Saya harap Anda menikmati artikel ini dan mempelajari sesuatu yang baru darinya. Jika Anda ragu, Anda dapat bertanya di komentar di bawah atau dapat menggunakan forum kami untuk diskusi terperinci.