Project tracker

A project log for IuT voltmeter for a breadboard

Measure several voltages on a breadboard and display results on a smartphone for less than $10 for parts

alexandernAlexanderN 06/17/2017 at 20:510 Comments

I found out that too many things need to be properly noted even for this well defined little project.

These are

- features and options (completed)

- features and options under development and development alternatives

- to do later list (essential and non-essential features, options, refinements, cool things)

- things to revisit if time permits

- anything else

1. Features and options (completed)

- controlling and pulling out data from a ADS1x15 module using an ESP

- making an ESP operate as unencrypted access point

- serve a web page with dynamically hanging voltages

- self reload a page after defined interval (much smaller than a few seconds provided with meta refresh)

- operating over 4 hours from a single battery charge

- protecting the voltmeter from overvoltages up to 50 V

- stable voltage readings; accurate to 0.5%

- additional pull down resistors of 680k together with 10M ones will prevent erroneous readings from floating pins and extend the measured voltage range to 50 V DC which is generally considered a safe voltage for humans

- custom proto shield with a USB socket and isolated DC-to-DC converter to get rid of the battery and battery shield

- reliable way of getting NodeMCU firmware to the mini lite module was found (5A); these modules to be used instead of mini ones because of their lower height, cost and easier placement underneath the female headers on the tripler/dual bases

2. Features and options under development and development alternatives

- automatic gain control for measuring voltages (increases resolution for small voltages, Lua programming) - DONE but not yet reported

- connect READY pin of the ADC module to the Wemos mini; read ADC data on the interrupt; update measured voltage in the RAM and start a new single conversion for the next channel - DONE but not yet reported

- notify the user when the voltage is too close to Vdd of likely overload, which affects readings at all the channels (JavaScript audio alert) - change COLOUR?

- user selectable number of channels used and auto refresh interval (JavaScript dialog page)

- implement AJAX for updating voltage readings rather than page reloads (JavaScript programming)

3. To do later

- implement captive portal (when a station connects to the AP, the voltmeter page is loaded automatically). Worked example here. Seems like a cool feature for demonstrating the IuT voltmeter but a casual user can bookmark the IP address of the server not to type it over and over again. Interesting to try (Lua programming)

- custom shield to use with a LiPo battery without the overdischarge protection (got the module already)

- using an efficient buck converter to convert the LiPo battery voltage down to 2.7V, which should be enough for both the mini and ADC modules (the module is being delivered)

- custom PCB for ESP-12E (or some ESP8285-based ?) module (I have some required modules already)

- using segment display for the measured voltages (JavaScript programming required)

- add current measurement circuitry to the voltmeter. Worked example here (the relevant IC is being delivered; may require extra buffer to extend the current measurement range to some extent)

- add resistance measurement circuitry to the voltmeter. Worked example here (if the last two items are implemented, the voltmeter will become a fully featured DMM).

4. Things to revisit

- find out the optimal refresh rate depending on the number of connected clients, measurement channels used and power consumption

5. Anything else

A) Getting latest NodeMCU firmware to a Wemos Lite module using ESP8266Flasher (just follow the steps and do not ask why, this procedure did work for 4 modules I have this way)

- select SPI mode: Dual Out (DOUT) and 1 MB (8 Mb) flash size - required, lowering speed/flash frequency did not seem to help much

- flash the internal NodeMCU firmware first

- flash the later NodeMCU firmware with the size below 512 kB second

- finally flash the firmware you want that exceeds 512 kB in size

UPDATE: fully confirmed with two brand new modules; after each flash the module was connected to ESPlorer (9600 for the for first two flashes, 115000 for the last one) and operated normally. Mini lite modules are cheaper and lighter than the mini modules, and will be used for this project from now on.

B) implementing AJAX without a JS library/framework -