Author Archives: R-B

BuzzWatch: A personal tactile reminder

BuzzWatch is a wearable tactile reminder device that can be programmed to vibrate at constant or random intervals notifying the wearer about the passage of time, as well as prompting them to think about what they are doing, and if they need to be somewhere else at the moment. The device uses the Atmel ATTiny13A MCU as its brain, with a thumbwheel potentiometer for setting the time interval of the reminder. A tiny vibrating motor works as a buzzer in the device. The whole electronics fit into a 3D printed ABS case with dimensions of 30x30x9mm. BuzzWatch runs off a 1225 lithium coin cell. In order to prolong the battery life, the ATTiny13A remains mostly in sleep mode. If you sit in front of the computer for hours, this device can serve as an alert telling you when it’s time to get up from your seat and stretch.

Personal tactile reminder

Personal tactile reminder

I used SMD components to keep the device thickness (and also the amount of holes to drill) to a minimum. The only two through-hole parts are the pot and the battery clip. These two also define the dimensions of the board, it could’ve been somewhat smaller otherwise. It’s a one-sided design, which makes it more convenient for home etching. I used photoresistive film as both etching mask and solder mask and a CuSO₄-based etchant. The μC footprint can accomodate both the -SU and -SSU versions of the tiny13. Due to the small size of the board, including a standard ICSP header would be impractical, so contact pads with standard 2.54mm spacing (matching the t13-P pinout so that the jig could later be used in breadboards) are provided instead. Ideally the jig/adapter would use pogo pins, but since I don’t have those I used sewing needles instead and soldered it to the board for the duration of the development.

Automatic garage door monitor and closer

How many times you have trouble remembering if you have closed the garage door while you are away? Or, how many times you have discovered in the morning that your garage door was open all night? Well, if you are having this issue, you might consider building Adam Oakley’s automated garage door closer that shuts the door for you automatically when you forget.

Arduino controlled automatic garage door closer

Arduino controlled automatic garage door closer

Powered by an Arduino Pro Micro board, it uses a ceiling-mounted HC-SR04 ultrasonic distance sensor to sense the status of the garage door. When the door is open, it slides up close to the ceiling, and thereby the HC-SR04 sensor can detect a reflected echo from a shorter distance. The Arduino reads the sensor output every second and when it detects the garage door is open, a count down timer of preset interval begins. If the door remains open after the timer runs out, a signal is sent out to close the garage door. The project uses a 10-segment LED bar to display the time left before the timer runs out (or before the door will be closed automatically). What if you are working in the garage and you need it to be opened for a little longer. Adam also included a push button that resets the timer every time it is pushed. His software is modular and is designed to work with single or multiple doors with minimal modifications.ent on my LED strip is worth 10 minutes. If less than 10 minutes remain, the segment will dim accordingly.

Bluetooth enabled portable spectrometer

Spectrometers are widely used in scientific studies to characterize the spectral signature of a material that represents how the matter interacts with an electromagnetic radiation at different wavelengths. The spectral data contains vital information like the chemical composition and crystal structure of the material, as well as the presence of any impurities or third element within it. A commercial spectrometer costs a huge amount of money. Akshat Wahi‘s WiSci is an open-source spectrometer tool intended to allow spectroscopy accessible to everyone.

DIY Bluetooth spectrometer

DIY Bluetooth spectrometer

With Hamamatsu’s C12666MA mini-spectrometer at the front end, WiSc collects spectral signature from a target in wavelengths ranging from 340 to 780 nm. The hardware setup includes an Arduino board to read measurements from C12666MA and a HC-05 Bluetooth module for sending the data to the Android device. The android application was developed using Android Studio IDE and is compatible with Android 2.3.3 and higher. WiSc has been successfully implemented for non-destructive testing of apple ripeness. to extract the spectral data from  for non-destructive testing of fruit ripeness and the results were found consistent with that from a penetrometer.

NTP synchronized analog wall clock

Analog wall clocks are an old invention. Besides telling time they also serve as a wall decoration. Most of the modern days inexpensive wall clocks are not good at keeping the time accurately. Also, they usually don’t have auto-adjustment for daylight saving time. Victor-chew shares his attempt to tether a cheap IKEA analog wall clock to the ESP8266 WiFi microcontroller and make it sync with a NTP server for accurate timekeeping as well as auto adjustment to daylight savings.

Hacking a IKEA analog wall clock to make it NTP-enabled

Hacking a IKEA analog wall clock to make it NTP-enabled

In this project, I connected a cheap $2 Ikea analog clock to the ESP-12/NodeMCU dev module and synchronized the clock time with NTP time (localized with Google Maps Timezone API). On startup, simply connect to the device configuration AP and configure your Wi-Fi login credentials and physical clock time. The config web page will capture your current location automatically using HTML5 Geolocation and use that to automatically figure the local time and DST offset via the Google Maps Timezone API.

The clock will sync within a few seconds of NTP time, take care of DST automatically and only cost a few dollars more due to the low cost of ESP12/ESP8266. The only problem that remains is the practical need to run this clock from the mains. Even when connected to a 10,000mha battery pack, it will only last for about 6 to 7 days.

For seven-segment LED based NTP clock, click here.

RGB matrix displays time and environmental data

Temperature, humidity, and ambient pressure are the key parameters for environmental monitoring. With the advent of MEMS and integrated multi-sensor technologies, it’s been feasible to miniaturize environmental sensors and embed them into portable electronics. BME280 is one such fully integrated environmental unit from Bosch that combines sensors for pressure, humidity, and temperature in a tiny 8-pin metal-lid LGA package of size 2.5 x 2.5 x 0.93 mm³. This article describes how to read the environmental data from BME280 using Arduino and display the data on a 16×32 RGB matrix panel using the RGB driver shield.

demo6

RGB matrix displaying time, date and environmental data

Things you will need

Following items are used in this project:

  1. Arduino Uno or any compatible board
  2. 16×32 RGB panel + driver shield
  3. 5V, 2.0A DC power supply
  4. BME280 sensor breakout

The 16×32 RGB LED matrix panel consists of 512 bright RGB LEDs arranged in 16 rows and 32 columns. The row and column driver circuits are built on the back side of the matrix panel. The data and control signal pins are accessible through a HUB75 (8×2 IDC) connector. It requires 12 digital I/O pins of Arduino Uno for full color control. The display panel also comes with a RGB connector shield for Arduino Uno and necessary cables for easy wiring between the RGB panel and the Arduino board. The connector shield also features the DS1307 RTC chip on board along with a CR1220 coin-cell battery holder. The I2C pins of the DS1307 chip are pre-wired to A4 and A5 pins of the shield.

RGB matrix panel kit

RGB matrix panel kit

Buying Links for 16×32 RGB panel kit:
From our US Tindie Store
Buy from our Elecrow Store in China

Connection setup

The RGB LED panel kit includes all the necessary cables and the Arduino Uno connector shield for an easy connection between the RGB driver pins and the Arduino I/O pins. The following picture shows the proper way of connecting the Arduino shield and the RGB panel.

Wiring the RGB panel to Arduino shield

Wiring the RGB panel to Arduino shield

A complete hook up guide is provided here. Basically, a 8×2 IDC cable connects the input HUB75 connector on the RGB panel’s back to the 12 pins of Arduino via the connector shield. The power supply pins of the RGB panel are connected to + and – pins of the 2-pin terminal block on the Arduino shield. The 5V DC power supply required for the RGB panel is supplied via the 2.1mm barrel jack connector on the shield.

The BME280 sensor support I2C communication. The sensor module’s data and clock pin are therefore connected to A4 and A5 pins of Arduino, respectively. I simply plugged in the the data and clock pins of the sensor breakout module into the shield headers as shown below and connected the power supply pins through jumper wires.

Sensor hook up

Sensor hook up

Next, you need to plug in the shield into Arduino Uno board.

RGB connector shield plugged into Arduino Uno

RGB connector shield plugged into Arduino Uno

Software

The Arduino is programmed to read the sensor data from BME280 and displays them on the RGB panel with different colors. The time and date are also displayed. If the DS1307 is not running at the time of programming, the date and time are set to the values corresponding to the clock settings on the computer at the time of uploading the sketch.

Arduino libraries required for this project are:

RTClib for DS1307

Adafruit GFX Library

Adafruit RGB Matrix Panel library

Adafruit unified sensor library

Adafruit BME280 library

You can download the complete Arduino code from the link below.

Download RGB16x32_BME80_DS1307RTC_TestCode

Output

op1

Time and Day of Week display

op2

Temperature in both C and F scales

op3

Relative humidity data

op4

Displaying current date

« Older Entries Recent Entries »