--- title: Dokumentasi Protokol Komunikasi ESP8266-Atmega1280-UHFReader --- [ToC] # 1. Protokol Komunikasi ESP8266-Atmega1280 :::info **Keterangan** - Komunikasi antara ESP8266 dan Atmega1280 dilakukan secara serial. - Pada Atmega1280 digunakan *hardware serial 3* dan ESP8266 digunakan *software serial* - *Message* merupakan *array of byte* yang dikirimkan atau diterima oleh Atmega1280 maupun ESP8266 - *Message* selalu diawali `<` dan diakhiri dengan `>` - *Message* memiliki format utama `<[CMD][STS][DAT]>` - [CMD] adalah *command*, panjangnya 1 byte - [STS] adalah *status*, panjangnya 1 byte - [DAT] adalah *data*, panjangnya bervariasi - *Received Message* merupakan *message* yang dikirimkan Atmega1280 dan diterima ESP8266 - *Response Message* merupakan *message* yang dikirimkan ESP8266 ke Atmega1280 setelah menerima *Received Message* ::: ## 1.1. WIFI COMMAND - CHECK WIFI CONNECTION STATUS (CMD=0x10) - Received Message: `<10 00 00>` - Response Message: `<10 [STS] 00>` > [STS] = 0 (WL_IDLE_STATUS) when Wi-Fi is in process of changing between statuses > [STS] = 1 (WL_NO_SSID_AVAIL)in case configured SSID cannot be reached > [STS] = 3 (WL_CONNECTED) after successful connection is established > [STS] = 4 (WL_CONNECT_FAILED) if connection failed > [STS] = 6 (WL_WRONG_PASSWORD) if password is incorrect > [STS] = 7 (WL_DISCONNECTED) if module is not configured in station mode - SCAN NEARBY VISIBLE SSID (CMD=0x11) - Received Message: `<11 00 00>` - Return Message: - `<11 00 00>` = Selesai mengirimkan semua SSID yang terdeteksi - `<11 01 [IDX] [SSID_LEN][SSID][RSSI]>` = Mengirimkan satu SSID wifi yang terdeteksi > `[IDX]` = index SSID. Urutan Wifi yang tersedia. Panjangnya 1 byte. > `[SSID_LEN]` = jumlah byte `[SSID]`. Panjangnya 1 byte. > `[SSID]` = *array of byte* untuk nama SSID yang terdeteksi. Panjangnya sesuai jumlah karakter SSID. > `[RSSI]` = nilai RSSI dari SSID yang terdeteksi. Panjangnya 1 byte. - CONNECT TO SSID (CMD=0x12) - Received Message `<12 00 [SSID_LEN] [SSID] [PASS_LEN] [PASS]>` > `[SSID_LEN]` = jumlah byte `[SSID]`. Panjangnya 1 byte. > > `[SSID]` = *array of byte* untuk nama SSID yang ingin di-*connect*. Panjangnya sesuai jumlah karakter SSID yang dituju. > > `[PASS_LEN]` = jumlah byte `[PASS]`. Panjangnya 1 byte. > > `[PASS]` = *array of byte* berisi password untuk SSID yang ingin di-*connect*. Panjangnya sesuai jumlah karakter password. - Return Message - `<12 [STS] 00>` - DISCONNECT WIFI (CMD=0x13) - Received Message `<13 00 00>` - Return Message - `<13 01 00>` = Wifi disconnected ## 1.2. OTHER COMMAND - PING COMMAND (CMD=0x00) - Received Message: `<00 00 50 49 4E 47>` - Return Message: `<00 00 50 49 4E 47>` - SENT TAG EPC TO MQTT (CMD=0x01) - Received Message: `<01 00 [N][TAG1][TAG2]...[TAGN]>` > `[N]` = Jumlah tag yang terbaca oleh UHF Reader > `[TAGN]` = Data untuk tag ke-N - `[TAGN]` = `[EPC_LEN][EPC_CODE]` > `[EPC_LEN]` = jumlah byte `[EPC_CODE]`. Panjangnya 1 byte. > `[EPC_CODE]` = *array of byte* untuk EPC. Panjangnya sesuai jumlah byte Tag EPC. - Return Message: - `<01 00 00>` = Semua *tag* berhasil dikirimkan ke *database* - CHANGE LOCATION (CMD=0x02) - Received Message: `<02 00 [LOCATION_CODE]` > `[LOCATION_CODE]` = Kode lokasi bandara baru. Panjangnya 4 bytes. - Return Message: - `02 00 [LOCATION_CODE]` = Location Changed