simple example of scanning wifi AP and sending to geolocation resolver on cloud

Dependencies:   mbed-http lr1110 sx12xx_hal

test Wifi geolocation with resolving using HTTP POST.

Use with mbed board with internet access and arduino form factor.
With HTTPS, the RAM requirement is minimum 128Kbytes.

and, use with radio shield for europe
or radio shield for USA
which is programmed with trx firmware from updater tool.

This project presents to user mbed STDIO serial port at 115200bps, which lets you perform wifi access point scan on LR1110 and send the resulting access point list to a geolocation provider on the cloud.

Use the project by itself to run wifi scan on the serial terminal (at 115200bps), or use with lr1110_wifi_geolocation_device to receive wifi list from remote device (over LoRa) to resolve location of that device using gelocation provider on cloud.

On serial terminal, use ? question mark to see list of commands. ws to run wifi scan, or ws p to wifi scan and resolve location with cloud provider via HTTP POST.

project setup

Edit main.h to uncomment which geolocation provider you wish to use, and get API key from them:

notice

This project is not using LoRaWAN, instead just LoRa transceiver directly to geolocation provider

main.h

Committer:
Wayne Roberts
Date:
2021-02-09
Revision:
1:4a05f91c9c38

File content as of revision 1:4a05f91c9c38:

#include "select-demo.h"

#include "mbed.h"
#if DEMO == DEMO_HTTPS
    #include "https_request.h"
#elif DEMO == DEMO_HTTP
    #include "http_request.h"
#endif

#define GOOGLE      1
#define COMBAIN     2
//#define GEOLOCATION_PROVIDER        GOOGLE
//#define GEOLOCATION_PROVIDER        COMBAIN

#define HEADER_LENGTH           10  /* for chipEUI and extra reserved */

int post_scan_result(const char*, float*, float*, int*);
void wifi_result_to_json(bool first, const uint8_t *result, unsigned macStart, unsigned rssi_idx);
void json_start(void);
void json_end(void);
extern char json[];
extern bool wifiResultFormatBasic;
extern NetworkInterface* network;
void dump_response(HttpResponse* res);