ESP8266 – HTTP pyynnön tekeminen AT -komennoilla
ESP8266 on pieni ja halpa WLAN-UART -moduuli. Moduulissa on itsessään mukana mikrokontrolleri ja 3 GPIO pinniä, joten sillä voi tehdä yksinkertaisia laitteita ilman erillistä mikrokontrolleriakin. Laite toimii hyvin myös WLAN adapterina erilaisille mikrokontrolleriprojekteille.
Moduulin AT -komentojen testaaminen onnistuu omalta tietokoneelta USB-TTL -adapterilla käyttäen jotain terminaaliohjelmaa. Itse käytän OS X:ssä CoolTermiä.
Tässä on kerrottu miten AT komennoilla voi tehdä HTTP -pyynnön.
Osalista:
- 5pcs ESP8266 Serial WIFI Wireless Transceiver Module 5kpl ~15,20€ (á ~3€) Yksikin toki riittää, itse ostin tämän setin.
- USB To RS232 TTL PL2303HX Auto Converter Module 1kpl ~1,20€
CH_PD -pinni täytyy kytkeä VCC -pinniin, jotta moduuli käynnistyy. Sen jälkeen kytketään moduulin VCC (3,3V), GND, RX ja TX USB-TTL -adapteriin. Huomaa, että TTL adapterin RX kytketään ESP8266:n TX:ään ja vastaavasti TX->RX.
Tämän jälkeen kytketään TTL adapteri USB porttiin ja tarvittaessa asennetaan adapterin ajurit. Terminaaliohjelman asetuksista valitaan oikea portti ja yhteysnopeudeksi 115200 bps, 8 data bits, parity none ja 1 stop bits.
Yhteyden toimivuuden voi kokeilla käskyllä AT. Jos vastaukseksi tulee OK, niin yhteys moduuliin toimii. Huomioi, että AT komentojen väliin täytyy jättää pieni viive, että moduuli ehtii käsitellä kaikki käskyt.
Kun yhteys on todettu toimivaksi, määritellään että toimitaan client -moodissa
AT+CWMODE=1
Moodin valinnan jälkeen yhdistetään WLAN -verkkoon. ssid tilalle tulee WLAN verkon nimi ja passwordin tilalle puolestaan verkon salasana.
AT+CWJAP="ssid","password"
Halutessaan voi tarkistaa minkä IP -osoitteen laite on saanut. Voit joutua odottamaan pienen hetken, että laite on saanut yhdistettyä verkkoon ja määriteltyä itselleen osoitteen.
AT+CIFSR
Varsinainen HTTP pyynnön teko aloitetaan avaamalla TCP yhteys. Tässä esimerkissä haetaan Vaasan Hacklabin tiedot SpaceAPI:sta. Spaceapi.net domainin IP on 93.92.148.20 ja HTTP:n oletusportti on 80.
AT+CIPSTART="TCP","93.92.148.20",80
Seuraavassa vaiheessa määritellään, montako merkkiä dataa tullaan http serverille lähettämää.
AT+CIPSEND=77
Varsinainen HTTP pyyntö voidaan nyt lähettää. Huomio, että http pyyntö loppuu aina kahteen rivinvaihtoon.
GET /cache/Vaasa+Hacklab HTTP/1.1 Host: spaceapi.net Connection: close
Määrittelimme HTTP headereissa, että yhteys voidaan sulkea heti vastauksen jälkeen. Avattua TCP yhteyttä ei siis ole pakko sulkea, mutta sulkeutumisen voi halutessaan vielä varmistaa.
AT+CIPCLOSE
Linkkejä:
- ESP8266 yleistietoa https://nurdspace.nl/ESP8266
- ESP8266 projekteja http://hackaday.com/?s=esp8266