Room climate sensor node (temperature, humidity) using ESP32 and SI7021 powered by a 18650 LiIon battery.
Find a file
2020-03-25 12:49:32 +00:00
.vscode initial commit: copied code from arduino-esp project 2018-07-29 16:33:59 +02:00
board-design [DOC] add case STL and freeCAD files 2018-11-25 21:43:47 +01:00
board-v2 [DOC] add case STL and freeCAD files 2018-11-25 21:43:47 +01:00
case [DOC] add case STL and freeCAD files 2018-11-25 21:43:47 +01:00
main [CODE] add build info (git commit) to info line 2019-04-07 16:15:43 +02:00
.clang-format initial commit: copied code from arduino-esp project 2018-07-29 16:33:59 +02:00
.editorconfig initial commit: copied code from arduino-esp project 2018-07-29 16:33:59 +02:00
.gitignore [CODE] add build info (git commit) to info line 2019-04-07 16:15:43 +02:00
LICENSE initial commit: copied code from arduino-esp project 2018-07-29 16:33:59 +02:00
Makefile initial commit: copied code from arduino-esp project 2018-07-29 16:33:59 +02:00
README.md Update 'README.md' 2020-03-25 12:49:32 +00:00
sdkconfig [TIDY] fix typo 2018-08-02 20:41:08 +02:00

ESP32-based Environmental Sensor

A simple temperature and humidity sensor node using an ESP32 and a Si7021 sensor element running of a 18650 LiIon battery cell. The sensor outputs the data to an influxdb instance, which must be reachable via HTTP.

To save energy, we use a lower CPU frequency. But this requires compiling the core framework again with the changed settings (see below).

This repository contains the code running on the ESP32, as well as the PCB and case design.

Dependencies

Prepare toolchain (macOS):

cd ~/JBeyerstedt-Projekte/
mkdir ./esp32
cd esp32
curl https://dl.espressif.com/dl/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz -o xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
tar -xzf xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
rm xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz

Prepare toolchain (Debian, Ubuntu) (ubuntu devel vm):

sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial

cd ~/Development/
mkdir ./esp32
cd esp32
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-73-ge28a011-5.2.0.tar.gz
tar -xzf xtensa-esp32-elf-linux64-1.22.0-73-ge28a011-5.2.0.tar.gz
rm xtensa-esp32-elf-linux64-1.22.0-73-ge28a011-5.2.0.tar.gz

Add to your bash profile, zshrc or other:

export PATH=$PATH:$HOME/JBeyerstedt-Projekte/esp32/xtensa-esp32-elf/bin
export IDF_PATH = $HOME/JBeyerstedt-Projekte/esp32/esp-idf

or for ubuntu devel vm:

export PATH=$PATH:$HOME/Development/esp32/xtensa-esp32-elf/bin
export IDF_PATH = $HOME/Development/esp32/esp-idf

Install esp-idf:

git clone --recursive https://github.com/espressif/esp-idf.git

Checkout this project and configure arduino-esp32 with esp-idf:

TODO!!

mkdir -p components && \
cd components && \
git clone https://github.com/espressif/arduino-esp32.git arduino && \
cd arduino && \
git submodule update --init --recursive && \
cd ../..

Configure make menuconfig:

  • under "Arduino Configuration":
    • "Autostart Arduino setup and loop on boot": off
    • "Disable mutex locks for HAL": off
  • under "Serial flasher config":
    • change flash size to 4 MB
    • optionally set your serial port
  • under "Component config" -> "ESP32-secific":
    • set CPU frequency to 80 MHz

Make and flash:

make all
make flash

You would probably have to adapt the UPLOAD_PORT in the Makefile or set it via an environment variable.