Wemos LOLIN32: Unterschied zwischen den Versionen
Reox (Diskussion | Beiträge) |
Reox (Diskussion | Beiträge) |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 44: | Zeile 44: | ||
Unfortunately, no direct method of battery voltage measurement is built into the system. | Unfortunately, no direct method of battery voltage measurement is built into the system. | ||
− | But it should be quite easy to implement such a thing: Use a voltage divider on the battery to get a | + | But it should be quite easy to implement such a thing: Use a voltage divider on the battery to get a 1.1V max. For a 4.2V cell, this can be achieved using a 27k and 100k resistor. |
+ | Note, that the ADC of the ESP32 is set to 1.1V range by default! You can use the attenuation but this is not available on every platform. | ||
^ V_bat | ^ V_bat | ||
| | | | ||
− | R1 = | + | R1 = 100k |
| | | | ||
+----o ADC | +----o ADC | ||
| | | | ||
− | R2 = | + | R2 = 27k |
| | | | ||
GND | GND | ||
− | Now you can measure the voltage on the battery using the ADC. As the ADC is 12bit, you can get the actual voltage by multiplying the reading by ((27+100)/ | + | Now you can measure the voltage on the battery using the ADC. As the ADC is 12bit, you can get the actual voltage by multiplying the reading by ((27+100)/27) * 1.1 / 2**12, or in more general terms: ((R1 + R2) * V_ref) / (R2 * 2**Resolution). |
+ | |||
+ | Super nice would be charge monitoring. The TL4054 can do this, you need to hookup to the PRG pin. But this results in nasty bodges on the SOT23 chip... | ||
+ | |||
+ | == Battery == | ||
+ | The battery can be connected via a JST PH2 connector. | ||
+ | They can be bought also from Conrad: [https://www.conrad.at/de/buchsengehaeuse-kabel-phr-polzahl-gesamt-2-jst-phr-2-rastermass-2-mm-1-st-740547.html ArtNr. 740547]. | ||
+ | |||
== Example Projects == | == Example Projects == | ||
* Temperature and Humidity measurement using collectd as datalogger: [https://github.com/reox/esp32_sht21_collectd ESP32_SHT21_collectd] | * Temperature and Humidity measurement using collectd as datalogger: [https://github.com/reox/esp32_sht21_collectd ESP32_SHT21_collectd] | ||
+ | |||
+ | == Further Readings == | ||
+ | |||
+ | * [http://esp32.net/ esp32.net] |
Aktuelle Version vom 17. Januar 2018, 13:20 Uhr
The Wemos LOLIN32 is a ESP-WROOM-32 based IoT development board. It is available in the [1].
As the original page has no documentation at all, here are some findings about the hardware.
Flash Micropython
The Version for ESP32 works: http://micropython.org/download#esp32 Currently (as of 08-08-2018) there is no RTC support in the ESP32 branch! That means, you are also not able to set the time correctly. My super nasty hack is, to use NTP every time you need the time...
Beware: use esptool >= 2.2! I tried with esptool 2.0 first and got an endless boot loop.
Flash the image like this:
wget http://micropython.org/resources/firmware/esp32-20180108-v1.9.3-238-g42c4dd09.bin # Adjust downloadlink! esptool.py --port /dev/ttyUSB0 erase_flash esptool.py --port /dev/ttyUSB0 write_flash -z 0x1000 esp32-20180108-v1.9.3-238-g42c4dd09.bin # Adjust image Name
Upload Files
You can use ampy to upload files. WebREPL should also work, but it looks like this code is also missing in the current ESP32 branch of Micropython.
ampy is very straight forward.:
ampy --port /dev/ttyUSB0 put main.py
I2C
The board has dedicated I2C Pins, but it does not look like a hardware implementation?! In Micropython you need to define either a hardware address or the Pins. I could not find any information about the hardware address of the I2C chip. Therefore I initialized I2C like this:
import machine i2c = machine.I2C(sda=machine.Pin(21), scl=machine.Pin(22), freq=400000) # Now scan the bus: i2c.scan()
Battery Monitoring
Unfortunately, no direct method of battery voltage measurement is built into the system. But it should be quite easy to implement such a thing: Use a voltage divider on the battery to get a 1.1V max. For a 4.2V cell, this can be achieved using a 27k and 100k resistor. Note, that the ADC of the ESP32 is set to 1.1V range by default! You can use the attenuation but this is not available on every platform.
^ V_bat | R1 = 100k | +----o ADC | R2 = 27k | GND
Now you can measure the voltage on the battery using the ADC. As the ADC is 12bit, you can get the actual voltage by multiplying the reading by ((27+100)/27) * 1.1 / 2**12, or in more general terms: ((R1 + R2) * V_ref) / (R2 * 2**Resolution).
Super nice would be charge monitoring. The TL4054 can do this, you need to hookup to the PRG pin. But this results in nasty bodges on the SOT23 chip...
Battery
The battery can be connected via a JST PH2 connector. They can be bought also from Conrad: ArtNr. 740547.
Example Projects
- Temperature and Humidity measurement using collectd as datalogger: ESP32_SHT21_collectd