Isi kandungan:
- Langkah 1: Konfigurasikan Rapberry Pi
- Langkah 2: Sambungkan ESP-01 ke Raspberry Pi
- Langkah 3: Persediaan Perisian (Python to Operate dan Arduino IDE to Program)
Video: Flash ESP-01 (ESP8266) Tanpa Penyesuai USB ke siri Menggunakan Raspberry Pi: 3 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Instructable ini membimbing anda bagaimana memulakan pengaturcaraan mikrokontroler ESP8266 anda pada modul ESP-01 WIFI. Yang anda perlukan untuk memulakan (tentu saja selain modul ESP-01) adalah
- Pai raspberi
- Wayar pelompat
- Perintang 10K
Saya mahu mengubah lampu tempat tidur lama menjadi lampu LED LED yang dikendalikan oleh Alexa moden. Tidak ada yang mewah hanya menghidupkan / mematikannya menggunakan arahan suara. Saya memesan modul, relay dan wayar ESP-01 termudah dengan LED secara dalam talian, dan saya terlupa untuk memesan penyesuai USB-ke-siri untuk memprogram mikrokontroler ESP8266. Tetapi kerana saya mempunyai Raspberry Pi dan kedua Raspberry Pi dan papan ESP-01 mempunyai pin UART, saya fikir saya boleh menggunakan RPi saya untuk memprogramkan ESP8266 tanpa penyesuai.
Langkah 1: Konfigurasikan Rapberry Pi
Saya menggunakan Raspberry Pi 3 Model B +, namun arahan harus berfungsi pada versi lain, terutama pada model B.
Jadi, perkara pertama perlu dilakukan - kita perlu mengaktifkan UART pada Pi.
Pergi tetapan konfigurasi RPi. Dalam tetingkap terminal dijalankan
$ sudo raspi-config
Pergi ke 5 Pilihan Antaramuka, kemudian pilih P6 Serial. Anda kemudian meminta Adakah anda mahukan shell log masuk dapat diakses melalui siri? pilih kerana kita tidak mahu menggunakan UART untuk menjalankan Pi tanpa kepala, tetapi untuk berkomunikasi dengan peranti lain, maka pada layar berikut ketika ditanya Adakah anda mahu perkakasan port bersiri diaktifkan? pilih. Mulakan semula Pi seperti yang diminta. UART kini harus diaktifkan untuk Komunikasi Bersiri pada pin RX dan TX Raspberry Pi 3. Catatan: selepas ini akan muncul entri baru allow_uart = 1 pada akhir /boot/config.txt.
Langkah 2: Sambungkan ESP-01 ke Raspberry Pi
Sekarang kita pergi untuk menyatukan semuanya.
Pertama, kenal pasti pada pin kuasa RPi 3.3V dan pin GND (ground) untuk menghidupkan mikrokontroler ESP8266, pin TXD (transmit) dan RXD (terima) untuk berkomunikasi, dan dua pin tujuan umum untuk mengendalikan ESP8266 (pin yang boleh ditetapkan sama ada tinggi atau rendah). Cari susunan pin di pinout.xyz atau ketik terminal:
$ pinout
Kedua, kenal pasti pin yang diperlukan pada ESP-01. Tetapi pada awalnya kita perlu memahami pin ESP-01. Saya dapati sejumlah sumber berguna yang terdapat di internet untuk membantu anda dalam hal ini. Yang ini adalah yang paling pendek, sementara yang ini memberikan penjelasan yang jauh lebih baik. Ringkasnya: Terdapat 8 pin, kita memerlukan 7 daripadanya, iaitu pin VCC power dan GND (ground) untuk power, pin TXD dan RXD untuk komunikasi, dan RST (reset), CH_PD (Chip Power Down, kadang-kadang berlabel CH_EN atau cip membolehkan) dan GPIO0 untuk mengendalikan modul. Biasanya ESP8266 beroperasi dalam mod biasa, tetapi ketika memuat naik kod ke ESP8266, ia harus berada dalam mod kilat. Untuk mod operasi biasa atau biasa modul perlu disambungkan ke kuasa (jelas), tetapi juga pin CH_PD harus disambungkan ke VCC melalui 10K (nilai ini berbeza dalam sumber yang berbeza, saya dapati nilai hingga 3K) pull-up perintang semasa but. di sisi lain, untuk memasuki mod berkelip atau pengaturcaraan, anda perlu membumikan pin GPIO0 semasa boot. Untuk mengelakkan aliran arus yang tidak terhad melalui GPIO0 ketika dibumikan, disarankan untuk menyambungkan GPIO0 ke tanah melalui beberapa perintang rintangan rendah 300Ω - 470Ω (lebih lanjut mengenai ini di sini). Pin RST seperti namanya menetapkan semula (atau memulakan semula) MCU. Semasa operasi normal, ia mungkin disambungkan ke VCC melalui resistor penarik 10K, tetapi harus dibumikan untuk mengatur semula mikrokontroler. Walaupun selalu boleh menggunakan butang fizikal untuk membumikan pin RST dan GPIO0 (atau bahkan memasang wayar secara manual untuk mensimulasikan butang), adalah pengalaman yang lebih menyenangkan untuk menggunakan pin Raspberry Pi untuk menetapkan voltan tinggi dan rendah pada RST dan GPIO0 modul pin. Juga tidak perlu ada perintang 10K dan 470Ω.
Setelah menyedari keistimewaan pin ESP-01, kita dapat mula menghubungkan semuanya bersama-sama. Anda boleh menggunakan jadual berikut sebagai rujukan bersama dengan gambar di atas:
ESP-01 Raspberry Pi
- Pin VCC (3.3V) # 1 (3.3V)
- Pin GND # 6 (GND)
- Pin TXD # 10 (RXD / BCM 15)
- Pin RXD # 8 (TXD / BCM 14)
- CH_PD pin # 1 (3.3V)
- Pin RST # 3 (BCM 2)
- GPIO 0 pin # 5 (BMC 5)
Sambungkan pin VCC yang terakhir. Contohnya anda menyambungkan pin VCC modul Wi-Fi anda akan dihidupkan. Gunakan skrin atau minicom untuk memeriksa sama ada RPi dan ESP8266 dapat berkomunikasi menggunakan UART (nota: anda mungkin perlu memasang skrin atau minicom terlebih dahulu, kerana mereka sepertinya tidak dipasang pada Raspbian secara lalai).
Menggunakan larian skrin:
$ sudo screen / dev / serial0 115200
Menggunakan larian minicom:
$ sudo minicom -b 115200 -o -D / dev / serial0
Catatan: banyak sumber dalam talian mencadangkan untuk menyambung ke ESP8266 pada / dev / ttyAMA0, tetapi ini tidak berfungsi RPi 3 atau lebih baru (termasuk sifar W) seperti dalam dokumentasi RPi. Sambungkan melalui / dev / serial0 sebagai ganti atau / dev / ttyS0.
Setelah anda memasuki skrin atau minicom, gunakan perintah AT untuk berkomunikasi dengan ESP8266. Ketik AT, kemudian tekan Enter dan kemudian tekan Ctrl + J untuk menghantar arahan. Anda semestinya baik-baik saja sebagai tindak balas. Senarai arahan AT yang tersedia boleh didapati di espressiff.com atau di sini.
Peranti disambungkan secara fizikal dan bercakap antara satu sama lain, kita dapat memprogram pin GPIO RPi dan akhirnya ESP8266 itu sendiri.
Langkah 3: Persediaan Perisian (Python to Operate dan Arduino IDE to Program)
BAHAGIAN 1. Menggunakan python untuk menukar mod ESP8266
Seperti yang disebutkan di atas, lebih mudah menggunakan pin GPIO RPI untuk menukar mod operasi ESP8266. Saya menulis dua kod python asas yang memasukkan ESP8266 ke mod biasa atau pengaturcaraan.
Mod biasa: Untuk memasukkan mikrokontroler ke mod operasi biasa, kita hanya perlu menyalakannya dan menyambungkan CH_PD melalui pull-up resistor ke VCC, tetapi untuk menukar MCU dari pengaturcaraan ke mod normal, kita perlu menetapkannya semula (fikir mulakan semula). Untuk melakukan itu pada RPi, kami akan menarik GPIO RPi yang disambungkan ke pin RST secara ringkas pada ESP-01 (secara lalai pin RPi yang saya gunakan untuk menetapkan semula ditetapkan ke TINGGI). Bagaimana secara ringkas? Bagi saya itu adalah soalan spekulatif. Anda boleh mencuba selang waktu yang berbeza, tetapi saya dapati 200 - 500 ms berfungsi dengan baik. Tulis dalam komen jika anda mempunyai idea yang lebih baik. Simpan kod anda sebagai reset.py
#! / usr / bin / ular sawa
import RPi. GPIO sebagai GPIO masa import GPIO.setmode (GPIO. BOARD) # menetapkan pengenalan GPIO dengan nombor pin fizikal resetPin = 3 # mengenal pasti pin fizikal RPi yang disambungkan ke pin ESP8266 RST GPIO.setup (resetPin, GPIO. OUT) # set semula pin sebagai output GPIO.output (resetPin, GPIO. LOW) # turun voltan pada pin pin RST.sleep (.2) # tunggu.2 s GPIO.output (resetPin, GPIO. HIGH) # pulihkan voltan pada pin RST GPIO. cleanup () # pin penetapan semula pada RPI untuk mengelakkan amaran runtime pada masa hadapan
-
Mod pengaturcaraan: Untuk memasukkan MCU ke mod pengaturcaraan, kita perlu menghidupkan ESP8266 dengan GPIO0 yang dibumikan, atau sebagai gantinya menetapkannya semula dan membumikan GPIO0 semasa boot (sekali lagi jangka masa penurunan voltan tidak begitu diketahui oleh saya, jadi jangan tegas berpandukan nilai terpakai). Simpan kod sebagai flash.py atau muat turun di bawah. Pergantian tindakan adalah seperti berikut:
- tarik pin RST
- tarik pin GPIO0
- tarik pin RST
- tarik pin GPIO0
#! / usr / bin / ular sawa
import RPi. GPIO sebagai GPIO masa import GPIO.setmode (GPIO. BOARD) # set pengenalan GPIO dengan nombor pin fizikal resetPin = 3 # kenal pasti pin fizikal RPi disambungkan ke pin pin ESP8266 RPP = 5 # kenal pasti pin fizikal RPi disambungkan ke pin GP80 ESP8266 GPIO.setup (resetPin, GPIO. OUT) # tetapkan pin set semula sebagai output GPIO.setup (flashPin, GPIO. OUT) # tetapkan pin kilat sebagai output GPIO.output (resetPin, GPIO. LOW) # turun voltan pada masa pin RST. tidur (.2) # keperluan untuk penantian ini adalah spekulatif GPIO.output (flashPin, GPIO. LOW) # penurunan voltan pada waktu GPIO0.sleep (.2) # keperluan untuk penantian ini adalah spekulatif GPIO.output (resetPin, GPIO. HIGH) # mulakan boot ESP8266 time.sleep (.5) # tunggu ESP8266 untuk boot GPIO.ouput (flashPin. GPIO. HIGH) # pulihkan voltan pada GPIO pinGPIO.cleanup () # tetapkan semula pin pada RPI untuk mengelakkan amaran runtime masa depan
Dalam kebenaran perubahan terminal:
$ sudo chmod + x flash.py
$ sudo chmod + x reset.py
Mulai sekarang bila-bila masa anda perlu memasuki mod pengaturcaraan yang dijalankan di terminal:
$ python /flash.py
setelah memuat naik kod untuk memasuki mod operasi biasa jalankan:
$ python /reset.py
Pada ketika ini anda mungkin juga ingin mengemas kini firmware ESP8266. Terdapat banyak tutorial dalam talian mengenai cara melakukannya, jadi saya tidak akan menerangkan tentang cara melakukannya.
BAHAGIAN 2. Menetapkan Arduino IDE
jika anda sudah memasang Arduino IDE, anda masih boleh melihat bahagian ini untuk memastikan IDE anda siap untuk ESP8266.
Pada Rapberry Pi anda boleh menggunakan Arduino IDE untuk memprogram ESP8266 anda. Terdapat dua cara untuk memasang IDE pada RPi:
- melalui baris arahan dari repositori menggunakan apt-get install
- muat turun dan pasang secara manual dari arduino.cc.
Saya sangat menyarankan untuk pergi ke jalan terakhir. Versi IDE dari repositori nampaknya sudah usang dan anda pasti perlu melakukan lebih banyak perkara sebelum anda bersedia untuk memulakan pengaturcaraan ESP8266. Untuk mengelakkan kerumitan, pergi ke halaman muat turun Arduino.cc dan muat turun versi Linux ARM. Kompres dan pasang seterusnya: Sekiranya nama fail yang dimuat turun kelihatan seperti arduino-X. Y. Z-linuxarm.tar.xz ini, dalam folder muat turun jalankan:
$ tar -xvf arduino-X. Y. Z-linuxarm.tar.xz
Ini tidak boleh memampatkan fail ke folder arduino-X. Y. Z. Jalankan:
$ sudo./arduino-X. Y. Z/install.sh
Ini harus memasang IDE. Setelah pemasangan selesai, mulakan IDE.
- Dari Arduino IDE pergi ke Fail> Keutamaan. Cari "URL Pengurus Papan Tambahan" di bahagian bawah tetingkap pilihan. Masukkan https://arduino.esp8266.com/stable/package_esp8266com_index.json ke dalam bidang "URL Pengurus Papan Tambahan", klik butang "OK".
- Pergi ke Alat> Papan: XXX> Pengurus Papan. Di tetingkap gunakan carian atau tatal ke bawah, pilih menu papan ESP8266 dan klik pasang. Tunggu pemasangan selesai dan tutup tetingkap.
- Sekali lagi pergi ke Tools> Board: XXX dan cari papan ESP8266. Pilih Modul ESP8266 Generik.
Kini IDE bersedia untuk memprogram ESP8266. Ketik atau tampal kod yang dikehendaki ke tetingkap IDE dan simpan. Klik Muat naik. Dari terminal yang menjalankan flash.py, ini akan menjadikan papan anda ke mod pengaturcaraan. Tunggu beberapa minit sehingga IDE selesai menyusun dan memuat naik (nota: ESP-01 biasanya dilengkapi dengan 2 LED, LED biru akan berkelip semasa kod sedang dimuat) dan jalankan reset.py. Kini papan ESP-01 anda sudah siap untuk menjalankan tugas.
Disyorkan:
Penyesuai Format Besar untuk Kamera Tanpa Cermin Anda: 10 Langkah (dengan Gambar)
Penyesuai Format Besar untuk Kamera Tanpa Cermin Anda: Kamera digital moden sangat kecil, tetapi kadang-kadang besar itu cantik. Kamera filem format besar, yang paling kerap direka untuk menerima 4 " x5 " filem kepingan potong, mempunyai daya tarikan tertentu. Ia bukan hanya kerana filem besarnya keren, tetapi juga
Cara Menukar Nama Penyesuai Tanpa Wayar Anda di Windows 8/10: 10 Langkah
Bagaimana Mengubah Nama Penyesuai Tanpa Wayar Anda di Windows 8/10: Ingin menarik perhatian rakan anda? Ingin membuat mereka berkata " Wow! Bagaimana anda melakukannya? &Quot;. Baca dengan betul Instructable ini dan anda akan mendapat reaksi hebat dalam masa yang singkat
Tukar Papan Kekunci Dari Din ke Mini-Din Tanpa Penyesuai: 5 Langkah
Tukar Papan Kekunci Dari Din ke Mini-Din Tanpa Penyesuai: Jadi apa yang perlu dilakukan dengan dua papan kekunci, besi pematerian, dan masa yang lebih sedikit untuk membuang antara ujian CS. Bagaimana dengan pemindahan kabel papan kekunci? Anda perlukan: Dua papan kekunci, satu oldie dengan penyambung DIN, yang lain lebih baru dengan penyambung mini DIN / PS2 Besi solder
Penyesuai Rangkaian Tanpa Wayar Cuaca Menggunakan Botol Air: 4 Langkah (dengan Gambar)
Penyesuai Rangkaian Tanpa Wayar Cuaca Menggunakan Botol Air: Semasa di Iraq, saya menggunakan sebotol air untuk melembapkan penyesuai rangkaian wayarles saya. Ini adalah prosedur yang mudah, tetapi sangat berkesan. Jelas, pengajaran ini akan sangat berguna bagi lelaki dan wanita di Timur Tengah, tetapi juga dapat digunakan
Penyejuk / Dudukan Laptop Kos Sifar (Tanpa Lem, Tanpa Penggerudian, Tanpa Mur & Baut, Tanpa Skru): 3 Langkah
Penyejuk / Dudukan Laptop Kos Sifar (Tanpa Lem, Tanpa Penggerudian, Tanpa Mur & Baut, Tanpa Skru): KEMASKINI: SILA KINDLY VOTE FOR MY INSTRUCTABLE, TERIMA KASIH ^ _ ^ ANDA JUGA MUNGKIN MENGUNDI LAIN MASUK DI www.instructables.com/id/Zero-Cost-Aluminium-Furnace-No-Propane-No-Glue-/ ATAU MUNGKIN MEMBERIKAN suara untuk rakan baik saya