- Pengenalan ESP8285
- Diagram Litar Lembaga Pembangunan ESP
- Membuat Papan Dev ESP8285 kami
- Memesan PCB dari PCBWay
- Menghimpun dan Mengatur Program Lembaga ESP8285
- Menguji dengan Sketsa Berkelip LED Mudah
- Menguji Sketsa Pelayan Web pada ESP8285
Pengawal ESP dari Espressif menjadi pilihan yang sangat popular untuk reka bentuk berasaskan IoT. Terdapat banyak jenis modul ESP dan papan pengembangan yang sudah tersedia di pasaran, di antaranya NodeMCU adalah yang paling popular. Selain itu, ESP-12E, ESP01 juga merupakan pilihan yang popular. Tetapi jika anda ingin menjadikan reka bentuk anda lebih fleksibel dan padat, kemungkinan kita harus merancang modul ESP kita sendiri dari tahap cip, dan bukannya menggunakan modul yang tersedia secara langsung. Dalam artikel ini, kita akan belajar bagaimana merancang litar dan PCB untuk menggunakan pengawal ESP (ESP8285) secara langsung tanpa menggunakan modul.
Dalam projek ini kami telah menggunakan ESP8285 kerana ia adalah cip kecil yang sangat menarik. Ini adalah SoC kecil (System on Chip), dengan IoT (Internet of Things) dan kemampuan tidur nyenyak. Ia mempunyai kekuatan yang sama dengan kakaknya ESP8266 dan sebagai bonus, ia dilengkapi dengan memori flash 1MB terbina dalam dengan banyak GPIO. Anda juga boleh menggunakan ESP8266 sebagai alternatif dan kebanyakan perkara yang dibincangkan dalam artikel ini tetap sama.
Dalam artikel sebelumnya, saya telah menunjukkan kepada anda bagaimana anda boleh merancang antena PCB anda sendiri untuk 2.4GHz, menggunakan cip ESP8285 yang sama sebagai contoh. Anda boleh membaca artikel itu untuk mengetahui mengenai reka bentuk antena untuk ESP8266 / ESP8285.
Jadi dalam artikel ini, saya akan membahas bagaimana semua litar berfungsi dan akhirnya akan ada video yang menjelaskan semuanya. Saya juga telah membahas secara terperinci prosedur lengkap untuk merancang dan memesan papan PCB dari PCBWay untuk reka bentuk modul ESP kami.
Pengenalan ESP8285
Sekiranya anda tidak mengetahui mengenai cip ESP8285 serba boleh ini, berikut adalah penjelasan ringkas dengan senarai ciri. ESP8285 adalah cip kecil dengan flash dan ram 1M terbina dalam, ia hampir sama dengan modul ESP8286, ESP-01 tetapi memori flash dalaman menjadikannya jauh lebih padat dan lebih murah.
Cip ini menempatkan pemproses teras 32-bit Tensilica L106 Diamond dan hal yang sama berlaku untuk ESP8266 juga, itulah sebabnya semua kod untuk ESP8266 dapat dipancarkan terus ke cip ini tanpa sebarang modifikasi, dan ia mempunyai rangkaian rangkaian yang sama dengan dos ESp8266.
ESP8285 mengintegrasikan suis antena, balun RF, penguat kuasa, penguat penerimaan bunyi rendah, penapis, dan modul pengurusan kuasa. Reka bentuk yang padat meminimumkan ukuran PCB, dan ia memerlukan litar luaran yang minimum. Sekiranya anda ingin mengetahui lebih lanjut mengenai IC ini, anda selalu dapat memeriksa lembar data ESP8285 peranti di Espressif Systems.
Diagram Litar Lembaga Pembangunan ESP
Litarnya sangat mudah dan saya memecahkannya untuk pemahaman yang lebih baik. Skema ESP di bawah menunjukkan keseluruhan litar, kerana anda dapat melihat terdapat lapan blok berfungsi, saya akan melalui setiap blok dan menerangkan setiap blok.
ESP8285 SOC:
Inti projek adalah SoC ESP8285, semua GPIO dan sambungan lain yang diperlukan ditentukan di sini.
Penapis Daya: Terdapat 7 pin kuasa pada IC ini, pertama adalah pin kuasa untuk ADC dan IO. Saya telah memendekkannya bersama-sama, dan menggunakan kapasitor penapis kuasa 47uF, dan kapasitor pemutusan 0.1uF untuk menyaring input 3.3V DC.
Penapis PI: Penapis PI adalah salah satu blok terpenting dalam reka bentuk ini kerana ia bertanggungjawab untuk menghidupkan penguat RF dan LNA, sebarang bunyi dalaman atau luaran boleh menjadi deskriptif untuk bahagian ini, Oleh itu, bahagian RF tidak akan berfungsi. Itulah sebabnya penapis lulus rendah untuk bahagian LNA sangat penting. Anda boleh mengetahui lebih lanjut mengenai penapis PI dengan mengikuti pautan.
Crystal Oscillator: Pengayun kristal 40MHz berfungsi sebagai sumber jam untuk SoC ESP8285, dan kapasitor decoupling 10pF ditambahkan seperti yang disarankan oleh lembar data.
Bahagian LNA: Bahagian lain yang paling penting dalam litar ini ialah bahagian LNA; di sinilah antena PCB disambungkan ke pin fizikal ESP. Seperti yang disarankan oleh lembar data, kapasitor 5.6pF digunakan, dan ia harus berfungsi dengan baik seperti rangkaian yang sepadan. Tetapi saya telah menambahkan dua tempat letak untuk dua induktor seolah-olah sekiranya perbezaan litar padanan berfungsi, saya selalu dapat memasukkan beberapa induktor, untuk mengubah nilai agar sesuai dengan impedans antena.
Bahagian LNA juga mempunyai dua pelompat PCB dengan penyambung UFL. Antena PCB ditetapkan secara lalai, tetapi jika aplikasi anda memerlukan jarak yang lebih sedikit, anda dapat melepaskan pelompat PCB dan memendekkan pelompat untuk penyambung UFL, dan anda boleh menyambungkan antena luaran seperti itu.
Penyambung Input Bateri:
Anda dapat lihat di atas, saya telah meletakkan tiga jenis penyambung bateri secara selari kerana jika anda tidak dapat mencarinya, anda selalu boleh memasang yang lain.
Header GPIO dan Header Pengaturcaraan:
Header GPIO ada untuk mengakses pin GPIO dan header pengaturcaraan ada di sana untuk memancarkan Soc utama.
Litar Tetapkan Semula Auto:
Di blok ini, dua transistor NPN, MMBT2222A membentuk litar ulang automatik apabila anda menekan butang muat naik di Arduino IDE, alat python mendapat panggilan, alat python ini adalah alat flash untuk peranti ESP, alat pi ini memberikan isyarat ke penukar UART untuk menetapkan semula papan sambil memegang pin GPIO ke tanah. Selepas itu, proses muat naik dan pengesahan bermula.
LED Kuasa, LED On-Board, dan Voltage Divider:
LED Daya: LED kuasa mempunyai pelompat PCB Jika anda menggunakan papan ini seperti aplikasi bertenaga bateri, anda boleh DE solder pelompat ini untuk menjimatkan sedikit tenaga.
LED Onboard: Banyak papan dev di pasaran mempunyai LED onboard, dan papan ini tidak terkecuali; GPIO16 IC disambungkan ke led onboard. Di samping itu, terdapat ruang letak untuk perintang 0 OHM dengan mengisi perintang 0 Ohms, anda menyambungkan GPIO16 ke tetapan semula, dan seperti yang anda ketahui, ini adalah langkah yang sangat penting untuk meletakkan ESP dalam mod tidur nyenyak.
Voltage Divider: Seperti yang anda ketahui, voltan input maksimum ADC adalah 1V. Jadi, untuk menukar julat input ke 3.3V, pembahagi voltan digunakan. Konfigurasi dibuat sedemikian rupa sehingga anda selalu dapat menambahkan perintang secara bersiri dengan pin untuk menukar Range menjadi 5V.
HT7333 LDO:
LDO atau Low Dropout Voltage Regulator digunakan untuk mengatur voltan ke ESP8285 dari bateri dengan kehilangan kuasa minimum.
Voltan input maksimum HT7333 LDO adalah 12V dan ia digunakan untuk menukar voltan bateri menjadi 3.3V, saya memilih HT7333 LDO ini kerana ia adalah peranti dengan arus sunyi yang sangat rendah. Kapasitor decoupling 4.7uF digunakan untuk menstabilkan LDO.
Tekan butang untuk Mod Pengaturcaraan:
Butang tekan disambungkan ke GPIO0, jika penukar UART anda tidak mempunyai pin RTS atau DTR, anda boleh menggunakan butang tekan ini untuk menarik GPIO0 ke tanah secara manual.
Perintang Pullup dan Pulldown:
Perintang pullup dan pulldown ada seperti yang disyorkan oleh lembaran data.
Selain itu, banyak norma dan garis panduan reka bentuk dipatuhi semasa merancang PCB. Sekiranya anda ingin mengetahui lebih lanjut mengenai perkara itu, anda boleh mendapatkannya dalam panduan reka bentuk perkakasan untuk ESP8266.
Membuat Papan Dev ESP8285 kami
Skema selesai, dan kita dapat melanjutkan dengan meletakkan PCB. Kami telah menggunakan perisian reka bentuk Eagle PCB untuk membuat PCB, tetapi anda boleh merancang PCB dengan perisian pilihan anda. Reka bentuk PCB kami kelihatan seperti ini apabila selesai.
Fail BOM dan Gerber boleh dimuat turun dari Pautan Berikut:
- Fail Gerber Dev-Board ESP8282
- ESP8282 Dev-Board BOM
Sekarang, kerana Reka Bentuk kami sudah siap, sudah tiba masanya untuk memalsukan PCB menggunakan. Untuk melakukannya, ikuti langkah-langkah di bawah:
Memesan PCB dari PCBWay
Langkah 1: Masuk ke https://www.pcbway.com/, daftar jika ini pertama kali anda. Kemudian, pada tab Prototaip PCB, masukkan dimensi PCB anda, jumlah lapisan, dan jumlah PCB yang anda perlukan.
Langkah 2: Teruskan dengan mengklik butang 'Quote Now'. Anda akan dibawa ke halaman di mana untuk menetapkan beberapa parameter tambahan seperti jenis Papan, Lapisan, Bahan untuk PCB, Ketebalan, dan Banyak Lagi, kebanyakannya dipilih secara lalai, jika anda memilih parameter tertentu, anda boleh memilih di dengar.
Seperti yang anda lihat, kami memerlukan PCB kami hitam! jadi, saya telah memilih warna hitam di bahagian warna solder solder.
Langkah 3: Langkah terakhir adalah memuat naik fail Gerber dan meneruskan pembayaran. Untuk memastikan prosesnya lancar, PCBWAY mengesahkan apakah fail Gerber anda sah sebelum meneruskan pembayaran. Dengan cara ini, anda dapat memastikan bahawa PCB anda mesra fabrikasi dan akan menghubungi anda sebagai komited.
Menghimpun dan Mengatur Program Lembaga ESP8285
Setelah beberapa hari, kami menerima PCB kami dalam kotak bungkusan yang kemas, dan kualiti PCB menjadi baik seperti biasa. Lapisan atas dan lapisan bawah papan ditunjukkan di bawah:
Setelah menerima papan, saya segera mula menyolder papan. Saya telah menggunakan stesen solder udara panas dan banyak fluks solder untuk menyolder CPU utama, dan komponen lain pada PCB disolder melalui besi pematerian. Modul yang dipasang ditunjukkan di bawah.
Setelah selesai, saya telah menghubungkan modul FTDI yang boleh dipercayai untuk menguji papan dengan memuat naik lakaran, Pin yang disambungkan dan gambar papan yang ditunjukkan di bawah:
Modul FTDI Papan Dev ESP8285
3.3V -> 3.3V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Setelah semua sambungan yang diperlukan selesai, saya telah menyiapkan Arduino IDE dengan memilih Papan Generik ESP8285 dari Alat > Papan > Modul ESP8285 Generik .
Menguji dengan Sketsa Berkelip LED Mudah
Seterusnya, sudah tiba masanya untuk menguji papan dengan mengedipkan LED, kerana itu, saya telah menggunakan kod berikut:
/ * ESP8285 Berkedip Berkedip LED biru pada modul ESP828285 * / # tentukan LED_PIN 16 // Tentukan penyediaan kekosongan pin LED berkelip () {pinMode (LED_PIN, OUTPUT); // Memulakan pin LED sebagai keluaran} // fungsi gelung berulang-ulang kali untuk gelung kosong selama-lamanya () {digitalWrite (LED_PIN, LOW); // Hidupkan LED (Perhatikan bahawa RENDAH adalah tahap voltan) kelewatan (1000); // Tunggu digitalWrite kedua (LED_PIN, TINGGI); // Matikan LED dengan membuat kelewatan voltan TINGGI (1000); // Tunggu dua saat}
Kodnya sangat mudah, pertama saya telah menentukan pin LED untuk papan ini, dan ia ada di GPIO 16. Seterusnya, saya telah menetapkan pin itu sebagai output di bahagian persediaan. Dan akhirnya, di bahagian gelung, saya telah menghidupkan dan mematikan pin dengan kelewatan satu saat di antara.
Menguji Sketsa Pelayan Web pada ESP8285
Setelah berfungsi dengan baik, sudah tiba masanya untuk menguji lakaran HelloServer dari Contoh ESP8266WebServer. Saya menggunakan contoh ESP8266 kerana kebanyakan kodnya serasi dengan cip esp8285. Contoh kod juga terdapat di bahagian bawah halaman ini.
Kod ini juga sangat mudah, Pertama, kita perlu menentukan semua perpustakaan yang diperlukan, #sertakan
seterusnya, kita perlu memasukkan nama dan kata laluan hotspot.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * kata laluan = STAPSK;
Seterusnya, kita perlu menentukan objek ESP8266WebServer. Contoh di sini mendefinisikannya sebagai pelayan (80) yang (80) adalah nombor port.
Seterusnya, kita perlu menentukan pin untuk LED sekiranya saya adalah pin no 16.
const int led = 16;
Seterusnya, fungsi handleRoot () ditakrifkan. Fungsi ini akan dipanggil ketika panggilan pada alamat IP dari penyemak imbas kami.
void handleRoot () {digitalWrite (dipimpin, 1); server.send (200, "text / plain", "hello dari esp8266!"); digitalWrite (dipimpin, 0); }
Seterusnya adalah fungsi persediaan, dengar kita harus menentukan semua parameter yang diperlukan seperti-
pinMode (dipimpin, OUTPUT); // kami telah menentukan pin led sebagai output Serial.begin (115200); // kami telah memulakan sambungan bersiri dengan 115200 baud WiFi.mode (WIFI_STA); // kami telah menetapkan mod wifi sebagai stesen WiFi.begin (ssid, password); maka kami memulakan sambungan wifi Serial.println (""); // baris ini memberi ruang tambahan sementara (WiFi.status ()! = WL_CONNECTED) {kelewatan (500); Cetakan bersiri ("."); } / * dalam gelung sementara kami sedang menguji status sambungan yang dapat disambungkan oleh ESP ke hotspot yang akan dilancarkan oleh gelung * / Serial.println (""); Serial.print ("Bersambung ke"); Serial.println (ssid); Serial.print ("Alamat IP:"); Serial.println (WiFi.localIP ());
Seterusnya, kami mencetak nama dan alamat IP SSID yang disambungkan ke tetingkap monitor bersiri.
server.on ("/", handleRoot); // kaedah kaedah objek pelayan dipanggil untuk mengendalikan fungsi root server.on ("/ inline", () {server.send (200, "text / plain", "ini berfungsi juga");}); // sekali lagi kita telah memanggil kaedah untuk pelayan contoh inline.begin (); // seterusnya kita memulakan pelayan dengan kaedah permulaan Serial.println ("Pelayan HTTP dimulakan"); // dan akhirnya kami mencetak pernyataan di monitor bersiri. } // yang menandakan berakhirnya fungsi persediaan gelung kosong (void) {server.handleClient (); }
Dalam fungsi gelung, kami telah memanggil kaedah handleClient () untuk mengendalikan esp dengan betul.
Setelah ini selesai, papan ESP8285 memerlukan sedikit masa untuk berhubung dengan pelayan web dan berjaya berfungsi seperti yang diharapkan yang menandakan berakhirnya projek ini.
Kerja papan yang lengkap juga boleh didapati di video yang dipautkan di bawah. Saya harap anda menikmati artikel ini dan mengetahui sesuatu yang baru. Sekiranya anda mempunyai keraguan, anda boleh bertanya dalam komen di bawah atau boleh menggunakan forum kami untuk perbincangan terperinci.