ESP8266 Resensie

Oorsig

In my soektog na n manier om n sub 1GHz tranceiver te bridge met n WLAN het ek op hierdie bitter cool chip afgekom. Het toe twee modules vir amper niks (€10 met aflewering) op ebay bestel om dit bietjie te toets en gedink ek deel my bevindinge met julle.

Hardeware

Die magic chip is die ESP8266 van Espressif. Dit is wat hulle noem n SoC (System on Chip) oplossing wat beteken die outjie is nie net n WiFi module nie maar het ook n mikroverwerker in met n paar peripherals (UART, ADC, etc.). Omdat die chip redelik klein is en moeilik is vir prototyping projekte is daar n paar maatskappye wat modules maak wat op die chip gebaseer is. Een van die bekenstes is AI-Thinker. Hierdie module het die chip (met al sy hulp stroombane) en n PCB antenna op een bord wat die pins dan uit breek na maklik handsoldeerbare kontakte.

AI_ESP8266
Die AI Thinker module

Paar eienskappe van die ESP8266:

  • 32bit Mikroverwerker wat teen 80MHz hardloop (kan overclock word na 160MHz!)
  • IEEE 802.11 b/g/n Wi-Fi
  • Beskikbaar in 512kB tot 16MB Flash memory! (Waar jou program gewoonlik gestoor word) Dit is ongelooflik baie as mens dink dat die ATmega328P wat die Arduino Uno dryf maar net 32kB het!
  • Ingeboude UART (hardware serial port)
  • Ingeboude SPI
  • Ingeboude I²C
  • ‘n 10bit ADC
  • 16 GPIO (General Purpose Input/Output) pins om stuff aan te koppel

Modules

Die AI Thinker modules is baie oulik maar daar is n paar tricks. Om die module te programmeer gebruik mens sy serial port en omdat geen nuwe rekenaar meer n serial port het nie gaan mens n USB na serial omskepper benodig, iets soos FTDI se FT232 chip. Die volgende strik is dat die ESP8266 met 3.3V werk wat beteken mens gaan n 3.3V reguleerder nodig he en die 3.3V weergawe van die FT232. Sou mens die module in jou eie produk in die toekoms wil gebruik is hierdie alles goed wat mens in gedagte gaan moet hou.

As jy net eers wil speel met die chip, dan is daar makliker opsies in die vorm van ontwikkelings borde. Die borde wat ek gekoop het (NodeMCU v0.9) is van NodeMCU en het die AI Thinker ESP12 module op. Wat dit so wonderlik maak is dat hulle reeds die 3.3V reguleerder en USB na serial omskepper op het. Hierdie bord gebruik die goedkoper CH340 USB na serial omskepper.

NodeMCU8266
Die NodeMCU weergawe 0.9

Vir die toetse wat ek op die bord gedoen het en as n leer platform werk hy vir my heel goed maar het gesien daar is nuwer borde met nuwer generasie AI Thinker modules op. As ek weer moes koop sou ek dalk kyk na die nuwer borde, net omdat hulle bietjie kleiner is en meer plek los as mens hom op n breadboard gebruik.

Sagteware

Die volgende stap is om die bord te programmeer. Daar is n paar maniere hoe mens dit kan doen waarvan die mees gewildste is:

  • AT instruksies: Espressif se AT command vertolker firmware.
    • AT instruksies is baie gewild en soortvan die industry standard. Mens verbind basies met die module se serial port en stuur dan text instruksies vir hom. Die nadeel wat ek met dit sien is dat mens dan n extra mikroverwerker gaan nodig hê om die instruksies vir die module te stuur. As jou projek reeds n mikroverwerker in het dan kan dit dalk ook n goeie opsie wees.
  • Lua: NodeMCU se Lua vertolker firmware.
    • Programmeering taal amper soos C, maar weet nie veel meer van dit nie. NodeMCU is verantwoordelik vir die firmware en kanse is dat dit reeds gelaai is as mens n NodeMCU module koop. Alhoewel myne NodeMCU modules is het dit geen firmware opgehad nie, maar het gelees dat veral die nuwer modules met dit uitkom.
  • C++: Jou eie firmware. Arduino IDE is n gewilde opsie.
    • Skryf jou eie firmware met C++ en met die hulp van libraries wat reeds beskikbaar is. Hierdie is meer die opsie waarvan ek hou en glo dit gee n mens die meeste opsies.

Opstel van ontwikkelings omgewing

CH340 Driver

Een van die eerste dinge om te doen is om die CH340 se driver te installeer. Dit is dieselfde chip wat in die Arduino Nano clones gebruik word so as jy hulle in die verlede gebruik het dan mag jy dalk reeds die driver he. ‘n Vinnig soek op Google en jy sal die drivers vir die chip find.

Installeer die bord vir Arduino IDE

Die gewildste IDE op die oomblik lyk na Arduino. Om die bord daarin te programmeer moet mens eers die bord installeer. So om dit te doen gaan mens na File->Preferences en onder die Addition Boards Manager URL gaan voeg mens die volgende url in:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

ArduinoConfig1

Daarna gaan jy na Tools->Board->Board Manager en scroll na “esp8266 by ESP8266 Community” en click Install (by my was dit die laaste opsie in die lys). Dit vat so paar minute om te download en installeer dan die ESP8266 borde.

ArduinoConfig2

Wanneer hy klaar is, is dit gewoonlik die beste om Arduino te restart. Gaan dan weer na Tools->Board en kies die bord wat jy gebruik (vir my was dit “NodeMCU v0.9”). Volgende moet mens seker maak die CPU Frequency opsie is op 80MHz gestel en die Upload Speed is op 115200.

ArduinoConfig3

Na hierdie stappe is mens reg om die module te begin programmeer!

Toets programme

Saam met die installasie van die ESP8266 borde kom ook n klomp toets programme wat jy kan vind onder File->Examples. As jy op die web gaan krap dan vind mens nog tonne voorbeelde onder ounes soos Sparkfun, Adafruit en daardie tipe sites ook.

Van die bestes vir my was die wat eerstens n access point kon skep en dan nog bo op dit n web server ook hardloop! Dit alles in n paar lyntjie kode!  En as dit nie genoeg is nie dan kan mens dit nog n stap verder vat en maak dat die web server na die GPIO pins skryf wat beteken mens kan stuff aan en af skakel! Koppel die AP aan jou WiFi router en dan kan jy daai stuff via die internet skakel!

APandWebServer1
In die voorbeeld kon ek eerstens n Access Point skep waaraan ek kon koppel en daarna na n page gaan wat gehost word op die AP!

Daar is Youtube videos van ouens wat meer as n kilometer bereik kry met die modules! Ek reken dit is teen ongelooflike lae spoed met baie dropped pakkies maar tog indrukwekkend!

Dit is ongelooflik wat die modules kan doen, veral as mens n IoT (Internet of Things) of “Home Automation” tipe van projek doen. En die beste van als is, teen minder as €3.00 per module is hulle “dirt cheap”!

Advertisements

3 Comments

    1. Jip, die plan is om dit te gebruik om my 433MHz link te bridge na n WiFi Access Point. So kan ek dan met my rekenaar draadloos na die link koppel wat weer die telemetry inligting vanaf die Linux autopilot (PXF mini) stuur. Die plan is ook dan om toe te laat dat meer as een rekenaar na die telemetry van die autopilot kan kyk. Dit is op die oomblik n privaat projek maar glo dit sal handig wees vir die werk ook.

      Liked by 1 person

Lewer kommentaar

Verskaf jou besonderhede hieronder of klik op 'n logo om in te teken:

WordPress.com Logo

Jy lewer kommentaar met jou rekening by WordPress.com. Log Out / Verander )

Twitter picture

Jy lewer kommentaar met jou rekening by Twitter. Log Out / Verander )

Facebook photo

Jy lewer kommentaar met jou rekening by Facebook. Log Out / Verander )

Google+ photo

Jy lewer kommentaar met jou rekening by Google+. Log Out / Verander )

Connecting to %s