1
0
mirror of https://github.com/daniviga/bite.git synced 2024-11-26 23:06:14 +01:00
bite/arduino
2021-03-24 21:54:41 +01:00
..
eeprom_prog Store ESP32 settings in the nvs 2021-03-24 21:54:41 +01:00
libraries Implement the MQTT protocol (#11) 2020-06-08 23:17:16 +02:00
tempLightSensor Add ESP32 example 2021-03-21 23:57:00 +01:00
README.md Fix HTTP reverse proxy with embedded IoT (#20) 2020-06-21 22:58:46 +02:00

Arduino IoT device

A simple Arduino UNO sketch is provided in the arduino/tempLightSensor folder. The sketch reads temperature and light from sensors.

The simple schematic is:

tempLightSensor

The sketch does require an Ethernet shield and a bunch of libraries which are available as git submodules under arduino/libraries.

git submodule update --init

Be advised that some libraries (notably the NTP one) have been customized.

An ESP32 board (or similar Arduino) may be used, with some adaptions, too.

EEPROM

Configuration parameters are stored and retrieved from the EEPROM. An helper sketch to update the EEPROM is available under arduino/eeprom_prog.

The data stored in the EEPROM is:

// Ethernet MAC address
const byte mac[6];

// Device serial number
const char serial[];

// IoT platform address and port
struct netConfig {
  IPAddress address;
  unsigned int port;
};

The EEPROM can be completely erased setting the ERASE_FIRST macro to 1.

#define ERASE_FIRST 0

Firmware options

The following macros are available in the firmware (to be set at compile time):

#define DEBUG_TO_SERIAL   0   // debug on serial port
#define USE_MQTT          1   // use mqtt protocol instead of http post
#define USE_INTERNAL_NTP  1   // use default ntp server or the internal one
#define TELEMETRY_DELAY  10   // second between telemetry samples
#define AREF_VOLTAGE      3.3 // set aref voltage to 3.3v instead of default 5v