The image above is showing the final minimal version of the data logger. You can see the three main components of the device. On the left side, in the white case, is the humidity and temperature sensor which provides the input for our log. The blue box on the top is the lithium ion battery pack, it provides the power supply. They both are connected to the controller, the circuit board, with all the other components on it.
Let us have a closer look to the controller:
The controller contains several components soldered to a stripboard and the wires for all interconnections. The back of the controller looks like this:
Here you can see the cuts of the copper stripes and all the soldered joints. I am using lead free fine solder which sadly often produces this matte surfaces even everything is ok with the joint.
This is the microcontroller on the board. It is a “Adafruit Trinket Pro 5V” which is basically the same microcontroller you find on every Arduino Uno, just much smaller. The chip is the ATmega328P running with 16MHz and 5V. It has 28 KByte available flash, 2 KByte RAM and 1 KByte EEPROM, I²C and SPI.
The component has a USB port for programming, but I use the headers on the bottom and a TTL cable. The serial console is only available with the TTL cable.
There is also a very small reset button just over the headers at the bottom of the board, this is very handy.
The power for the controller is coming from this component. It is called “Adafruit Power Boot 500” and it is a combined charger and voltage converter. You can plug in your lithium ion battery on the left and it will convert the 3.7V into 5.2V for the microcontroller and all other components.
If you plug in a micro USB cable into the jack at the top of the board, the battery is charged and the controller is powered from the USB source.
This component is called “ChronoDot” and it is an ultra precise real time clock. A real time clock is required, because the used microcontroller has no built-in one. After initial setup it will provide the controller with the current date and time for years, even if the controller is turned off. The drift is less than a minute per year, which is comfortable because there is virtually no adjustment necessary at a later time.
This is the main power switch for the controller. This switch is just sending a signal to the PowerBoost 500 component which turns the power on and off. I created the label using a “Dymo LetraTag” label writer which is a handy tool to label electronic components.
This BCD DIL switch ist the mode selector for the controller. It is used to select either different logging modes, reading mode or format mode. The state of this switch is read after the start of the controller and depending on the selected number an action is executed. I will explain this in detail on the usage page.
This switch controls if the battery is charged and the whole controller shall be powered from the microcontroller. This is very useful while you are programming the microcontroller. If enabled, the whole controller and all sensors are powered from the attached TTL cable.
On the other hand, connecting the power from the microcontroller to the “PowerBoost 500” will produce very small power leaks if the device is powered from the battery. This is the reason why I added this switch.
If you are programming the controller, you can turn this switch on. If you are using the controller powered from the battery you turn this switch off.
This is the header where you attach the humidity and temperature sensor. The VCC is placed on the middle pin to prevent any damage if you accidentally plug in the sensor the wrong way around.
Continue reading: Usage