- Komponente potrebne
- ESP8266 Wi-Fi modul
- Povezivanje LPC2148 s ESP8266 za serijsku komunikaciju
- Kružni dijagram i veze
- Koraci uključeni u programiranje UART0 u LPC2148 za povezivanje ESP8266
- Upravljanje LED-om pomoću web-poslužitelja IoT ESP8266 s LPC2148
ESP8266 Wi-Fi primopredajnik pruža način povezivanja mikrokontrolera s mrežom. Široko se koristi u IoT projektima jer je jeftin, malen i lak za upotrebu. Ranije smo ga koristili za izradu web poslužitelja pomoću web poslužitelja Raspberry i Arduino.
U ovom ćemo uputstvu povezati Wi-Fi modul ESP8266 s mikrokontrolerom ARM7-LPC2148 i stvoriti web poslužitelj za kontrolu LED diode spojene na LPC2148. Tok rada ići će ovako:
- Pošaljite AT naredbe s LPC2148 na ESP8266 da biste konfigurirali ESP8266 u AP načinu
- Povežite Wi-Fi prijenosnog računala ili računala s pristupnom točkom ESP8266
- Stvorite HTML web stranicu na računalu s IP adresom pristupne točke web poslužitelja ESP8266
- Stvorite program za LPC2148 za upravljanje LED-om prema vrijednosti primljenoj od ESP8266

Ako je vaš potpuno novi ESP8266 Wi-Fi modul, posjetite donje poveznice kako biste se upoznali s ESP8266 Wi-Fi modulom.
- Početak rada s ESP8266 Wi-Fi primopredajnikom (1. dio)
- Početak rada s ESP8266 (2. dio): Korištenje AT naredbi
- Početak rada s ESP8266 (3. dio): Programiranje ESP8266 s Arduino IDE-om i bljeskanje njegove memorije
Komponente potrebne
Hardver:
- ARM7-LPC2148
- ESP8266 Wi-Fi modul
- FTDI (USB na UART TTL)
- LED
- IC regulatora napona 3.3V
- Breadboard
Softver:
- KEIL uVision
- Flash Magic Tool
- Kit
ESP8266 Wi-Fi modul

ESP8266 je jeftini široko korišteni Wi-Fi modul za ugrađene projekte koji zahtijeva malu snagu od 3,3 V. Koristi samo dvije žice TX i RX za serijsku komunikaciju i prijenos podataka između ESP8266 i bilo kojeg mikrokontrolera koji ima UART priključak.
Šema pin za ESP8266 Wi-Fi modul

- GND, uzemljenje (0 V)
- TX, Prijenos podataka bit X
- GPIO 2, Ulaz / izlaz opće namjene br. 2
- CH_PD, Isključivanje čipa
- GPIO 0, Ulaz / izlaz opće namjene br. 0
- RST, poništi
- RX, primanje podatkovnog bita X
- VCC, napon (+3,3 V)
Postavljanje pločice ESP8266
ESP8266 zahtijeva stalnu opskrbu od 3,3 V i nije prihvatljiv za ploče. Tako smo u našem prethodnom vodiču o ESP8266 izradili pločicu za ESP8266 s regulatorom napona od 3,3 V, tipkom RESET i postavkom kratkospojnika za prebacivanje načina (AT naredba ili način bljeskalice). Također se može postaviti na ploče bez upotrebe perf ploče.
Ovdje smo zalijepili sve komponente na pločici kako bismo napravili vlastitu ESP8266 Wi-Fi ploču

Naučite međusobno povezivanje ESP8266 s različitim mikrokontrolerima slijedeći donje linkove:
- Početak rada s ESP8266 (3. dio): Programiranje ESP8266 s Arduino IDE-om i bljeskanje njegove memorije
- Povezivanje ESP8266 sa STM32F103C8: Izrada web poslužitelja
- Slanje e-pošte pomoću MSP430 Launchpad i ESP8266
- Povezivanje ESP8266 s mikrokontrolerom PIC16F877A
- Nadzor smetlišta temeljen na IOT-u pomoću Arduina i ESP8266
Sve projekte temeljene na ESP8266 možete pronaći ovdje.
Povezivanje LPC2148 s ESP8266 za serijsku komunikaciju
Da bismo povezali ESP8266 s LPC2148, moramo uspostaviti UART serijsku komunikaciju između ova dva uređaja za slanje AT naredbi s LPC2148 na ESP8266 za konfiguriranje Wi-Fi modula ESP8266. Da biste saznali više o naredbama ESP8266 AT, slijedite vezu.
Dakle, da bismo koristili UART komunikaciju u LPC2148, moramo inicijalizirati UART port u LPC2148. LPC2148 ima dva ugrađena UART porta (UART0 i UART1).
UART igle u LPC2148

|
UART_Port |
TX_PIN |
RX_PIN |
|
UART0 |
P0,0 |
P0.1 |
|
UART1 |
P0.8 |
P0.9 |
Inicijalizacija UART0 u LPC2148
Kao što znamo da su igle LPC2148 pribadače opće namjene, zato moramo koristiti registar PINSEL0 za upotrebu UART0. Prije inicijalizacije UART0 obavijestite o ovim UART registrima koji se koriste u LPC2148 za upotrebu UART značajke.
UART upisuje u LPC2148
Tablica u nastavku prikazuje neke važne registre koji se koriste u programiranju. U našim budućim vodičima vidjet ćemo ukratko o drugim registrima koji se koriste za UART u LPC2148.
x-0 za UART0 i x-1 za UART1:
|
REGISTAR |
PRIJAVITE IME |
KORISTITI |
|
UxRBR |
Primanje registra međuspremnika |
Sadrži nedavno primljenu vrijednost |
|
UxTHR |
Registar holdinga prijenosa |
Sadrži podatke za prijenos |
|
UxLCR |
Registar upravljanja linijom |
Sadrži UART format okvira (broj podatkovnih bitova, zaustavni bit) |
|
UxDLL |
Dijelni zasun LSB |
LSB vrijednosti generatora brzine prijenosa UART |
|
UxDLM |
Dijelni zasun MSB |
MSB od vrijednosti generatora brzine prijenosa UART |
|
UXIER |
Omogući registraciju prekida |
Koristi se za omogućavanje UART0 ili UART1 izvora prekida |
|
UxIIR |
Registar identifikacije prekida |
Sadrži statusni kod koji ima prioritet i izvor prekida na čekanju |
Kružni dijagram i veze

Poveznice između LPC2148, ESP8266 i FTDI prikazane su u nastavku
|
LPC2148 |
ESP8266 |
FTDI |
|
TX (P0,0) |
RX |
NC |
|
RX (P0.1) |
TX |
RX |
ESP8266 napaja se preko regulatora napona od 3,3 V, a FTDI i LPC2148 napajaju se putem USB-a.
Zašto je FTDI ovdje?U ovom uputstvu povezali smo RX pin FTDI (USB na UART TTL) s ESP8266 TX pinom koji je dalje povezan s LPC2148 RX pinom, tako da možemo vidjeti odgovor modula ESP8266 koristeći bilo koji terminalni softver poput kita, Arduino IDE. Ali za to postavite brzinu prijenosa u skladu s brzinom prijenosa ESP8266 Wi-Fi modula. (Moja brzina prijenosa je 9600).

Koraci uključeni u programiranje UART0 u LPC2148 za povezivanje ESP8266
Ispod su programski koraci za povezivanje ESP8266 s LPC2148 što će ga učiniti IoT kompatibilnim.
Korak 1: - Prvo moramo inicijalizirati UART0 TX & RX pinove u registru PINSEL0.
(P0.0 kao TX i P0.1 kao RX) PINSEL0 = PINSEL0 - 0x00000005;
Korak 2: - Sljedeći u U0LCR (Registar za upravljanje linijom), postavite DLAB (Bit za pristup zasunu djelitelja) na 1 kako im to omogućuje, a zatim postavite broj zaustavnih bitova kao 1 i duljinu okvira podataka od 8-bita.
U0LCR = 0x83;
Korak 3: - Sada je važan korak koji treba zabilježiti je postavljanje vrijednosti U0DLL i U0DLM, ovisno o vrijednosti PCLK i željenoj brzini prijenosa. Uobičajeno za ESP8266 koristimo brzinu prijenosa od 9600. Dakle, pogledajmo kako postaviti brzinu prijenosa od 9600 za UART0.
Formula za izračun brzine prijenosa:

Gdje, PLCK: Frekvencija perifernog sata (MHz)
U0DLM, U0DLL: Registri djelitelja generatora brzine prijenosa
MULVAL, DIVADDVAL: Ovi registri su vrijednosti generatora frakcija
Za brzinu prijenosa 9600 s PCLK = 15 MHz

MULVAL = 1 & DIVADDVAL = 0
256 * U0DLM + U0DLL = 97,65
Dakle U0DLM = 0 i dobivamo U0DLL = 97 (razlomak nije dozvoljen)
Dakle, koristimo sljedeći kod:
U0DLM = 0x00; U0DLL = 0x61; (Heksadecimalna vrijednost 97)
Korak 4: - Konačno, moramo onemogućiti DLA (Divisor Latch Access) onemogućiti na LCR.
Tako jesmo
U0LCR & = 0x0F;
Korak 5: - Za prijenos znaka, učitajte bajt koji će se poslati u U0THR i pričekajte dok se bajt ne prenese, što označava THRE postaje HIGH.
praznina UART0_TxChar (char ch) { U0THR = ch; while ((U0LSR & 0x40) == 0); }
Korak 6: - Za prijenos niza koristi se donja funkcija. Za slanje string podataka jedan po jedan koristili smo funkciju znakova iz gornjeg koraka.
void UART0_SendString (char * str) { uint8_t i = 0; while (str! = '\ 0') { UART0_TxChar (str); i ++; } }
Korak 7: - Za primanje niza ovdje se koristi funkcija rutinske usluge prekida jer će ESP8266 Wi-Fi modul prenositi podatke natrag na RX pin LPC2148 kad god pošaljemo AT naredbu ili kad god ESP8266 pošalje podatke LPC2148, kao što mi šaljemo podatke web poslužitelju ESP8266.
Primjer: Kada pošaljemo AT naredbu na ESP8266 s LPC2148 (“AT \ r \ n”), tada dobivamo odgovor “OK” od Wi-Fi modula.
Dakle, ovdje koristimo prekid za provjeru vrijednosti primljene od Wi-Fi modula ESP8266 jer ISR rutina usluge prekida ima najveći prioritet.
Dakle, kad god ESP8266 pošalje podatke na RX pin LPC2148, prekida se postavlja i izvršava se funkcija ISR.
Korak 8: - Da biste omogućili prekide za UART0, upotrijebite sljedeći kod
VICintEnable je vektorsko prekid omogućiti registrirajte se koristi kako bi se omogućilo prekidati za UART0.
VICIntEnable - = (1 << 6);
VICVecCnt10 je vektorsko prekidom kontrole registar koji dodjeljuje utor za UART0.
VICVectCntl0 = (1 << 5) - 6;
Dalje je VICVectaddr0 vektorski registar adresa prekida koji ima ISR adresu rutine usluge prekida.
VICVectAddr0 = (nepotpisano) UART0_ISR;
Zatim moramo dodijeliti prekid za registar me uspremnika RBR Receive. Dakle, u registru za omogućavanje prekida (U0IER) postavili smo za RBR. Dakle, poziva se rutina usluge prekida (ISR) kad primimo podatke.
U0IER = IER_RBR;
Napokon, imamo funkciju ISR koja mora obaviti određeni zadatak kada primamo podatke s Wi-Fi modula ESP8266. Ovdje samo čitamo primljenu vrijednost iz ESP8266 koja je prisutna u U0RBR i pohranjujemo tu vrijednost u UART0_BUFFER. Napokon, na kraju ISR-a VICVectAddr treba postaviti s nultom ili lažnom vrijednošću.
void UART0_ISR () __irq { nepotpisani znak IIRValue; IIRValue = U0IIR; IIRVrijednost >> = 1; IIRVrijednost & = 0x02; ako (IIRValue == IIR_RDA) { UART_BUFFER = U0RBR; uart0_broj ++; if (uart0_count == BUFFER_SIZE) { uart0_count = 0; } } VICVectAddr = 0x0; }
Korak 9: - Kako bi ESP8266 Wi-Fi modul trebao biti postavljen u AP načinu, moramo poslati poštovane AT naredbe iz LPC2148 pomoću funkcije UART0_SendString () .
The AT naredbe koje se šalju ESP8266 od LPC2148 su navedene u nastavku. Nakon slanja svake AT naredbe ESP8266 odgovara "U redu"
1. šalje AT na ESP8266
UART0_SendString ("AT \ r \ n"); kašnjenje_ms (3000);
2. Šalje AT + CWMODE = 2 (Postavljanje ESP8266 u AP načinu).
UART0_SendString ("AT + CWMODE = 2 \ r \ n"); kašnjenje_ms (3000);
3. Šalje AT + CIFSR (za dobivanje IP-a AP-a)
UART0_SendString ("AT + CIFSR \ r \ n"); kašnjenje_ms (3000);
4. Šalje AT + CIPMUX = 1 (za višestruke veze)
UART0_SendString ("AT + CIPMUX = 1 \ r \ n"); kašnjenje_ms (3000);
5. Šalje AT + CIPSERVER = 1,80 (ZA Omogućavanje ESP8266 SERVERA SA OTVORENIM LUKOM)
UART0_SendString ("AT + CIPSERVER = 1,80 \ r \ n"); kašnjenje_ms (3000);
Programiranje i bljeskanje hex datoteke na LPC2148
Za programiranje ARM7-LPC2148 potreban nam je alat keil uVision & Flash Magic. Ovdje se za programiranje ARM7 Stick putem mikro USB priključka koristi USB kabel. Napisujemo kod pomoću Keila i stvaramo hex datoteku, a zatim se HEX datoteka bljeska na ARM7 stick pomoću Flash Magic. Da biste saznali više o instaliranju keil uVision i Flash Magic, te kako ih koristiti, slijedite vezu Početak rada s mikrokontrolerom ARM7 LPC2148 i programirajte ga pomoću Keil uVision.
Kompletni program dan je na kraju tutorijala.
Napomena: Tijekom prijenosa HEX datoteke na LPC2148 ne smijete napajati Wi-Fi modul ESP8266 i FTDI modul koji je povezan s LPC2148.
Upravljanje LED-om pomoću web-poslužitelja IoT ESP8266 s LPC2148
Korak 1: - Nakon što prenesete HEX datoteku na LPC2148, spojite FTDI modul na računalo putem USB kabela i otvorite softver terminala za kit.

Odaberite Serial, a zatim odaberite COM port prema vašem računalu ili LAPTOP-u koji je bio (COM3). Brzina prijenosa je 9600.
Korak 2: - Sada resetirajte ESP8266 Wi-Fi modul ili samo ISKLJUČITE I ISKLJUČITE NAPAJANJE, terminal za kitove prikazat će odgovor ESP8266 Wi-Fi modula kako je prikazano dolje. \

Korak 3: - Sada pritisnite gumb RESET na LPC2148. Nakon toga LPC2148 počinje slati AT naredbe na ESP8266. Odgovor toga možemo vidjeti na terminalu za kit.

Korak 4: - Kao što vidite na slici iznad, ESP8266 je postavljen u MODE 2 koji je AP način i adresa APIP-a je 192.168.4.1. Imajte na umu ovu adresu jer će ta adresa biti teško kodirana u HTML kod web stranice za kontrolu LED diode spojene na LPC2148.
Važno : Kada je ESP8266 u načinu AP-a, morate povezati računalo s ESP8266 AP-om. Pogledajte sliku ispod mog modula ESP8266 prikazuje AP u imenu ESP_06217B (otvoren je i nema lozinku).

Korak 5: - Nakon spajanja računala na ESP8266 AP, otvorite bilježnicu i kopirajte i zalijepite sljedeću web stranicu HTML programa. Obavezno promijenite APIP adresu u skladu s Wi-Fi modulom ESP8266
Dobrodošli u Circuit Digest
ESP8266 Sučelje s LPC2148: Izrada web poslužitelja za upravljanje LED diodom
LED UKLJ. LED ISKLJNa ovoj HTML stranici stvorili smo dva gumba s hipervezama za uključivanje i isključivanje LED diode s web stranice.
Konačno spremite dokument s bilježnicom kao.html proširenje

Web stranica će se prikazati kao dolje u web pregledniku.

Ovdje je adresa AP IP adresa 192.168.4.1, a mi šaljemo vrijednosti @ i% za uključivanje i isključivanje LED diode pomoću ove donje logike u LPC2148.
while (1) { if (uart0_count! = 0) { COMMAND = UART0_BUFFER; if (COMMAND == LEDON) // Logika za postavljanje LED-a UKLJUČENO ili ISKLJUČENO ovisno o primljenoj vrijednosti iz ESP8266 { IOSET1 = (1 << 20); // Postavlja OUTPUT HIGH delay_ms (100); } inače ako (ZAPOVIJED == LEDOFF) { IOCLR1 = (1 << 20); // Postavlja OUTPUT LOW delay_ms (100); } } }
Na ovaj se način uređajem može upravljati daljinski pomoću mikrokontrolera ESP8266 i ARM7 LPC2148. Kompletni kod i video s objašnjenjima dati su u nastavku.
