Përmbajtje:

Flash ESP-01 (ESP8266) Pa përshtatës USB-në-serik duke përdorur Raspberry Pi: 3 hapa
Flash ESP-01 (ESP8266) Pa përshtatës USB-në-serik duke përdorur Raspberry Pi: 3 hapa

Video: Flash ESP-01 (ESP8266) Pa përshtatës USB-në-serik duke përdorur Raspberry Pi: 3 hapa

Video: Flash ESP-01 (ESP8266) Pa përshtatës USB-në-serik duke përdorur Raspberry Pi: 3 hapa
Video: $5 WiFi Camera Setup | ESP32 Wifi Setup view on Mobile phone 2024, Korrik
Anonim
Flash ESP-01 (ESP8266) Pa përshtatës USB-në-serik duke përdorur Raspberry Pi
Flash ESP-01 (ESP8266) Pa përshtatës USB-në-serik duke përdorur Raspberry Pi

Ky udhëzues ju udhëzon se si të filloni programimin e mikrokontrolluesit tuaj ESP8266 në një modul ESP-01 WIFI. E tëra që ju nevojitet për të filluar (përveç modulit ESP-01, natyrisht) është

  • Raspberry Pi
  • Telat e kërcyesit
  • Rezistencë 10K

Doja të rinovoja një llambë të vjetër të krevatit në llambën e natës LED të kontrolluar nga Alexa. Asgjë e mrekullueshme thjesht ndezja/fikja e tij duke përdorur komandën zanore. Kam porositur modulin më të thjeshtë ESP-01 WIFI, stafetë dhe tela me LED në internet, dhe krejtësisht harrova të porosisja përshtatës USB-në-serial për të programuar mikrokontrolluesin ESP8266. Por meqenëse kisha një Raspberry Pi dhe të dy Raspberry Pi dhe bordi ESP-01 kishin kunja UART, kuptova se mund të përdorja RPi tim për të programuar ESP8266 pa përshtatës.

Hapi 1: Konfiguroni Rapberry Pi

Konfiguroni Rapberry Pi
Konfiguroni Rapberry Pi

Kam përdorur Raspberry Pi 3 Model B+, megjithatë, udhëzimet duhet të funksionojnë në versione të tjera, veçanërisht në modelin B.

Pra, gjërat e para së pari - ne duhet të aktivizojmë UART në Pi.

Shko te cilësimet e konfigurimit të RPi. Në dritaren e terminalit drejtuar

$ sudo raspi-config

Shkoni te 5 Opsionet e Ndërfaqes, pastaj zgjidhni P6 Serial. Ju pastaj bëtë dëshirë A dëshironi që një predhë identifikimi të jetë e arritshme në seri? zgjidhni pasi ne nuk duam të përdorim UART për të drejtuar Pi pa kokë, por për të komunikuar me pajisje të tjera, prandaj në ekranin e mëposhtëm kur pyeteni A dëshironi që pajisjet e portit serik të jenë të aktivizuara? zgjidh. Rinisni Pi sipas kërkesës. UART tani duhet të aktivizohet për Komunikimin Serial në pinin RX dhe TX të Raspberry Pi 3. Shënim: pas kësaj duhet të shfaqet një hyrje e re enable_uart = 1 në fund të /boot/config.txt.

Hapi 2: Lidhni ESP-01 me Raspberry Pi

Lidhni ESP-01 me Raspberry Pi
Lidhni ESP-01 me Raspberry Pi

Tani ne fillojmë të lidhim gjithçka së bashku.

Së pari, identifikoni në fuqinë tuaj RPi 3.3V dhe kunjat GND (tokësore) për të fuqizuar mikrokontrolluesin ESP8266, kunjat TXD (transmetoni) dhe RXD (merrni) për të komunikuar, dhe dy kunjat me qëllime të përgjithshme për të operuar ESP8266 (kunjat që mund të vendosen ose të larta ose i ulët). Shikoni rregullimin e pinit në pinout.xyz ose shkruani në terminal:

$ pinout

Së dyti identifikoni kunjat e nevojshëm në ESP-01. Por në fillim duhet të kemi mirëkuptim për kunjat ESP-01. Kam gjetur një numër burimesh të dobishme në dispozicion në internet për t'ju ndihmuar në këtë drejtim. Ky është më i shkurtri, ndërsa ky jep një shpjegim shumë më të mirë. Shkurtimisht: Janë 8 kunja, do të na duhen 7 prej tyre, përkatësisht kunjat e energjisë VCC dhe kunjat GND (tokësore) për energji, kunjat TXD dhe RXD për komunikimin, dhe RST (rivendosje), CH_PD (Chip Power Down, nganjëherë etiketuar CH_EN ose aktivizoni çipin) dhe GPIO0 për të operuar modulin. Zakonisht ESP8266 funksionon në një mënyrë të rregullt, por kur ngarkoni një kod në ESP8266 ai duhet të jetë në një mënyrë flash. Për modalitetin e funksionimit të rregullt ose normal moduli duhet të lidhet me energjinë (padyshim), por edhe kunja CH_PD duhet të lidhet me VCC përmes një 10K (kjo vlerë ndryshon në burime të ndryshme, kam gjetur vlera deri në 3K) tërheqje rezistencë në nisje. nga ana tjetër, për të hyrë në modalitetin e ndezjes ose programimit, duhet të vendosni pin GPIO0 në nisje. Për të parandaluar rrjedhën e pakufizuar të rrymës përmes GPIO0 kur është e tokëzuar, rekomandohet lidhja e GPIO0 me tokën përmes një rezistence të ulët të rezistencës 300Ω - 470Ω (më shumë për këtë këtu). Kodi RST siç sugjeron emri rivendos (ose rinis) MCU. Gjatë funksionimit normal mund të lidhet me VCC përmes një rezistence tërheqëse 10K, por duhet të jetë e bazuar për të rivendosur mikrokontrolluesin. Ndërsa është gjithmonë e mundur të përdorni butona fizikë për të tokëzuar kunjat RST dhe GPIO0 (ose madje të lidhni manualisht telat për të simuluar një buton), është përvojë shumë më e këndshme të përdorni kunjat e Raspberry Pi për të vendosur tension të lartë dhe të ulët në RST dhe GPIO0 të modulit kunjat Gjithashtu nuk ka nevojë për rezistorë 10K dhe 470Ω atëherë.

Tani duke qenë të vetëdijshëm për veçoritë e këmbëve ESP-01, ne mund të fillojmë të lidhim gjithçka së bashku. Ju mund të përdorni tabelën e mëposhtme si referencë së bashku me vizatimin e mësipërm:

ESP-01 Raspberry Pi

  • VCC (3.3V) pin #1 (3.3V)
  • GND pin #6 (GND)
  • Kodi TXD #10 (RXD / BCM 15)
  • Kodi RXD #8 (TXD / BCM 14)
  • Kodi CH_PD #1 (3.3V)
  • RST pin #3 (BCM 2)
  • GPIO 0 pin #5 (BMC 5)

Lidhni kunjin VCC të fundit. Shembulli që keni lidhur me VCC pin modulin tuaj Wi-Fi do të ndizet. Përdorni ekran ose minicom për të kontrolluar nëse RPi dhe ESP8266 mund të komunikojnë duke përdorur UART (shënim: mund t'ju duhet të instaloni ekran ose minicom së pari, pasi ato nuk duket se janë instaluar në Raspbian si parazgjedhje).

Përdorimi i ekranit:

$ sudo screen /dev /serial0 115200

Duke përdorur minicom run:

$ sudo minicom -b 115200 -o -D /dev /serial0

Shënim: shumë burime online sugjerojnë lidhjen me ESP8266 në /dev /ttyAMA0, por kjo nuk funksionon me RPi 3 ose më vonë (përfshirë zero W) sipas dokumentacionit RPi. Lidhu nëpërmjet /dev /serial0 në vend ose /dev /ttyS0.

Pasi të keni hyrë në ekran ose minikom, përdorni komandat AT për të komunikuar me ESP8266. Shkruani AT, pastaj shtypni Enter dhe më pas shtypni Ctrl+J për të dërguar komandën. Ju duhet të merrni OK në përgjigje. Lista e komandave AT të disponueshme mund të gjendet në espressiff.com ose vetëm këtu.

Nga ana tjetër, pajisjet janë të lidhura fizikisht dhe flasin me njëra -tjetrën, duke filluar nga programimi i kunjave RPi GPIO dhe, më në fund, vetë ESP8266.

Hapi 3: Konfigurimi i softuerit (Python për të operuar dhe Arduino IDE në program)

PJESA 1. Përdorimi i python për të ndërruar modalitetet ESP8266

Siç u përmend më lart, është e përshtatshme të përdorni kunjat GPIO të RPI për të ndryshuar mënyrat e funksionimit të ESP8266. Shkrova dy kode themelore python që e vendosën ESP8266 në mënyrë të rregullt ose programimi.

Mënyra e rregullt: Për ta futur mikrokontrolluesin në modalitetin e funksionimit të rregullt, ne vetëm duhet ta fuqizojmë atë dhe të lidhim CH_PD përmes rezistencës tërheqëse në VCC, por për të kaluar MCU nga programimi në modalitetin normal, ne duhet ta rivendosim atë (mendo rinisjen). Për ta bërë këtë në RPi ne do të tërheqim shkurtimisht GPIO-në e RPi të lidhur me pin RST në ESP-01 (si parazgjedhje kunja RPi që kam përdorur për rivendosje është vendosur në HIGH). Sa shkurt? Për mua kjo është një pyetje spekulative. Mund të provoni intervale të ndryshme kohore, por zbulova se 200 - 500 ms funksionojnë mirë. Shkruani në komente nëse keni një ide më të mirë. Ruani kodin tuaj si reset.py

#!/usr/bin/python

import RPi. GPIO si GPIO koha e importit GPIO.setmode (GPIO. BOARD) # vendos identifikimin e GPIO me numrat fizikë të pinit resetPin = 3 # identifiko pinin fizik RPi të lidhur me pin ESP8266 RST GPIO.setup (resetPin, GPIO. OUT) # set reset pin si dalje GPIO.output (resetPin, GPIO. LOW) # rënie e tensionit në RST pin time.sleep (.2) # prit.2 s GPIO.output (resetPin, GPIO. HIGHT) # rivendos tensionin në RST pin GPIO. cleanup () # rivendosni kunjat në RPI për të parandaluar paralajmërimet e ardhshme të ekzekutimit

  • Mënyra e programimit: Për të vënë MCU në modalitetin e programimit, ne duhet të fuqizojmë ESP8266 me GPIO0 të bazuar, ose ta rivendosim alternativisht atë dhe të vendosim GPIO0 gjatë nisjes (përsëri kohëzgjatja e saktë e rënies së tensionit nuk është e njohur për mua, kështu që mos jini rreptësisht të udhëhequr nga vlerat e përdorura). Ruani kodin si flash.py ose shkarkoni më poshtë. Suksesi i veprimeve është si më poshtë:

    • tërheq poshtë kunjin RST
    • tërhiqni kunjin GPIO0
    • tërhiqni kunjin RST
    • tërhiqni pinin GPIO0

#!/usr/bin/python

importo RPi. GPIO si GPIO kohën e importit GPIO.setmode (GPIO. BOARD) # vendos identifikimin e GPIO me numrat fizikë të pinit resetPin = 3 # identifikoni pinin fizik RPi të lidhur me ESP8266 pin pin RST flashPin = 5 # identifikoni pin fizik RPi të lidhur me pin ESP8266 GPIO0 GPIO.setup (resetPin, GPIO. OUT) # vendosni pinin e rivendosjes si dalje GPIO.setup (flashPin, GPIO. OUT) # vendosni pinin flash si dalje GPIO.output (resetPin, GPIO. LOW) # rënie të tensionit në kohën e pinit RST. gjumi (.2) # nevoja për këtë pritje është GPIO spekulative. dalje (flashPin, GPIO. LOW) # rënie e tensionit në GPIO0 time.sleep (.2) # nevoja për këtë pritje është GPIO.output spekulative (resetPin, GPIO. HIGHT) # filloni të nisni ESP8266 time.sleep (.5) # prisni që ESP8266 të fillojë GPIO.ouput (flashPin. GPIO. HIGH) # rivendosni tensionin në GPIO pinGPIO.cleanup () # rivendosni kunjat në RPI për të parandaluar paralajmërimet e ardhshme të ekzekutimit

Në lejet e ndryshimit terminal:

$ sudo chmod +x flash.py

$ sudo chmod +x reset.py

Tani e tutje sa herë që keni nevojë të hyni në modalitetin e programimit të ekzekutuar në terminal:

$ python /flash.py

pas ngarkimit të kodit për të hyrë në modalitetin e funksionimit normal, ekzekutoni:

$ python /reset.py

Në këtë pikë ju gjithashtu mund të dëshironi të përditësoni firmuerin ESP8266. Ka shumë mësime në internet se si ta bëni këtë, kështu që unë nuk do të hyj në detaje se si ta bëj atë.

PJESA 2. Konfigurimi i Arduino IDE

nëse tashmë keni të instaluar Arduino IDE, prapëseprapë mund të dëshironi të kaloni nëpër seksion duke u siguruar që IDE juaj është gati për ESP8266.

Në Rapberry Pi mund të përdorni Arduino IDE për të programuar ESP8266 tuaj. Ka dy mënyra për të instaluar IDE në RPi:

  • përmes vijës komanduese nga depot duke përdorur apt-get install
  • shkarkoni dhe instaloni manualisht nga arduino.cc.

Unë sugjeroj fuqimisht të shkoni në rrugën e fundit. Versioni IDE nga depot duket të jetë i vjetëruar dhe ju me siguri do të duhet të bëni më shumë para se të jeni gati për të filluar programimin e ESP8266. Për të shmangur sherrin, shkoni te faqja e shkarkimit Arduino.cc dhe shkarkoni versionin Linux ARM. Moskompresoni dhe instaloni tjetër: Nëse emri i skedarit të shkarkuar duket diçka si kjo arduino-X. Y. Z-linuxarm.tar.xz, në dosjen e shkarkimit ekzekutoni:

$ tar -xvf arduino-X. Y. Z-linuxarm.tar.xz

Kjo duhet të nxjerrë skedarin nga dosja arduino-X. Y. Z. Drejtuar:

$ sudo./arduino-X. Y. Z/install.sh

Kjo duhet të instalojë IDE. Pasi të përfundojë instalimi, filloni IDE.

  • Nga Arduino IDE shkoni te Skedari> Preferencat. Shikoni për "URL shtesë të Menaxherit të Bordit" në fund të dritares së preferencave. Futni https://arduino.esp8266.com/stable/package_esp8266com_index.json në fushën "URL -të shtesë të Menaxherit të Bordit", klikoni butonin "OK".
  • Shkoni te Mjetet> Bordi: XXX> Menaxheri i bordeve. Në dritaren përdorni kërkimin ose lëvizni poshtë, zgjidhni menunë e tabelës ESP8266 dhe klikoni instaloni. Prisni që instalimi të përfundojë dhe mbyllë dritaren.
  • Përsëri shkoni te Tools> Board: XXX dhe kërkoni bordet ESP8266. Zgjidhni Modulin Generic ESP8266.

Tani IDE është gati të programojë ESP8266. Shkruani ose ngjisni kodin e dëshiruar në dritaren IDE dhe ruajeni. Klikoni Ngarko. Nga terminal run flash.py, kjo duhet ta vendosë bordin tuaj në modalitetin e programimit. Prisni disa minuta që IDE të përfundojë përpilimin dhe ngarkimin (shënim: ESP-01 zakonisht vjen me 2 LED, LED blu do të ndizet ndërsa kodi po ngarkohet) dhe ekzekutoni reset.py. Tani bordi juaj ESP-01 është gati për të kryer detyrat.

Recommended: