Skip to content

Commit

Permalink
Initial commit of sensatio PlatformIO based firmware
Browse files Browse the repository at this point in the history
  • Loading branch information
Manuel-Sensate committed Dec 2, 2021
1 parent 2c819fd commit 3c6036e
Show file tree
Hide file tree
Showing 68 changed files with 10,437 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.pio
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/ipch
.vscode
42 changes: 42 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# firmware-platformIO

The Sensatio firmware is used to connect ESP8266 and ESP32 based hardware with the Sensatio Cloud and the Sensatio apps.
Find out more at https://www.sensatio.io

# PlatformIO

From v46 on the firmware for ESP8266 and ESP32 were merged into one project using the great [PlatformIO](https://platformio.org) Framework

# The Sensatio Firmware for ESP8266 and ESP32 currently uses the following Libraries:

- Arduino IDE ESP8266 Base Library (https://github.com/esp8266/Arduino)
- Arduino IDE ESP32 Base Library (https://github.com/espressif/arduino-esp32)

- ArduinoJson (https://github.com/bblanchon/ArduinoJson)
- ESP8266TrueRandom (https://github.com/marvinroger/ESP8266TrueRandom)
- Thingpulse SSD1306 (https://github.com/ThingPulse/esp8266-oled-ssd1306)
- Soligen2010 fork of Adafruit_ADS1x15 (https://github.com/soligen2010/Adafruit_ADS1X15)
- Adafruit Unified Sensor Library (https://github.com/adafruit/Adafruit_Sensor)
- Adafruit DHT Sensor Library (https://github.com/adafruit/DHT-sensor-library)
- Adafruit BusIO (https://github.com/adafruit/Adafruit_BusIO)
- Adafruit VEML6075 (https://github.com/adafruit/Adafruit_VEML6075)
- OneWire (https://www.pjrc.com/teensy/td_libs_OneWire.html)
- DallasTemperature (https://github.com/milesburton/Arduino-Temperature-Control-Library)
- BME280 (https://github.com/finitespace/BME280)
- Adafruit BME680 (https://github.com/adafruit/Adafruit_BME680)
- Max44009 (https://github.com/dantudose/MAX44009)
- BH1750 (https://github.com/claws/BH1750)
- MQTT Client Library (https://github.com/knolleary/pubsubclient)
- SI1145 (https://github.com/wollewald/SI1145_WE)
- SparkFun MCP9600 (https://github.com/sparkfun/SparkFun_MCP9600_Arduino_Library)

For an up to date version information pls check [platformio.ini](platformio.ini)

Windows, Linux and Mac Users:
Use pyflasher from https://github.com/marcelstoer/nodemcu-pyflasher/releases for flashing the firmware.

Find more informations here:
https://www.sensatio.io

And here in German:
https://www.sensatio.io/de
39 changes: 39 additions & 0 deletions include/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@

This directory is intended for project header files.

A header file is a file containing C declarations and macro definitions
to be shared between several project source files. You request the use of a
header file in your project source file (C, C++, etc) located in `src` folder
by including it, with the C preprocessing directive `#include'.

```src/main.c

#include "header.h"

int main (void)
{
...
}
```

Including a header file produces the same results as copying the header file
into each source file that needs it. Such copying would be time-consuming
and error-prone. With a header file, the related declarations appear
in only one place. If they need to be changed, they can be changed in one
place, and programs that include the header file will automatically use the
new version when next recompiled. The header file eliminates the labor of
finding and changing all the copies as well as the risk that a failure to
find one copy will result in inconsistencies within a program.

In C, the usual convention is to give header files names that end with `.h'.
It is most portable to use only letters, digits, dashes, and underscores in
header file names, and at most one dot.

Read more about using header files in official GCC documentation:

* Include Syntax
* Include Operation
* Once-Only Headers
* Computed Includes

https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
46 changes: 46 additions & 0 deletions lib/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@

This directory is intended for project specific (private) libraries.
PlatformIO will compile them to static libraries and link into executable file.

The source code of each library should be placed in a an own separate directory
("lib/your_library_name/[here are source files]").

For example, see a structure of the following two libraries `Foo` and `Bar`:

|--lib
| |
| |--Bar
| | |--docs
| | |--examples
| | |--src
| | |- Bar.c
| | |- Bar.h
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
| |
| |--Foo
| | |- Foo.c
| | |- Foo.h
| |
| |- README --> THIS FILE
|
|- platformio.ini
|--src
|- main.c

and a contents of `src/main.c`:
```
#include <Foo.h>
#include <Bar.h>

int main (void)
{
...
}

```

PlatformIO Library Dependency Finder will find automatically dependent
libraries scanning project source files.

More information about PlatformIO Library Dependency Finder
- https://docs.platformio.org/page/librarymanager/ldf.html
96 changes: 96 additions & 0 deletions platformio.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[common_env_data]
lib_deps_external =
bblanchon/[email protected]
knolleary/[email protected]
thingpulse/ESP8266 and ESP32 OLED driver for SSD1306 [email protected]
finitespace/BME280@^3.0.0
dantudose/MAX44009 [email protected]
adafruit/Adafruit VEML6075 [email protected]
wollewald/[email protected]
claws/[email protected]
adafruit/Adafruit BME680 Library@^2.0.1
milesburton/[email protected]
adafruit/Adafruit [email protected]
adafruit/DHT sensor [email protected]
adafruit/Adafruit ST7735 and ST7789 Library@^1.7.5
paulstoffregen/OneWire @ 2.3.6

[env:NodeMCU]
platform = [email protected]
board = nodemcuv2
framework = arduino
build_flags =
-D ESP8266_BOARD
-D NodeMCU
lib_deps =
${common_env_data.lib_deps_external}

[env:ESP01_1M]
platform = [email protected]
board = esp01_1m
framework = arduino
build_flags =
-D ESP8266_BOARD
-D ESP01_1M
lib_deps =
${common_env_data.lib_deps_external}

[env:ESP07]
platform = [email protected]
board = esp07
framework = arduino
build_flags =
-D ESP8266_BOARD
-D ESP07
lib_deps =
${common_env_data.lib_deps_external}

[env:ESP12s]
platform = [email protected]
board = esp12e
framework = arduino
build_flags =
-D ESP8266_BOARD
-D ESP12s
lib_deps =
${common_env_data.lib_deps_external}

[env:D1_Mini]
platform = [email protected]
board = d1_mini
framework = arduino
build_flags =
-D ESP8266_BOARD
-D D1_Mini
lib_deps =
${common_env_data.lib_deps_external}

[env:ESP32_DevKitC]
platform = [email protected]
board = esp32dev
framework = arduino
build_flags =
-D ESP32_BOARD
-D ESP32_DevKitC
lib_deps =
${common_env_data.lib_deps_external}

[env:M5StickC]
platform = [email protected]
board = m5stick-c
framework = arduino
build_flags =
-D ESP32_BOARD
-D M5StickC
lib_deps =
${common_env_data.lib_deps_external}
Loading

0 comments on commit 3c6036e

Please sign in to comment.