1
0
mirror of https://github.com/daniviga/bite.git synced 2024-12-23 16:51:25 +01:00
bite/arduino
Daniele Viganò 681f99d2f4
Allow to use a customer NTP server IP (#27)
* Add support for custom IP/Port for NTP on ESP32

* Backport changes from esp32

* NTP port is not currently used

* Make pytz dep explicit and update alpine
2021-12-08 22:27:42 +01:00
..
eeprom_prog Allow to use a customer NTP server IP (#27) 2021-12-08 22:27:42 +01:00
libraries Implement the MQTT protocol (#11) 2020-06-08 23:17:16 +02:00
tempLightSensor Allow to use a customer NTP server IP (#27) 2021-12-08 22:27:42 +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