Compare commits

..

No commits in common. "master" and "v1.0.0" have entirely different histories.

11 changed files with 52 additions and 838 deletions

4
.gitignore vendored
View file

@ -6,7 +6,3 @@ components/
# KiCAD EDA # KiCAD EDA
*.bak *.bak
*.kicad_pcb-bak *.kicad_pcb-bak
# VS Code
.vscode/arduino.json
.vscode/c_cpp_properties.json

View file

@ -1,24 +1,9 @@
# ESP32-based Environmental Sensor # Readme
Author: Jannik Beyerstedt
**license:** GNU GPL v3
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 ## Dependencies
The [esp32-idf](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html#installation-step-by-step) is needed to compile software for the ESP32.
The following sections will install to `~/Development/esp32` as an example.
Prepare toolchain (macOS): Prepare toolchain (macOS):
``` ```
cd ~/Development/ cd ~/JBeyerstedt-Projekte/
mkdir ./esp32 mkdir ./esp32
cd 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 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
@ -26,7 +11,7 @@ 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 rm xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
``` ```
Prepare toolchain (Debian, Ubuntu): Prepare toolchain (Debian, Ubuntu) (ubuntu devel vm):
``` ```
sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial
@ -40,23 +25,30 @@ rm xtensa-esp32-elf-linux64-1.22.0-73-ge28a011-5.2.0.tar.gz
Add to your bash profile, zshrc or other: 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 PATH=$PATH:$HOME/Development/esp32/xtensa-esp32-elf/bin
export IDF_PATH = $HOME/Development/esp32/esp-idf export IDF_PATH = $HOME/Development/esp32/esp-idf
``` ```
Install esp-idf: Install esp-idf:
``` ```
cd ~/Development/esp32
git clone --recursive https://github.com/espressif/esp-idf.git git clone --recursive https://github.com/espressif/esp-idf.git
``` ```
## Checkout this project and configure arduino-es32 with esp-idf:
## Checkout this project and configure arduino-esp32 with esp-idf:
``` ```
mkdir -p components && cd components TODO!!
git clone https://github.com/espressif/arduino-esp32.git arduino && cd arduino
git submodule update --init --recursive mkdir -p components && \
cd components && \
git clone https://github.com/espressif/arduino-esp32.git arduino && \
cd arduino && \
git submodule update --init --recursive && \
cd ../.. cd ../..
``` ```
@ -76,18 +68,3 @@ make all
make flash make flash
``` ```
You would probably have to adapt the `UPLOAD_PORT` in the `Makefile` or set it via an environment variable. You would probably have to adapt the `UPLOAD_PORT` in the `Makefile` or set it via an environment variable.
## Battery Life
The hardware was designed with two options to drop the battery voltage to a level, which can be fed to the ESP32: A voltage regulator or a simple diode.
A test with increased data rate (for a shorter test duration) resulted in a slightly better battery life using the voltage regulator.
Using a measurement interval of 30 seconds and a WiFi connection interval of 3 minutes, the 2500mAh LiIon (3.7V) battery lasted 30 days with the diode and 36 days using the voltage regulator.
In real-world application, a battery life of about 9 months can be expected (with good WLAN reception).
The selected voltage regulator has a quite low drop-out voltage and more importantly a low leaking current during the deep-sleep phases, which have a very low current needed by the ESP32.
In comparison a diode has no leaking current at all, but a more or less fixed voltage drop.
The benefit of the voltage regulator is, that the battery voltage range can be exploited further than what can be done with the diode.
The lowest operational battery level was 3.2 V using the diode and 2.8 V using the voltage regulator.

View file

@ -1,754 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<export version="D">
<design>
<source>/Users/jannik/JBeyerstedt-Projekte/esp32/esp32-sensornode/board-design/esp32-sensornode.sch</source>
<date>Monday, 06 August 2018 at 20:24:19</date>
<tool>Eeschema (5.0.0-3-g5ebb6b6)</tool>
<sheet number="1" name="/" tstamps="/">
<title_block>
<title>ESP32 Sensor Node with SI7021</title>
<company>Jannik Beyerstedt</company>
<rev>2</rev>
<date>2018-08-01</date>
<source>esp32-sensornode.sch</source>
<comment number="1" value=""/>
<comment number="2" value=""/>
<comment number="3" value=""/>
<comment number="4" value=""/>
</title_block>
</sheet>
</design>
<components>
<comp ref="D1">
<value>1N5401</value>
<footprint>Diode_THT:D_DO-201AD_P12.70mm_Horizontal</footprint>
<datasheet>http://www.vishay.com/docs/88503/1n4001.pdf</datasheet>
<libsource lib="Diode" part="1N4001" description="50V 1A General Purpose Rectifier Diode, DO-41"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B5EF193</tstamp>
</comp>
<comp ref="U2">
<value>Si7021-A20</value>
<footprint>Package_DFN_QFN:DFN-6-1EP_3x3mm_P1mm_EP1.5x2.4mm</footprint>
<datasheet>https://www.silabs.com/documents/public/data-sheets/Si7020-A20.pdf</datasheet>
<libsource lib="Sensor_Humidity" part="Si7020-A20" description="I2C Humidity and Temperature Sensor, DFN-6"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B5EF5BA</tstamp>
</comp>
<comp ref="J2">
<value>FTDI:GRN-BLK</value>
<footprint>Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical</footprint>
<datasheet>~</datasheet>
<libsource lib="Connector" part="Conn_01x06_Male" description="Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/)"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B5EFFB5</tstamp>
</comp>
<comp ref="BT1">
<value>18650 Li-Ion</value>
<footprint>JBeyerstedt-Library:BatteryHolder_COMF_BHC-18650-1</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="Battery_Cell" description="single battery cell"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B5F4F5C</tstamp>
</comp>
<comp ref="U1">
<value>ESP32-WROOM</value>
<footprint>JBeyerstedt-Library:ESP32-WROOM</footprint>
<libsource lib="JBeyerstedt-Library" part="ESP32-WROOM" description="Highly integrated Wi-Fi SoC, ESP-WROOM-32"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B5F5158</tstamp>
</comp>
<comp ref="J3">
<value>SI7021:SDA-VIN</value>
<footprint>Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical</footprint>
<datasheet>~</datasheet>
<libsource lib="Connector" part="Conn_01x04_Female" description="Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B5F555A</tstamp>
</comp>
<comp ref="R1">
<value>22K</value>
<footprint>Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="R" description="Resistor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B5F5773</tstamp>
</comp>
<comp ref="R2">
<value>22K</value>
<footprint>Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="R" description="Resistor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B5F57E6</tstamp>
</comp>
<comp ref="R6">
<value>3.3M</value>
<footprint>Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="R" description="Resistor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B5F5860</tstamp>
</comp>
<comp ref="J4">
<value>BOOT-EXEC</value>
<footprint>Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical</footprint>
<datasheet>~</datasheet>
<libsource lib="Connector" part="Conn_01x03_Male" description="Generic connector, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/)"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B5F59C4</tstamp>
</comp>
<comp ref="R3">
<value>22K</value>
<footprint>Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="R" description="Resistor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B5FD2E5</tstamp>
</comp>
<comp ref="C1">
<value>1n</value>
<footprint>Capacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="C" description="Unpolarized capacitor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B6101CB</tstamp>
</comp>
<comp ref="C3">
<value>1u</value>
<footprint>Capacitor_THT:C_Rect_L4.6mm_W3.8mm_P2.50mm_MKS02_FKP02</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="C" description="Unpolarized capacitor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B610407</tstamp>
</comp>
<comp ref="C2">
<value>0.1u</value>
<footprint>Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="C" description="Unpolarized capacitor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B61048F</tstamp>
</comp>
<comp ref="R7">
<value>1M</value>
<footprint>Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="R" description="Resistor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B628838</tstamp>
</comp>
<comp ref="R5">
<value>22K</value>
<footprint>Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="R" description="Resistor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B640572</tstamp>
</comp>
<comp ref="R4">
<value>22K</value>
<footprint>Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="R" description="Resistor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B6405FC</tstamp>
</comp>
<comp ref="SW1">
<value>EN</value>
<footprint>Button_Switch_THT:SW_PUSH_6mm</footprint>
<libsource lib="Switch" part="SW_Push" description="Push button switch, generic, two pins"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B61DE7C</tstamp>
</comp>
<comp ref="R8">
<value>47R</value>
<footprint>Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="R" description="Resistor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B64D8D2</tstamp>
</comp>
<comp ref="C4">
<value>0.1u</value>
<footprint>Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="C" description="Unpolarized capacitor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B668915</tstamp>
</comp>
<comp ref="J1">
<value>JTAG_ESP32</value>
<footprint>Connector_PinHeader_2.54mm:PinHeader_2x07_P2.54mm_Vertical</footprint>
<datasheet>~</datasheet>
<libsource lib="JBeyerstedt-Library" part="JTAG_ESP32" description="Shortened JTAG connector, double row, 02x07"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B6839CC</tstamp>
</comp>
<comp ref="C5">
<value>100u</value>
<footprint>Capacitor_THT:CP_Radial_D10.0mm_P5.00mm</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="CP" description="Polarised capacitor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B6383FA</tstamp>
</comp>
<comp ref="C6">
<value>470u</value>
<footprint>Capacitor_THT:CP_Radial_D10.0mm_P5.00mm</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="CP" description="Polarised capacitor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B63868C</tstamp>
</comp>
<comp ref="C7">
<value>4.7u</value>
<footprint>Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="C" description="Unpolarized capacitor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B68C40C</tstamp>
</comp>
<comp ref="C8">
<value>0.01u</value>
<footprint>Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="C" description="Unpolarized capacitor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B6A7422</tstamp>
</comp>
<comp ref="C9">
<value>0.1u</value>
<footprint>Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="C" description="Unpolarized capacitor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B6A7469</tstamp>
</comp>
<comp ref="U3">
<value>TC1262-33</value>
<footprint>Package_TO_SOT_SMD:SOT-223-3_TabPin2</footprint>
<datasheet>http://ww1.microchip.com/downloads/en/DeviceDoc/21373C.pdf</datasheet>
<libsource lib="Regulator_Linear" part="TC1262-33" description="500mA Low Dropout CMOS Voltage Regulator, Fixed Output 3.3V, TO-220/SOT-223/TO-263"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B68D0BE</tstamp>
</comp>
<comp ref="C10">
<value>1u</value>
<footprint>Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder</footprint>
<datasheet>~</datasheet>
<libsource lib="Device" part="C" description="Unpolarized capacitor"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>5B68D194</tstamp>
</comp>
</components>
<libparts>
<libpart lib="Connector" part="Conn_01x03_Male">
<description>Generic connector, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/)</description>
<docs>~</docs>
<footprints>
<fp>Connector*:*_1x??_*</fp>
</footprints>
<fields>
<field name="Reference">J</field>
<field name="Value">Conn_01x03_Male</field>
</fields>
<pins>
<pin num="1" name="Pin_1" type="passive"/>
<pin num="2" name="Pin_2" type="passive"/>
<pin num="3" name="Pin_3" type="passive"/>
</pins>
</libpart>
<libpart lib="Connector" part="Conn_01x04_Female">
<description>Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)</description>
<docs>~</docs>
<footprints>
<fp>Connector*:*_1x??_*</fp>
</footprints>
<fields>
<field name="Reference">J</field>
<field name="Value">Conn_01x04_Female</field>
</fields>
<pins>
<pin num="1" name="Pin_1" type="passive"/>
<pin num="2" name="Pin_2" type="passive"/>
<pin num="3" name="Pin_3" type="passive"/>
<pin num="4" name="Pin_4" type="passive"/>
</pins>
</libpart>
<libpart lib="Connector" part="Conn_01x06_Male">
<description>Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/)</description>
<docs>~</docs>
<footprints>
<fp>Connector*:*_1x??_*</fp>
</footprints>
<fields>
<field name="Reference">J</field>
<field name="Value">Conn_01x06_Male</field>
</fields>
<pins>
<pin num="1" name="Pin_1" type="passive"/>
<pin num="2" name="Pin_2" type="passive"/>
<pin num="3" name="Pin_3" type="passive"/>
<pin num="4" name="Pin_4" type="passive"/>
<pin num="5" name="Pin_5" type="passive"/>
<pin num="6" name="Pin_6" type="passive"/>
</pins>
</libpart>
<libpart lib="Device" part="Battery_Cell">
<description>single battery cell</description>
<docs>~</docs>
<fields>
<field name="Reference">BT</field>
<field name="Value">Battery_Cell</field>
</fields>
<pins>
<pin num="1" name="+" type="passive"/>
<pin num="2" name="-" type="passive"/>
</pins>
</libpart>
<libpart lib="Device" part="C">
<description>Unpolarized capacitor</description>
<docs>~</docs>
<footprints>
<fp>C_*</fp>
</footprints>
<fields>
<field name="Reference">C</field>
<field name="Value">C</field>
</fields>
<pins>
<pin num="1" name="~" type="passive"/>
<pin num="2" name="~" type="passive"/>
</pins>
</libpart>
<libpart lib="Device" part="CP">
<description>Polarised capacitor</description>
<docs>~</docs>
<footprints>
<fp>CP_*</fp>
</footprints>
<fields>
<field name="Reference">C</field>
<field name="Value">CP</field>
</fields>
<pins>
<pin num="1" name="~" type="passive"/>
<pin num="2" name="~" type="passive"/>
</pins>
</libpart>
<libpart lib="Device" part="R">
<description>Resistor</description>
<docs>~</docs>
<footprints>
<fp>R_*</fp>
</footprints>
<fields>
<field name="Reference">R</field>
<field name="Value">R</field>
</fields>
<pins>
<pin num="1" name="~" type="passive"/>
<pin num="2" name="~" type="passive"/>
</pins>
</libpart>
<libpart lib="Diode" part="1N4001">
<aliases>
<alias>1N4002</alias>
<alias>1N4003</alias>
<alias>1N4004</alias>
<alias>1N4005</alias>
<alias>1N4006</alias>
<alias>1N4007</alias>
<alias>BA157</alias>
<alias>BA158</alias>
<alias>BA159</alias>
</aliases>
<description>50V 1A General Purpose Rectifier Diode, DO-41</description>
<docs>http://www.vishay.com/docs/88503/1n4001.pdf</docs>
<footprints>
<fp>D*DO?41*</fp>
</footprints>
<fields>
<field name="Reference">D</field>
<field name="Value">1N4001</field>
<field name="Footprint">Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal</field>
</fields>
<pins>
<pin num="1" name="K" type="passive"/>
<pin num="2" name="A" type="passive"/>
</pins>
</libpart>
<libpart lib="JBeyerstedt-Library" part="ESP32-WROOM">
<description>Highly integrated Wi-Fi SoC, ESP-WROOM-32</description>
<footprints>
<fp>ESP32-WROOM</fp>
</footprints>
<fields>
<field name="Reference">U</field>
<field name="Value">ESP32-WROOM</field>
</fields>
<pins>
<pin num="1" name="GND" type="power_in"/>
<pin num="2" name="3V3" type="power_in"/>
<pin num="3" name="EN" type="input"/>
<pin num="4" name="SENS_VP" type="BiDi"/>
<pin num="5" name="SENS_VN" type="BiDi"/>
<pin num="6" name="IO34" type="BiDi"/>
<pin num="7" name="IO35" type="BiDi"/>
<pin num="8" name="IO32" type="BiDi"/>
<pin num="9" name="IO33" type="BiDi"/>
<pin num="10" name="IO25" type="BiDi"/>
<pin num="11" name="IO26" type="BiDi"/>
<pin num="12" name="IO27" type="BiDi"/>
<pin num="13" name="IO14" type="BiDi"/>
<pin num="14" name="IO12" type="BiDi"/>
<pin num="15" name="GND" type="power_in"/>
<pin num="16" name="IO13" type="BiDi"/>
<pin num="17" name="SD2" type="BiDi"/>
<pin num="18" name="SD3" type="BiDi"/>
<pin num="19" name="CMD" type="BiDi"/>
<pin num="20" name="CLK" type="BiDi"/>
<pin num="21" name="SDO" type="BiDi"/>
<pin num="22" name="SD1" type="BiDi"/>
<pin num="23" name="IO15" type="BiDi"/>
<pin num="24" name="IO2" type="BiDi"/>
<pin num="25" name="IO0" type="BiDi"/>
<pin num="26" name="IO4" type="BiDi"/>
<pin num="27" name="IO16" type="BiDi"/>
<pin num="28" name="IO17" type="BiDi"/>
<pin num="29" name="IO5" type="BiDi"/>
<pin num="30" name="IO18" type="BiDi"/>
<pin num="31" name="IO19" type="BiDi"/>
<pin num="32" name="NC" type="NotConnected"/>
<pin num="33" name="IO21" type="BiDi"/>
<pin num="34" name="RXD0" type="BiDi"/>
<pin num="35" name="TXD0" type="BiDi"/>
<pin num="36" name="IO22" type="BiDi"/>
<pin num="37" name="IO23" type="BiDi"/>
<pin num="38" name="GND" type="power_in"/>
<pin num="39" name="GND-PAD" type="power_in"/>
</pins>
</libpart>
<libpart lib="JBeyerstedt-Library" part="JTAG_ESP32">
<description>Shortened JTAG connector, double row, 02x07</description>
<docs>~</docs>
<footprints>
<fp>Connector*:*_2x07_*</fp>
</footprints>
<fields>
<field name="Reference">J</field>
<field name="Value">JTAG_ESP32</field>
</fields>
<pins>
<pin num="1" name="VTref" type="passive"/>
<pin num="2" name="NC" type="NotConnected"/>
<pin num="3" name="nTRST" type="passive"/>
<pin num="4" name="GND" type="passive"/>
<pin num="5" name="TDI" type="passive"/>
<pin num="6" name="GND" type="passive"/>
<pin num="7" name="TMS" type="passive"/>
<pin num="8" name="GND" type="passive"/>
<pin num="9" name="TCK" type="passive"/>
<pin num="10" name="GND" type="passive"/>
<pin num="11" name="RTCK" type="passive"/>
<pin num="12" name="GND" type="passive"/>
<pin num="13" name="TDO" type="passive"/>
<pin num="14" name="GND" type="passive"/>
</pins>
</libpart>
<libpart lib="Regulator_Linear" part="TC1262-33">
<aliases>
<alias>TC1262-25</alias>
<alias>TC1262-28</alias>
<alias>TC1262-30</alias>
<alias>TC1262-50</alias>
</aliases>
<description>500mA Low Dropout CMOS Voltage Regulator, Fixed Output 3.3V, TO-220/SOT-223/TO-263</description>
<docs>http://ww1.microchip.com/downloads/en/DeviceDoc/21373C.pdf</docs>
<footprints>
<fp>SOT?223*</fp>
<fp>TO?220*</fp>
<fp>TO?263*</fp>
</footprints>
<fields>
<field name="Reference">U</field>
<field name="Value">TC1262-33</field>
</fields>
<pins>
<pin num="1" name="VI" type="power_in"/>
<pin num="2" name="GND" type="power_in"/>
<pin num="3" name="VO" type="power_out"/>
</pins>
</libpart>
<libpart lib="Sensor_Humidity" part="Si7020-A20">
<description>I2C Humidity and Temperature Sensor, DFN-6</description>
<docs>https://www.silabs.com/documents/public/data-sheets/Si7020-A20.pdf</docs>
<footprints>
<fp>DFN*1EP*3x3mm*P1mm*</fp>
</footprints>
<fields>
<field name="Reference">U</field>
<field name="Value">Si7020-A20</field>
<field name="Footprint">Package_DFN_QFN:DFN-6-1EP_3x3mm_P1mm_EP1.5x2.4mm</field>
</fields>
<pins>
<pin num="1" name="SDA" type="BiDi"/>
<pin num="2" name="GND" type="power_in"/>
<pin num="3" name="NC" type="NotConnected"/>
<pin num="4" name="NC" type="NotConnected"/>
<pin num="5" name="VDD" type="power_in"/>
<pin num="6" name="SCL" type="input"/>
<pin num="7" name="PAD" type="passive"/>
</pins>
</libpart>
<libpart lib="Switch" part="SW_Push">
<description>Push button switch, generic, two pins</description>
<fields>
<field name="Reference">SW</field>
<field name="Value">SW_Push</field>
</fields>
<pins>
<pin num="1" name="1" type="passive"/>
<pin num="2" name="2" type="passive"/>
</pins>
</libpart>
</libparts>
<libraries>
<library logical="Connector">
<uri>/Library/Application Support/kicad/library/Connector.lib</uri>
</library>
<library logical="Device">
<uri>/Library/Application Support/kicad/library/Device.lib</uri>
</library>
<library logical="Diode">
<uri>/Library/Application Support/kicad/library/Diode.lib</uri>
</library>
<library logical="JBeyerstedt-Library">
<uri>/Users/jannik/JBeyerstedt-Projekte/kicad-eda/JBeyerstedt-Library.lib</uri>
</library>
<library logical="Regulator_Linear">
<uri>/Library/Application Support/kicad/library/Regulator_Linear.lib</uri>
</library>
<library logical="Sensor_Humidity">
<uri>/Library/Application Support/kicad/library/Sensor_Humidity.lib</uri>
</library>
<library logical="Switch">
<uri>/Library/Application Support/kicad/library/Switch.lib</uri>
</library>
</libraries>
<nets>
<net code="1" name="VDD">
<node ref="D1" pin="1"/>
<node ref="U2" pin="5"/>
<node ref="C3" pin="1"/>
<node ref="C10" pin="1"/>
<node ref="U3" pin="3"/>
<node ref="U1" pin="2"/>
<node ref="C2" pin="1"/>
<node ref="C9" pin="1"/>
<node ref="C8" pin="1"/>
<node ref="C7" pin="1"/>
<node ref="C6" pin="1"/>
<node ref="C5" pin="1"/>
<node ref="J3" pin="1"/>
<node ref="J1" pin="1"/>
<node ref="R1" pin="1"/>
<node ref="J4" pin="1"/>
<node ref="R4" pin="1"/>
<node ref="R5" pin="1"/>
</net>
<net code="2" name="Net-(U2-Pad3)">
<node ref="U2" pin="3"/>
</net>
<net code="3" name="Net-(U2-Pad4)">
<node ref="U2" pin="4"/>
</net>
<net code="4" name="Net-(U2-Pad7)">
<node ref="U2" pin="7"/>
</net>
<net code="5" name="Net-(J2-Pad1)">
<node ref="J2" pin="1"/>
</net>
<net code="6" name="Net-(J2-Pad4)">
<node ref="J2" pin="4"/>
</net>
<net code="7" name="Net-(J2-Pad5)">
<node ref="J2" pin="5"/>
</net>
<net code="8" name="GND">
<node ref="U2" pin="2"/>
<node ref="C1" pin="2"/>
<node ref="C3" pin="2"/>
<node ref="C2" pin="2"/>
<node ref="J2" pin="6"/>
<node ref="BT1" pin="2"/>
<node ref="R7" pin="2"/>
<node ref="U1" pin="1"/>
<node ref="C9" pin="2"/>
<node ref="J4" pin="3"/>
<node ref="U1" pin="38"/>
<node ref="C8" pin="2"/>
<node ref="R2" pin="1"/>
<node ref="U1" pin="15"/>
<node ref="C10" pin="2"/>
<node ref="C7" pin="2"/>
<node ref="U3" pin="2"/>
<node ref="R8" pin="2"/>
<node ref="C4" pin="2"/>
<node ref="C6" pin="2"/>
<node ref="C5" pin="2"/>
<node ref="J1" pin="10"/>
<node ref="J1" pin="11"/>
<node ref="J1" pin="12"/>
<node ref="J1" pin="14"/>
<node ref="J1" pin="4"/>
<node ref="J1" pin="6"/>
<node ref="J1" pin="8"/>
<node ref="J3" pin="2"/>
</net>
<net code="9" name="Net-(U1-Pad10)">
<node ref="U1" pin="10"/>
</net>
<net code="10" name="Net-(U1-Pad11)">
<node ref="U1" pin="11"/>
</net>
<net code="11" name="Net-(U1-Pad12)">
<node ref="U1" pin="12"/>
</net>
<net code="12" name="Net-(U1-Pad17)">
<node ref="U1" pin="17"/>
</net>
<net code="13" name="Net-(U1-Pad18)">
<node ref="U1" pin="18"/>
</net>
<net code="14" name="Net-(U1-Pad19)">
<node ref="U1" pin="19"/>
</net>
<net code="15" name="Net-(U1-Pad20)">
<node ref="U1" pin="20"/>
</net>
<net code="16" name="Net-(U1-Pad21)">
<node ref="U1" pin="21"/>
</net>
<net code="17" name="Net-(U1-Pad22)">
<node ref="U1" pin="22"/>
</net>
<net code="18" name="Net-(U1-Pad26)">
<node ref="U1" pin="26"/>
</net>
<net code="19" name="Net-(U1-Pad27)">
<node ref="U1" pin="27"/>
</net>
<net code="20" name="Net-(U1-Pad28)">
<node ref="U1" pin="28"/>
</net>
<net code="21" name="Net-(U1-Pad29)">
<node ref="U1" pin="29"/>
</net>
<net code="22" name="Net-(U1-Pad30)">
<node ref="U1" pin="30"/>
</net>
<net code="23" name="Net-(U1-Pad31)">
<node ref="U1" pin="31"/>
</net>
<net code="24" name="Net-(U1-Pad32)">
<node ref="U1" pin="32"/>
</net>
<net code="25" name="Net-(U1-Pad37)">
<node ref="U1" pin="37"/>
</net>
<net code="26" name="Net-(U1-Pad39)">
<node ref="U1" pin="39"/>
</net>
<net code="27" name="BAT_SENS">
<node ref="C4" pin="1"/>
<node ref="U1" pin="4"/>
<node ref="R6" pin="2"/>
<node ref="R7" pin="1"/>
</net>
<net code="28" name="Net-(U1-Pad5)">
<node ref="U1" pin="5"/>
</net>
<net code="29" name="Net-(U1-Pad6)">
<node ref="U1" pin="6"/>
</net>
<net code="30" name="Net-(U1-Pad7)">
<node ref="U1" pin="7"/>
</net>
<net code="31" name="Net-(U1-Pad8)">
<node ref="U1" pin="8"/>
</net>
<net code="32" name="Net-(U1-Pad9)">
<node ref="U1" pin="9"/>
</net>
<net code="33" name="Net-(R2-Pad2)">
<node ref="R2" pin="2"/>
<node ref="U1" pin="24"/>
</net>
<net code="34" name="BAT">
<node ref="BT1" pin="1"/>
<node ref="U3" pin="1"/>
<node ref="R6" pin="1"/>
<node ref="D1" pin="2"/>
</net>
<net code="35" name="Net-(J4-Pad2)">
<node ref="J4" pin="2"/>
<node ref="R3" pin="1"/>
</net>
<net code="36" name="/TX">
<node ref="U1" pin="35"/>
<node ref="J2" pin="2"/>
</net>
<net code="37" name="/RX">
<node ref="J2" pin="3"/>
<node ref="U1" pin="34"/>
</net>
<net code="38" name="Net-(C1-Pad1)">
<node ref="C1" pin="1"/>
<node ref="SW1" pin="2"/>
<node ref="U1" pin="3"/>
<node ref="R1" pin="2"/>
<node ref="J1" pin="3"/>
</net>
<net code="39" name="Net-(R8-Pad1)">
<node ref="SW1" pin="1"/>
<node ref="R8" pin="1"/>
</net>
<net code="40" name="Net-(J1-Pad13)">
<node ref="J1" pin="13"/>
<node ref="U1" pin="23"/>
</net>
<net code="41" name="Net-(J1-Pad2)">
<node ref="J1" pin="2"/>
</net>
<net code="42" name="Net-(J1-Pad9)">
<node ref="U1" pin="16"/>
<node ref="J1" pin="9"/>
</net>
<net code="43" name="SDA">
<node ref="J3" pin="4"/>
<node ref="U1" pin="33"/>
<node ref="U2" pin="1"/>
<node ref="R5" pin="2"/>
</net>
<net code="44" name="SCL">
<node ref="R4" pin="2"/>
<node ref="J3" pin="3"/>
<node ref="U1" pin="36"/>
<node ref="U2" pin="6"/>
</net>
<net code="45" name="/BOOT">
<node ref="R3" pin="2"/>
<node ref="U1" pin="25"/>
</net>
<net code="46" name="Net-(J1-Pad5)">
<node ref="U1" pin="14"/>
<node ref="J1" pin="5"/>
</net>
<net code="47" name="Net-(J1-Pad7)">
<node ref="U1" pin="13"/>
<node ref="J1" pin="7"/>
</net>
</nets>
</export>

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View file

@ -1,29 +1,29 @@
# ESP32 SensorNode PCB Layout, rev. 2 # ESP32 SensorNode PCB Layout, rev. 2
## Bill of Materials ## Bill of Materials
Type | Qty | Value | Footprint | Notes Type | Qty | Value | Footprint
----------- | --- | ------- | --------------- | ----- ----------- | --- | ------- | ---------------
Si7021 | 1 | A20-GM1 | DFN-6 | Si7021 | 1 | A20-GM1 | DFN-6
Switch | 1 | -x- | THT SW_PUSH_6mm | Switch | 1 | -x- | THT SW_PUSH_6mm
Resistor | 2 | 22k | SMD 0805 | Resistor | 2 | 22k | SMD 0805
Capacitor | 1 | 0.01u | SMD 0805 | Capacitor | 1 | 0.01u | SMD 0805
Capacitor | 3 | 0.1u | SMD 0805 | Capacitor | 3 | 0.1u | SMD 0805
Capacitor | 1 | 1u | SMD 0805 | Capacitor | 1 | 1u | SMD 0805
Capacitor | 1 | 4.7u | SMD 0805 | Capacitor | 1 | 4.7u | SMD 0805
VoltageReg | 1 | TC1262 | SOT-223-3 | VoltageReg | 1 | TC1262 | SOT-223-3
Resistor | 3 | 22k | THT L6.3 P10.16 | Resistor | 3 | 22k | THT L6.3 P10.16
Resistor | 1 | 2.7M | THT L6.3 P10.16 | Resistor | 1 | 2.7M | THT L6.3 P10.16
Resistor | 1 | 1M | THT L6.3 P10.16 | Resistor | 1 | 1M | THT L6.3 P10.16
Resistor | 1 | 47R | THT L6.3 P10.16 | Resistor | 1 | 47R | THT L6.3 P10.16
Capacitor | 1 | 1n | THT P7.50 Disk | Capacitor | 1 | 1n | THT P7.50 Disk
Capacitor | 1 | 1u | THT P2.50 Rect | not needed ! Capacitor | 1 | 1u | THT P2.50 Rect
Capacitor | 1 | 100u | THT P5.00 Elko | probably not needed Capacitor | 1 | 100u | THT P5.00 Elko
Capacitor | 1 | 460u | THT P5.00 Elko | not needed ! Capacitor | 1 | 460u | THT P5.00 Elko
Diode | 1 | 1N540x | THT | not needed, using voltage reg. Diode | 1 | 1N540x | THT
---- | -- | ---- | ---- | ---- | -- | ---- | ----
Bat Holder | 1 | 18650 | x | Bat Holder | 1 | 18650 | x
ESP32 | 1 | WROOM | x | ESP32 | 1 | WROOM | x
Pin 2x07 M | 1 | -x- | THT P2.54 2x07 | Pin 2x07 M | 1 | -x- | THT P2.54 2x07
Pin 1x06 M | 1 | -x- | THT P2.54 2x07 | Pin 1x06 M | 1 | -x- | THT P2.54 2x07
Pin 1x04 M | 1 | -x- | THT P2.54 2x07 | Pin 1x04 M | 1 | -x- | THT P2.54 2x07
Pin 1x03 M | 1 | -x- | THT P2.54 2x07 | Pin 1x03 M | 1 | -x- | THT P2.54 2x07

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -3,6 +3,3 @@
# #
# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.)
PROJ_GIT_VER := $(shell git describe --always --tags --dirty)
CPPFLAGS += -D PROJ_VER=\"$(PROJ_GIT_VER)\"

View file

@ -28,14 +28,14 @@
#endif #endif
#ifndef BOARD #ifndef BOARD
#define BOARD 4 /* IMPORTANT: select one of the BOARD_* types */ #define BOARD 0 /* IMPORTANT: select one of the BOARD_* types */
#endif #endif
#define DB_HOSTNAME "influx-iot.fra80" #define DB_HOSTNAME "ursaminor.fra80"
#define DB_PASSWD "c2Vuc29yczpTZW5zb3JzLXcuaW5mbHV4QGhvbWU" // BasicAuth String #define DB_PASSWD "c2Vuc29yczpTZW5zb3JzLXcuaW5mbHV4QGhvbWU" // BasicAuth String
#if BOARD == BOARD_ESP32 #if BOARD == BOARD_ESP32
#define BATT_FULL 3700 // 4.2V Battery #define BATT_FULL 3800 // 4.3V Battery
#define BATT_CUTOFF 2500 // 2.8V Battery #define BATT_CUTOFF 2500 // 2.8V Battery
#else #else
#error "unsupported board chosen" #error "unsupported board chosen"
@ -68,9 +68,9 @@ String serviceUri = "/write?db=test";
#endif #endif
/* GLOBAL VARIABLES */ /* GLOBAL VARIABLES */
const uint16_t wlanConnectCheckInterval = 250; // milli seconds: poll wifi.state after wifi.begin() const uint16_t wlanConnectCheckInterval = 250; // milli seconds: poll wifi.state after wifi.begin()
const uint16_t wlanConnectTimeout = 15000; // milli seconds const uint16_t wlanConnectTimeout = 15000; // milli seconds
RTC_DATA_ATTR uint8_t wlanConnectFailCnt = 0; RTC_DATA_ATTR uint8_t wlanConnectFailCnt = 0;
Si7021 si7021 = Si7021(); Si7021 si7021 = Si7021();
float temp = 0.0; float temp = 0.0;
@ -176,14 +176,12 @@ extern "C" void app_main() {
delay(100); delay(100);
Serial.println(""); Serial.println("");
Serial.print("[INFO ] Type "); Serial.print("[INFO ] Node ");
Serial.print(BOARD);
Serial.print(", Node: ");
Serial.print(loggerId); Serial.print(loggerId);
Serial.print(" ("); Serial.print(", Name: ");
Serial.print(loggerName); Serial.print(loggerName);
Serial.print("), Build: "); Serial.print(", BoardType: ");
Serial.println(PROJ_VER); Serial.println(BOARD);
#endif #endif
#ifdef PRINT_DEBUG #ifdef PRINT_DEBUG
printWakeupReason(); printWakeupReason();