Upravljanje opterećenjem na NodeMCU pomoću mobilne aplikacije. Rad sa ESP8266: početno podešavanje, nadogradnja firmvera, Wi-Fi komunikacija, slanje/primanje podataka na PC višekorisnički MIMO i OFDMA

Funkcije ESP8266 WiFi biblioteke su vrlo slične funkcijama biblioteke za obični WiFi štit.

Lista razlika:

  • wifi. način rada (m): odaberite način rada WIFI_AP(pristupna tačka), WIFI_STA(klijent), ili WIFI_AP_STA(oba načina u isto vrijeme).
  • wifi. softAP (ssid) stvara otvorenu pristupnu tačku
  • wifi. softAP (ssid, lozinka) kreira pristupnu tačku sa WPA2-PSK enkripcijom, lozinka mora imati najmanje 8 znakova
  • wifi. macAdresa (mac ) omogućava vam da dobijete MAC adresu u klijentskom modu
  • wifi. softAPmacAdresa (mac) omogućava vam da dobijete MAC adresu u režimu pristupne tačke
  • wifi. localIP() omogućava vam da dobijete IP adresu u klijentskom modu
  • wifi. softAPIP() omogućava vam da dobijete IP adresu u režimu pristupne tačke
  • wifi. RSSI() još nije implementirano
  • wifi. printDiag(Serial) ; prikazuje dijagnostičke informacije
  • Klasa WiFiUDP podržava primanje i slanje multicast paketa u klijentskom modu. Za slanje multicast paketa koristite umjesto toga udp . startPacket (adresa, port) funkcija udp . beginPacketMulticast(addr, port, WiFi .localIP()). Kada očekujete multicast pakete koristite umjesto toga udp . početi (luka) funkcija udp . beginMulticast(WiFi . localIP () , multicast_ip_addr, port). možeš koristiti udp . odredišni IP() da biste utvrdili da li je paket poslan na multicast adresu ili je namijenjen vama. Multicast funkcije nisu podržane u AP načinu.

WiFiServer, WiFiClient, i WiFiUDP Radim na isti način kao i sa bibliotekom običnog WiFi štita. Četiri primjera su uključena u ovu biblioteku.

Ticker

Biblioteka Ticker može se koristiti za izvršavanje ponavljajućih događaja nakon određenog vremena. Dva primjera su uključena u isporuku.

Trenutno se ne preporučuje blokiranje I/O operacija (mreža, serijski port, operacije sa datotekama) u funkcijama povratnog poziva. Umjesto blokiranja, postavite oznaku u funkcije povratnog poziva i provjerite ovu zastavicu u glavnoj petlji.

EEPROM

Ova biblioteka se malo razlikuje od standardnog Arduino EEPROM-a. Treba pozvati funkciju EEPROM. početak (veličina) svaki put prije početka čitanja ili pisanja, veličina (navedena u bajtovima) odgovara veličini podataka koje namjeravate koristiti u EEPROM-u. Veličina podataka mora biti između 4 i 4096 bajtova.

Funkcija EEPROM. pisati ne zapisuje podatke u fleš memoriju odmah, morate koristiti funkciju EEPROM. počiniti() svaki put kada želite da sačuvate podatke u memoriji. Funkcija EEPROM. kraj() također piše podatke, a također i oslobađa RAM iz podataka koji su snimljeni. EEPROM biblioteka koristi jedan sektor u fleš memoriji, počevši od adrese 0x7b000, za skladištenje podataka. Isporuka uključuje tri primjera rada sa EEPROM-om.

I2C (žičana biblioteka)

Implementiran je samo master mod, frekvencija je približno do 450 kHz. Prije korištenja I2C sabirnice, trebate odabrati SDA i SCL pinove pozivanjem funkcije žica. igle (int sda, int scl), na primjer žica. igle (0 , 2 ) za ESP-01 modul. Za ostale module, zadani pinovi su 4(SDA) i 5(SCL).

SPI

SPI biblioteka podržava cijeli Arduino SPI API, uključujući transakcije, uključujući fazu takta (CPHA). Polaritet sata (CPOL) još nije podržan (SPI_MODE2 i SPI_MODE3 ne rade).

ESP8266 API

U objektu je implementirana podrška za funkcije specifične za ESP8266 (režim dubokog mirovanja i watchdog timer) ESP. Funkcija ESP. duboko spavanje (mikrosekunde, način rada) stavlja modul u režim dubokog mirovanja. Parametar način rada može poprimiti vrijednosti: WAKE_DEFAULT, WAKE_RFCAL, WAKE_NO_RFCAL, WAKE_RF_DISABLED. GPIO16 mora biti povezan na RESET za izlazak iz režima dubokog spavanja.

Funkcije ESP. wdtEnable(), ESP. wdtDisable(), i ESP. wdtfeed() kontrolirati watchdog timer.

ESP. resetovati() ponovo učitava modul

ESP. getFreeHeap()

ESP. getFreeHeap() vraća količinu slobodne memorije

ESP. getChipId() vraća ESP8266 čip IDE, int 32bit

ESP. getFlashChipId() vraća ID flash čipa, int 32bit

ESP. getFlashChipSize() vraća veličinu fleš memorije u bajtovima, kako je definisano SDK-om (može biti manja od stvarne veličine).

ESP. getFlashChipSpeed(void) vraća frekvenciju fleš memorije, u Hz.

ESP. getCycleCount() vraća broj CPU ciklusa od pokretanja, 32-bitni bez predznaka. Može biti korisno za precizno mjerenje vremena vrlo kratkih operacija.

OneWire biblioteka

OneWire biblioteka je prilagođena za ESP8266 (promjene su napravljene u OneWire.h) Ako imate OneWire biblioteku instaliranu u Arduino/libraries folderu, onda će se koristiti, a ne iz kompleta za isporuku.

mDNS biblioteka ESP8266mDNS

Biblioteka vam omogućava da implementirate u svoj program odgovor na višestruke DNS upite za lokalnu zonu, na primjer, “esp8266.local”. Trenutno je podržana samo jedna zona. Omogućava vam pristup ESP8266 WEB serveru po imenu, a ne samo po IP adresi. Više informacija možete pronaći u priloženom primjeru i u readme datoteci ove biblioteke.

Servo biblioteka

Biblioteka vam omogućava kontrolu servo motora. Podržava do 24 servo na svim dostupnim GPIO. Prema zadanim postavkama, prvih 12 servo uređaja će koristiti Timer0 i bit će neovisni o svim drugim procesima. Sljedećih 12 servo uređaja će koristiti Timer1 i dijelit će resurse s drugim funkcijama koristeći Timer1. Većina servo uređaja će raditi sa ESP8266 3.3v kontrolnim signalom, ali neće raditi s 3.3v i zahtijevat će zasebno napajanje. Ne zaboravite spojiti GND ovog izvora na GND ESP8266

  • DHT11 - koristite sljedeće parametre za inicijalizaciju DHT dht (DHTPIN , DHTTYPE , 15 )
  • NeoPixelBus - Arduino NeoPixel biblioteka za esp8266
  • PubSubClient MQTT biblioteka od @Imroy. Članak na našoj web stranici o ovoj biblioteci
  • Comfast CF-WU715N je najjeftiniji bežični WiFi mrežni adapter koji sam mogao pronaći na otvorenim prostorima online trgovina. Tako će se u današnjoj recenziji naći zanimljiv proizvod koji će biti veoma popularan kod onih koji vole da štede novac. Pogledajmo njegove karakteristike, naučimo kako instalirati drajvere i konfigurirati Comfast WU715N WiFi prijemnik.

    Ima i moćnijeg "brata" - Comfast CF-WU720N. Ima skoro iste parametre, ali zbog produktivnijeg hardvera kućište je mnogo veće.

    Odmah želim rezervirati da Comfast WU715N nije najjeftiniji adapter - postoje i jeftiniji, ali njihov kvalitet neće zadovoljiti ni najneiskusnijeg korisnika. Stoga sam se malo potrudio da pronađem zaista odgovarajući proizvod koji bi bio jeftin, ali u isto vrijeme i kvalitetan. I našao sam model od malo poznatog u Rusiji, ali vrlo popularnog u Kini proizvođača mrežne opreme Comfast.


    Izgled mrežnog adaptera Comfast CF-WU715N

    Izvana, adapter ima vrlo malu veličinu - ne više od novčića od dvije rublje. Zahvaljujući tome, povezan sa laptopom ili računarom preko USB porta, uopšte ne ometa i ne privlači pažnju.

    Budući da sam naručio u internetskoj trgovini u najjeftinijem paketu, uključivao je samo sam uređaj i instalacioni disk, koji sadrži program za postavljanje i drajvere za adapter - u stvari, ništa drugo nije potrebno za rad.


    Ako ga uzmete u markiranoj kutiji, izgledat će ovako:

    Drajveri adaptera su pogodni za Windows 7 i 8, tako da će svaki savremeni računar moći da radi sa njim.

    Specifikacije

    Ovo je najisplativiji model iz linije ovog proizvođača, pa bi bilo naivno očekivati ​​nešto natprirodno od njega. Ali specifikacije omogućavaju vam da radite stabilno i bez problema sa bežičnom vezom unutar malog stana.

    • Čipset - Ralink RT5370
    • Antena - 2 decibela
    • Interfejs - USB 2.0
    • WiFi standard - B, G, N
    • Brzina - do 150 Mbps
    • Enkripcija - WEP, WPA, WPA2

    Od mogućnosti ovog adaptera treba napomenuti da on može raditi ne samo u standardnoj ulozi klijenta, primajući signal preko WiFi-a do računara, već i kao pristupna tačka, istovremeno primajući i distribuirajući bežični signal. Tu je i ugrađena WiFi Direct funkcija. To je kada se uređaji međusobno povezuju putem WiFi mreže bez korištenja rutera. Kupovinom dva od ovih adaptera i instaliranjem na različite računare, možete uspostaviti komunikaciju između njih bez postavljanja tradicionalnog lokalna mreža.

    Odnosno, tri u jednom odjednom - nije loše za proračunski model!

    Instalacija i konfiguracija drajvera Comfast CF-WU715N

    Sada da vidimo kako je ovaj mali postavljen. bežični adapter.
    Ubacujemo ga u USB port, a isporučeni disk sa drajverima za adapter i konfiguracijskim programom na CD-Rom. Bolje je da ne izgubite disk, jer će tada biti problematično preuzeti upravljački program za mrežni adapter - ruska verzija, kao i bilo koja druga, osim kineske i engleske, nije dostupna na službenoj web stranici proizvođača . Kroz dugu pretragu koristeći metodu „naučnog bockanja“, ipak sam uspio pronaći stranicu modela Comfast CF-WU715N, ali nisam našao nikakav softver u odjeljku za preuzimanje.


    Dakle, ako se bojite da ćete izgubiti instalacioni CD, preporučujem da kopirate sve datoteke sa njega na HDD računar ili fleš disk.

    Nakon otvaranja njegovog sadržaja, vidjet ćemo fascikle čiji naziv ukazuje da postoji sav potreban softver za rad kako u Windows 7/8, tako iu Linuxu i MacOS-u.

    Moramo pokrenuti datoteku 3070setup.exe. Prvo, slažemo se sa ugovorom o licenci, nakon čega biramo vrstu instalacije - samo Comfast drajveri ili zajedno sa vlasničkom aplikacijom - kineski prijevod je malo loš, ali suština sadržaja je jasna.

    Ako ne planirate koristiti svoj bežični adapter za WiFi Direct konekcije, onda ne možete instalirati sam program za postavljanje, jer su sve veze na mrežu uspostavljene standardnim sredstvima Windows.


    Nakon instalacije, karakteristična bežična ikona će se pojaviti na donjoj traci sa ikonama u Windows-u. Možete kliknuti na njega i odabrati svoj WiFi sa liste dostupnih mreža.

    Ali idemo drugim putem i vidimo šta nam nudi instalirani Ralink Wireless Utility koji se nalazio na disku.

    Program je vrlo jednostavan i omogućava vam upravljanje glavnom funkcionalnošću mrežnog adaptera. Klikom na ikonu "Magnifier" vidjet ćemo istu listu bežičnih mreža, ali sa detaljnim opisom njihovih svojstava - kvalitet signala, tip šifriranja, MAC adresa pristupne tačke itd.

    Odabiremo WiFi koji nam je potreban i povezujemo se s njim korak po korak. Nakon toga, sve informacije o trenutnoj vezi bit će prikazane u glavnom prozoru programa.

    Ako želite da se povežete direktno na drugi računar koji takođe ima bežični adapter koji podržava WiFi Direct, kliknite na WiFi ikonu u aplikaciji i otvorite novi prozor

    Da biste omogućili, dvaput kliknite na zonu ovog prozora i postavite ime našeg računara da se detektuje

    Nakon toga radimo isto na drugim računarima, nakon čega će svi računari koji se nalaze u pristupnoj zoni za povezivanje biti prikazani u glavnom prozoru. Nažalost, zbog nedostatka drugog adaptera koji radi sa ovom tehnologijom, još nemam priliku da detaljno pokažem kako se to događa, pa pratite novi poseban članak!

    Comfast adapter kao pristupna tačka

    Pogledajmo sada treću mogućnost Comfast mrežnog adaptera - da radi kao pristupna tačka (Access Point), odnosno da distribuira Internet putem WiFi-a na druge uređaje.

    Da biste aktivirali ovaj način rada, nalazimo "strelicu" u donjem desnom kutu na panelu ikona iu prozoru koji se otvori, ikonu Ralink Utility programa u obliku slova "R".

    Kliknemo na njega desnom tipkom miša i vidimo nekoliko stavki. Trenutno nas zanimaju drugi i treći - “Prebacite se na STA + AP režim” i “Prebacite se na režim pristupne tačke”.

    • STA + AP je način rada u kojem će adapter istovremeno primati internet putem wifi-a sa rutera i odmah ga distribuirati drugima.
    • AP je jednostavan način pristupne tačke u kojem vaš računar mora biti povezan na Internet putem kabla ili druge bežične mreže mrežni adapter- direktno ili preko rutera, nije važno - i Comfast će samo distribuirati signal, ali ga neće primati.

    Mi ćemo izabrati AP način rada, jer će u praksi, kada nemate ruter i trebate da povežete internet sa jednog računara povezanog sa provajderom, on će biti traženiji.

    Otvoriće se novi prozor u kojem sa liste treba da izaberemo mrežni adapter ili karticu koja je trenutno već povezana na Internet i sa koje će se distribuirati preko našeg Comfasta.

    Nakon toga, naša tačka će raditi, a ikona aplikacije na panelu će se promijeniti u slovo "A". Ponovnim otvaranjem ovog uslužnog programa, već možete konfigurisati postavke pristupne tačke.

    Da biste to učinili, kliknite na prvu ikonu u izborniku i postavite SSID, frekvenciju, kanal, tip šifriranja i lozinku.

    Nakon toga, nova mreža će se pojaviti na listi za povezivanje.

    Test brzine

    Sve je to odlično, ali šta je sa rezultatom rada? Uostalom, kupujemo mrežni adapter prvenstveno za stabilan rad na Internetu. Zbog toga smo vršili mjerenja brzine putem servisa SpeedTest.net. Prvo, za referentnu tačku, brzina računara spojenog na ruter preko kabla.

    Nakon toga - preko Comfast adaptera

    Kao rezultat, imamo 27 MB/s za preuzimanje preko bežičnog adaptera naspram 39 MB/s za kablovsku i nešto nižu brzinu preuzimanja - 24 naspram 41. Vrlo dobre performanse za takav uređaj, što nam garantuje dovoljno velika brzina kada pretražujete internet preko WiFi veze.

    I skoro isti rezultati adaptera kada radi kao pristupna tačka - na njega smo spojili iPad Air i izmjerili performanse kroz aplikaciju iz istog SpeedTest-a.

    Konačno, zadnje očitavanje u režimu istovremenog rada kao klijent i tačka, kada je adapter primio signal preko WiFi-a i duže ga distribuirao na iPad-u.

    Kao što vidite, brzina je još malo pala, što i ne čudi, budući da je sada naš uređaj radio dvostruki posao i prisustvo još jedne karike u lancu od provajdera do krajnjeg korisnika, kao i uvijek, nije utjecalo na rezultat na najbolji način.

    Pitate se gdje kupiti ovaj mrežni adapter? Naručio sam ga u svojoj omiljenoj kineskoj online prodavnici AliExpress i koštao je oko 5 dolara, što je bilo oko 170 rubalja s našim novcem u trenutku kupovine. Sad je zbog dolara malo poskupio, ali gdje se još može naći nešto vrijedno za te pare??

    Ako imate bilo kakvih pitanja, odgovorit ću u komentarima..

    Ako je članak pomogao, u znak zahvalnosti molim vas da učinite 3 jednostavne stvari:
    1. Pretplatite se na naše YouTube kanal
    2. Pošaljite link do publikacije na svoj zid na društvenoj mreži koristeći dugme iznad

    Što odražava najvažnije promjene u novom izdanju standarda u odnosu na trenutni 802.11ac.

    Imajte na umu da će 802.11ax raditi u frekventnim opsezima od 2,4 i 5 GHz (ranije je 802.11ac pokušavao da napusti opseg od 2,4 GHz). Također, nova specifikacija će četiri puta povećati broj FFT OFDM podnosača. Ali najvažnija promjena je da će s izdavanjem 802.11ax, razmak podnosećih također biti smanjen za faktor četiri, dok će postojeći propusni opseg kanala ostati nepromijenjen:

    Slika 1 - Razmak između podnosaca u 802.11ax

    Dakle, na gornjoj slici vidimo uže intervale između podnosača. Uz promjene u OFDM-u, dodata je i 1024-QAM modulacija, koja će povećati maksimalnu (teoretski maksimalno moguću) brzinu prijenosa podataka na skoro 10 Gbps.

    Pređimo na razmatranje 802.11ax tehnologija na fizičkom nivou

    U 802.11ax mehanizam za formiranje snopa (automatsko formiranje snopa prema pretplatniku) će biti finaliziran u odnosu na raniju verziju 802.11ac. Prema ovom mehanizmu, beamformer pokreće proceduru sondiranja kanala sa nultim paketom podataka. Pritom mjeri nivo aktivnosti u kanalu i koristi te informacije za izračunavanje matrice kanala. Matrica kanala se tada koristi za fokusiranje RF energije prema svakom pojedinačnom korisniku. Zajedno sa formiranjem snopa, standard 802.11ax će podržavati dvije nove višekorisničke tehnologije za Wi-Fi: Multi-User MIMO i Multi-User OFDMA.

    Višekorisnički MIMO i OFDMA

    Standard 802.11ax će definirati dva načina rada:

    Jedan korisnik (jedan korisnik). U ovom načinu rada, bežični STA šalju i primaju podatke AP-ovima jedan po jedan čim pristupe mediju. Mehanizam pristupa je opisan u .

    Višekorisnički (višekorisnički način rada). Ovaj način rada omogućava pristupnoj tački da radi sa više STA u isto vrijeme. Standard ovaj način dalje dijeli na višekorisnički downlink i uplink.

    DownlinkMkrajnjiUser omogućava pristupnu tačku AP istovremeno prenijeti podatke na više bežičnih STA koji se opslužuju u području radio pokrivenosti AP-a. Postojeći standard 802.11ac već definira ovu funkciju. Ali uplink za više igrača je inovacija.

    UplinkMkrajnjiUser omogućava pristupnu tačku AP istovremeno primati podatke od više bežičnih STA. Ovo je nova karakteristika standarda 802.11ax koja nije postojala ni u jednoj od prethodnih verzija Wi-Fi standarda.

    U višekorisničkom načinu rada standard također definira dva Različiti putevi multipleksiranje više korisnika u određenom području: Multi-User MIMO i OFDMA. Za obje ove metode, AP djeluje kao centralni kontroler, slično kao što LTE ćelijska bazna stanica upravlja multipleksiranjem korisnika u području usluge. Pogledajmo MU-MIMO i OFDMA detaljnije.

    Višekorisnički MIMO

    802.11ax uređaji će koristiti tehnike formiranja zraka (posuđene od 802.11ac) za usmjeravanje paketa do više, prostorno razdvojenih korisnika u isto vrijeme. To jest, AP će izračunati matricu kanala po korisniku i upravljati paralelnim snopovima za različite korisnike, pri čemu svaki snop sadrži pakete za svog određenog korisnika.

    802.11ax podržava slanje do osam višekorisničkih MIMO tokova u isto vrijeme. Pored toga, svaki MU-MIMO tok može imati svoj MCS (brzina bita i stepen modulacije). Može se organizirati proizvoljan broj tokova za različite korisnike. Sa MU-MIMO prostornim multipleksiranjem, pristupne tačke se mogu uporediti sa Ethernet prekidačem sa više portova. Svaki pojedinačni port je zaseban MU-MIMO tok. Istovremeno, nekoliko tokova može se "proslijediti" svakom pojedinačnom pretplatniku:


    Slika 2 – MU-MIMO oblikovanje snopa za opsluživanje više, raspršenih korisnika

    Nova karakteristika u 802.11ax je MU-MIMO Uplink. Kao što je gore pomenuto, AP može inicirati istovremeni prijem paketa od svakog od STA-a preko okvira okidača. Kada više STA prenosi svoje pakete kao odgovor na okvir okidača, AP primjenjuje matricu kanala na primljene snopove i odvaja informacije sadržane u svakom snopu. Dakle, AP može inicirati prijem više korisnika istovremeno od svih pretplatničkih STA u mreži:


    Slika 3 -

    Višekorisnički OFDMA

    Standard 802.11ax će uvesti novu tehnologiju za Wi-Fi, pozajmljenu od 4G mreža, za multipleksiranje velikog broja pretplatnika u zajedničkom propusnom opsegu: Ortogonal Frequency Division Multiple Access (OFDMA). Ova tehnologija je bazirana na OFDM, koji se već koristi u 802.11ac. Njegova suština je u tome da OFDMA u 802.11ax omogućava da standardne kanale širine 20, 40, 80 i 160 MHz dodatno "režete" na manje. Tako su kanali podijeljeni na manje podkanale sa unaprijed određenim brojem podnosača. Kao iu LTE-u, u 802.11ax najmanji podkanal se zove Resursna jedinica (RU), koja ima minimalnu veličinu od 26 podnosača. Radi jasnoće, slika ispod prikazuje podjelu frekvencijskih resursa za jednog korisnika koristeći OFDM (lijevo) i multipleksiranje četiri korisnika u jednom kanalu koristeći OFDMA (desno):


    Slika 4 -

    U zagušenim okruženjima u kojima bi se mnogi korisnici obično neefikasno takmičili za korištenje kanala, novi Wi-Fi OFDMA mehanizam im istovremeno služi manji, ali pod-kanal namijenjen korisniku, poboljšavajući prosječnu propusnost za svakog pojedinačnog korisnika.

    Slika ispod pokazuje kako 802.11ax sistem može multipleksirati kanal koristeći različite RU veličine. Imajte na umu da najmanja podjela kanala prima do 9 korisnika na svakih 20 MHz propusnog opsega:


    Slika 5

    Razdvajanje Wi-Fi kanala pomoću kanala od 40 MHz:


    Slika 6

    Razdvajanje Wi-Fi kanala pomoću 80 MHz kanala:


    Slika 7

    Sljedeća tabela prikazuje broj korisnika (za različite širine kanala) koji sada mogu primati OFDMA frekvencijski multipleksirani pristup:

    Broj podkanala RU Širina kanala 20 MHz Širina kanala 40 MHz Širina kanala 80 MHz Širina kanala 160 MHz
    26 9 18 37 74
    52 4 8 16 32
    106 2 4 8 16
    242 1-SU/MU-MIMO 2 4 8
    484 N / A 1-SU/MU-MIMO 2 4
    966 N / A N / A 1-SU/MU-MIMO 4
    2x966 N / A N / A N / A 1-SU/MU-MIMO

    Multi-User Uplink Operation

    Kao što je gore navedeno, u 802.11ax će biti moguće istovremeno prenositi pakete od nekoliko pretplatnika na pristupnu tačku. Za koordinaciju MU-MIMO ili Uplink OFDMA, AP šalje okvir okidača svim korisnicima. Ovaj okvir označava broj prostornih tokova i/ili OFDMA parametara (učestalost i RU veličine) svakog korisnika. Okvir okidača također sadrži informacije o kontroli snage tako da pojedinačni korisnici mogu povećati ili smanjiti svoju snagu odašiljanja u nastojanju da izjednače snagu koju AP prima od svih korisnika i na taj način poboljša kvalitet prijema okvira. AP također daje upute svim korisnicima kada da započnu i zaustave prijenos. AP šalje okvir za okidanje za više korisnika koji svim korisnicima govori tačno vrijeme kada bi svi trebali početi slati podatke i tačno trajanje njihovih okvira kako bi se osiguralo da svi završe prijenos u isto vrijeme. Čim AP primi okvire od svih korisnika, šalje natrag ACK blok koji ukazuje na završetak prijenosa:


    Slika 8 – Koordinacija višekorisničkog rada uređaja u Wi-Fi mreži

    Zaključak

    Jedan od glavnih ciljeva standarda 802.11ax je obezbjeđivanje veće prosječne propusnosti po korisniku (4 puta u prosjeku) u gustim bežičnim mrežama. U tu svrhu, 802.11ax uređaji podržavaju višekorisničke MIMO i OFDMA tehnologije. Također je dodana mogućnost istovremenog prijenosa sa više uređaja na AP, čime se smanjuje vrijeme čekanja i zastoja opreme zbog neuspješnih pokušaja da se uhvati prijenosni medij. U teoriji, sve izgleda, kao i uvijek, jasno i lijepo, međutim, kakav će učinak biti u praksi - vrijeme će pokazati. U međuvremenu, možemo samo sa sigurnošću reći da će učinak 802.11ax biti samo ako svi uređaji na mreži podržavaju novi standard. U suprotnom, proći će još nekoliko godina prije nego što pređemo sa dobrog starog Wi-Fi-ja (sa visinom u velikim mrežama) na efikasan 802.11ax.

    Ovaj članak pokazuje primjer korištenja NodeMCU ploče. Naime, kontrola opterećenja pomoću relejnog modula od 4 releja i uključenih aplikacija mobilni telefon android.

    Povezujemo sve kontakte prema shemi

    Nakon povezivanja svih komponenti, potrebno je da kopirate programski kod ispod i zalijepite ga u Arduino IDE program i učitate ovaj programski kod na samu Arduino ploču.

    #include // Ime i lozinka vaše WiFi mreže const char* ssid = "test"; const char*password = "test"; // Kreiraj server i port za slušanje 80 WiFiServer server(80); void setup() ( Serial.begin(115200); kašnjenje(10); // Priprema GPIO pinMode(5, OUTPUT); digitalWrite(5, 1); pinMode(4, OUTPUT); digitalWrite(4, 1); pinMode (0, OUTPUT); digitalWrite(0, 1); pinMode(2, OUTPUT); digitalWrite(2, 1); // dodijelite statičku IP adresu WiFi.mode(WIFI_STA); // način klijenta WiFi.config(IPAddress ( 192,168,1,131),IPAddress(192,168,1,111),IPAddress(255,255,255,0),IPAddress(192,168,1,1)); WiFi.begin(ssid, lozinka); // Sačekajte vezu dok (WiFi.status( ) ! = WL_CONNECTED) ( kašnjenje(500); Serial.print("."); ) Serial.println(""); Serial.println("WiFi povezan"); // Pokreni server server.begin(); Serial .println ("Server pokrenut"); // Ispis primljene IP adrese Serial.println(WiFi.localIP()); ) void loop() ( // Provjerite WiFiClient konekciju klijent = server.available(); if (!client) ( return ; ) // Čekamo podatke Serial.println("novi klijent"); while (!client.available()) ( kašnjenje(1); ) // Čitanje prvog reda upita String req = client.readStringUntil("\r"); Serijski println(req); client.flush(); // Rad sa GPIO if (req.indexOf("/1/0") != -1) digitalWrite(5, 0); else if (req.indexOf("/1/1") != -1) digitalWrite(5, 1); else if (req.indexOf("/2/0") != -1) digitalWrite(4, 0); else if (req.indexOf("/2/1") != -1) digitalWrite(4, 1); else if (req.indexOf("/3/0") != -1) digitalWrite(0, 0); else if (req.indexOf("/3/1") != -1) digitalWrite(0, 1); else if (req.indexOf("/4/0") != -1) digitalWrite(2, 0); else if (req.indexOf("/4/1") != -1) digitalWrite(2, 1); else if (req.indexOf("/5") != -1) ( Serial.println("TEST OK"); String s = "HTTP/1.1 200 OK\r\nTip sadržaja: text/html\r\ n\r\n\r\n \r\nTest OK. Vrijeme rada: "; // Izračunaj vrijeme rada int Sec = (milis() / 1000UL) % 60; int Min = ((milis() / 1000UL) / 60UL) % 60; int sati = ((milis() / 1000UL) / 3600UL) % 24; int Dan = ((millis() / 1000UL) / 3600UL / 24UL); s += Dan; s += "d "; s += Sati; s += ":"; s += Min ; s += ":"; s += sek; s += "\n"; client.print(s); client.stop(); return; ) else // Ako je zahtjev nevažeći napišite grešku ( Serial.println("invalid request"); String s = "HTTP/1.1 200 OK\ r\nTip sadržaja: text/html\r\n\r\n\r\n \r\nNevažeći zahtjev"; s += "\n"; client.print(s); client.stop(); return; ) client.flush(); // Formiranje niza odgovora s = "HTTP/1.1 200 OK\r\nTip sadržaja: text/html \ r\n\r\n\r\n \r\nGPIO postavljen OK"; s += "\n"; // Pošaljite odgovor klijentu client.print(s); delay(1); Serial.println("Klijent isključen"); )

    Izvore možete pogledati na ovom linku: https://yadi.sk/d/ehabE3C_3M36Yo Ovaj link će preuzeti datoteku sa ekstenzijom .aia i možete je dodati u pretvarač aplikacije MIT i vidjeti od čega se program sastoji.

    Naručio sam najjednostavniju ploču sa ESP8266 - ESP-01, izgleda ovako:

    U staroj reviziji ploče, samo VCC, GND, URXD i UTXD su izlazili na konektor.
    Najnovija revizija dodala je RST, GPIO0, GPIO2 i CH_PD.

    Ukupno postoji 11 modifikacija ploča, koje se razlikuju po broju pinova i verziji:
    ESP-01: PCB antena, nakon usklađivanja udaljenosti od oko 400 metara, jednostavna za korištenje.
    ESP-02: SMD paket za ograničenje podnošenja, antena se može izvući sa kućištem IPX zaglavlja.
    ESP-03: SMD paket, ugrađena keramička antenska tehnologija, svi dostupni IO vodi.
    ESP-04: SMD paket, kupci mogu prilagoditi tipove antena, fleksibilan dizajn, sve IO vodove.
    ESP-05: SMD paket, vodi samo do serijskog i RST pina, mala eksterna antena.
    ESP-06: tehnologija donjeg montiranja, vodi sve IO portove, sa metalnom zaštitnom školjkom, može se dobiti FCC CE certifikacija, preporučuje se.
    ESP-07: Semi-hole chip tehnologija, svi IO vodi, sa metalnom zaštitnom školjkom, mogu imati FCC CE certificiranu IPX eksternu antenu, također može biti ugrađena keramička antena.
    ESP-08: kod ESP-07, osim što je antena u obliku, kupci mogu sami definirati.
    ESP-09: Paket ultra male veličine, samo 10 * 10 mm, tehnologija četveroslojne ploče 1M bajtova!..
    ESP-10: SMD interfejs, dizajn uskog tela, širine 10 mm, pogodan za svetlo sa kontrolerom.
    ESP-11: SMD interfejs, keramička antena, mala zapremina.

    Pinout konektora ESP-01:

    Dodjela pinova ESP-01 ploče je sljedeća:
    VCC, GND - napajanje ploče (+3.3V);
    URXD,UTXD - RS232 pinovi su tolerantni na 3.3V
    RST - Hard reset (reset)
    GPIO0, GPIO2 - GPIO pinovi
    CH_PD - Omogućavanje čipa, mora biti povezan na +3.3V da bi radio.

    Da biste se prebacili na mod ažuriranja firmvera, morate voziti nisko na GPIO0 i visoko na CH_PD.

    Da povežem ESP-01 ploču na PC, koristio sam USB-to-RS232 konvertor na FT232R sa TTL 3.3V izlazima, možete koristiti ovaj na primjer.
    ESP-01 treba striktno 3.3V napajanje, tako da sam morao koristiti DC-DC pretvarač, možete koristiti ovaj.

    Sa osnovnim firmverom, ESP-01 pločom upravljaju AT komande, tako da nam je potreban terminalski program, koristio sam CoolTerm.

    Postoje 2 opcije za korištenje modula:
    1. Korišćenje ESP-01 ploče u kombinaciji sa dodatnim mikrokontrolerom koji će upravljati modulom preko UART-a.
    2. Pisanje vlastitog firmvera za ESP8266 čip i korištenje ga kao samodovoljnog uređaja.

    Naravno, 2. opcija je isplativija, pogotovo jer je potencijal ESP8266 čipa prilično velik.

    Za početak ćemo isprobati opciju broj 1, odnosno kontrolirati ESP-01 ploču preko RS232.

    Dijagram povezivanja je vrlo jednostavan:
    VCC pin - napajanje ploče (+3.3V);
    GND pin je uobičajen;
    URXD, UTXD pinovi - spojite na USB-to-RS232 konvertor (u 3.3V modu)
    Izlaz CH_PD - spojite na napajanje ploče (+ 3,3V);

    U terminalu (CoolTerm) postavljamo brzinu COM porta na 57600. ako ESP8266 čip ima stari firmver (a najvjerovatnije ima), onda će raditi samo s ovom brzinom porta.

    Kliknite na Connect, unesite AT naredbu, odgovor bi trebao doći OK. Ako je tako, onda ploča radi, možete nastaviti dalje.

    Procedura ažuriranja firmvera

    Unesite naredbu AT + GMR - provjerite verziju AT-a i SDK-a, kao odgovor daje 0016000902, gdje je 0016 SDK verzija, 0901 je AT verzija

    U ovom trenutku (11.06.2014.) firmver 0018000902 je već dostupan (SDK verzija - 0018, u AT verziji - 0902)

    Sada možete i trebate ažurirati firmver:
    1. Preuzmite uslužni program XTCOM odavde.
    2. Preuzmite firmware ESP_8266_v0.9.2.2 AT Firmware.bin odavde
    3. Isključite napajanje ploče, spojite GPIO0 pin na zajedničku žicu, uključite napajanje.
    4. Pokrenite XTCOM_UTIL.exe, idite na Tools -> Config Device, odaberite COM port na koji je ploča povezana, postavite brzinu porta na 57600, kliknite Open, zatim Connect, program bi trebao reći "Poveži se sa ciljem OK!" , zatvorite prozor postavki. Idite na meni API TEST, odaberite (4) Preuzimanje Flash slike, odredite putanju do datoteke "ESP_8266_v0.9.2.2 AT Firmware.bin", ostavite adresu 0x00000, kliknite Preuzmi. Preuzimanje firmvera bi trebalo da počne, a po završetku će se prikazati poruka.
    5. Isključite napajanje ploče, odspojite GPIO0 pin iz zajedničke žice, uključite napajanje, pokrenite terminal (PAŽNJA! Promijenite brzinu porta na 9600), provjerite spremnost ploče AT komandom i verzija firmvera sa komandom AT + GMR.

    Nakon ažuriranja na verziju 0018000902, zadana brzina COM porta će se promijeniti sa 57600 na 9600, ali ova brzina se sada može postaviti u novom firmveru pomoću AT+CIOBAUD naredbe. Gledati AT+CIOBAUD=? dostupne brzine i postavite naredbu AT+CIOBAUD=115200 na brzinu 115200, odgovor bi trebao biti OK. Dajemo naredbu za ponovno pokretanje: AT + RST. Promijenite brzinu porta u terminalskom programu na 115200.

    primjer:
    AT OK AT+CIOBAUD=? +CIOBAUD:(9600-921600) OK AT+CIOBAUD=115200 BAUD->115200 OK

    Postavljanje Wi-Fi veze

    Pokušajmo sada povezati našu ESP-01 ploču na Wi-Fi pristupnu tačku.
    Izvršavamo sljedeće naredbe:
    1. Podesite Wi-Fi mod naredbom: AT+CWMODE= Dostupni su sljedeći načini rada: 1 - STA, 2 - AP, 3 - OBA
    primjer:
    AT+CWMODE=1 OK 2. Pogledajte listu pristupnih tačaka naredbom: AT+CWLAP
    Primjer
    AT+CWLAP +CWLAP:(3,"WiFi-DOM.ru-0474",-85,"c8:d3:a3:30:17:40",8) +CWLAP:(4,"Intersvyaz_516C",-89 ,"2c:ab:25:ff:51:6c",10) +CWLAP:(4,"pletneva",-96,"f8:1a:67:67:2b:96",11) +CWLAP:( 4,"Test",-69,"64:70:02:4e:01:4e",13) OK Navodi u zagradama: SECURITY, SSID, RSSI, BSSID, CHANNEL
    SECURITY može imati vrijednosti:
    0 - OTVORENO, 1 - WEP, 2 - WPA-PSK, 3 - WPA2-PSK, 4 - MJEŠOVITO (WPA-WPA2-PSK)
    3. Povežite se na našu AP naredbom: AT+CWJAP="SSID","PASSWORD" Primjer:
    AT+CWJAP="Test","habrahabr" OK Veza traje 2-5 sekundi, nakon čega će se pojaviti OK ako je uspješna.
    3. Da vidimo koju IP adresu je naša ploča dobila sa komandom: AT+CIFSR
    AT+CIFSR 192.168.1.104 OK Prekidanje veze sa pristupne tačke se vrši naredbom AT+CWQAP.
    Adresa primljena, možete dalje.

    ESP-01 ploča može djelovati kao Soft-AP, da biste omogućili ovaj način rada, izvršite sljedeće naredbe:
    1. Prekinite vezu sa pristupne tačke: AT + CWQAP.
    2. Promenite Wi-Fi mod sa naredbom: AT+CWMODE=2
    3. Kreirajte našu AP naredbom: AT+CWSAP="SSID","PASSWORD",CHANNEL,SECURITY Primjer:
    AT+CWSAP="Test2","habrahabr",10,4 OK 4. Pokušavamo da se povežemo na naš AP sa računara. Da vidimo rezultat:


    Kao što vidite na slici, brzina je samo 54Mbps, a adrese DNS servera me zbunjuju, mislim da su jasno kineske, ne možete staviti svoje preko AT komandi.
    AP adresa se može pronaći naredbom: AT+CIFSR
    primjer:
    AT+CIFSR 192.168.4.1 OK Spisak klijenata našeg AP-a može se pogledati naredbom: AT+CWLIF
    primjer:
    AT+CWLIF 192.168.4.101,f4:ec:38:8d:05:62 OK

    Podešavanje režima TCP servera

    ESP-01 ploča može pokrenuti TCP server za slanje i primanje podataka, ili može djelovati kao TCP klijent za slanje i primanje podataka na server.
    Da pokrenete TCP server, pokrenite sljedeće naredbe:
    1. Postavite način prijenosa naredbom AT+CIPMODE= način = 0 - nije podatkovni način (server može slati podatke klijentu i može primati podatke od klijenta)
    mod = 1 - režim podataka (server ne može slati podatke klijentu, ali može primati podatke od klijenta)
    primjer:
    AT+CIPMODE=0 OK 2. Postavite mogućnost višestrukih konekcija: AT+CIPMUX= mod 0 - pojedinačna veza
    način 1 - višestruke veze
    Možete provjeriti način povezivanja sa AT + CIPMUX?
    primjer:
    AT+CIPMUX=1 OK AT+CIPMUX? +CIPMUX:1 OK 3. Pokrenite server na portu 8888: AT+CIPSERVER= [,]režim 0 - za zatvaranje servera
    mod 1 - za otvaranje servera
    primjer:
    AT+CIPSERVER=1.8888 OK
    Sada se možete povezati na ESP-01 i poslati/primiti neke podatke. Za povezivanje ćemo koristiti uslužni program
    Pokrećemo java -jar SocketTest.jar, na kartici Client, unesite adresu i port ESP-01, kliknite na Connect. Ako je konekcija uspješna, poruka Link će se pojaviti na terminalu, a linija poruke i gumb Pošalji će postati aktivni u SocketTest-u.
    Možete pogledati listu aktivnih veza na ESP-01 pomoću naredbe AT + CIPSTATUS
    primjer:
    AT+CIPSTATUS STATUS:3 +CIPSTATUS:0,"TCP","192.168.1.100",44667,1 OK Možete zatvoriti aktivnu vezu naredbom AT+CIPCLOSE= ili sve veze AT+CIPCLOSE bez opcija.
    primjer:
    AT+CIPCLOSE=0 OK Prekini vezu 4. Pošalji podatke sa ESP-01 na PC
    ,
    primjer:
    AT+CIPSEND=0,16 > Ping Habrahabr POŠALJI OK 5. Pošaljite probnu poruku sa računara:


    Linija se pojavljuje u terminalu +IPD,0,16:Ping Habrahabr Poruka prihvaćena.
    Format primljenih podataka je:
    Za način jednostruke veze (CIPMUX=0): +IPD, :Za način višestrukih veza (CIPMUX=1): +IPD, ,:

    Konfiguriranje TCP klijentskog načina rada

    Sada promijenimo uloge, PC - server, ESP-01 - klijent, pokušajte:
    1. Ponovo pokrenite AT+RST ploču
    2. Postavite način prijenosa naredbom AT+CIPMODE= način = 0 - nije podatkovni način (klijent može slati podatke na server i može primati podatke sa servera)
    mod = 1 - način rada podataka (klijent ne može slati podatke serveru, ali može primati podatke sa servera)
    primjer:
    AT+CIPMODE=0 OK 3. Postavite način povezivanja na Višestruka veza: AT+CIPMUX=1
    4. Na računaru u SocketTest-u pokrenite server na portu 8888
    5. Pokrenite klijenta na ESP-01
    Za način jednostruke veze (+CIPMUX=0) format je AT+CIPSTART= ,,Za višestruki način povezivanja (+CIPMUX=1) format je AT+CIPMART= ,,Moguće vrijednosti parametara:
    id = 0-4
    type=TCP/UDP
    addr = IP adresa
    port= port
    primjer:
    AT+CIPMUX=1 OK AT+CIPMUX=0,"TCP","192.168.1.100",8888 OK Povezano 6. Pošaljite podatke sa ESP-01 na PC
    Za način jednostruke veze (+CIPMUX=0) slanje ide ovako: AT+CIPSEND= Za način višestruke veze (+CIPMUX=1) slanje ide ovako: AT+CIPSEND= ,Nakon izvršavanja AT + CIPSEND potrebno je unijeti tekst, završetak unosa i slanje se vrši pomoću Enter.
    primjer:
    AT+CIPSEND=0.16 > Ping Habrahabr POŠALJI OK
    Primjer slanja i primanja podataka:

    Korisna dokumentacija:
    Opis AT naredbi (na kineskom)
    ESP8266 specifikacija čipa (kineski)
    Specifikacija za ESP8266 čip (na engleskom)

    zaključak:

    Kao što vidimo, ploča se uspješno nosi sa postavljenim zadacima, naime, povezivanje na Wi-Fi kao klijent, može djelovati kao Soft-AP, možete podići TCP server na ploči da prima i šalje podatke ili može biti TCP klijent.
    U ovom članku smo pogledali rad sa ESP-01 pločom preko RS232, PC je služio kao kontrolni kontroler, možete jednostavno povezati Arduino ploču ili bilo koji mikrokontroler sa UART-om i slati i primati podatke putem Wi-Fi mreže između kontrolera ili PC.

    U sljedećem članku (kako karma dozvoljava) pokušat ću govoriti o principima pisanja vlastitog firmvera za ESP8266 čip, tako da će ESP-01 ploča biti potpuno autonomna, neće joj trebati dodatni kontroler za kontrolu svih parametara. Pokušat ćemo povezati razne periferne uređaje na ploču.

    Rado ću odgovoriti na pitanja, iako još nisam u potpunosti proučio ESP-01 ploču.