SmartClock

by Tibo Van Zwol in Circuits > Clocks

316 Views, 1 Favorites, 0 Comments

SmartClock

64472990_436690083729717_4089514271220695040_n.jpg
64759828_1114933448712237_2932227744106283008_n.jpg
64753718_314057409536716_7026038545991073792_n.jpg

The SmartClock, is not just a clock, its also an easy way to see social media statistics, and the weather.

You can connect to facebook, and get your likes, or connect to soundcloud and get your followers displayed live! The only thing you need to do, to see this, is press the mode button.

There are multiple sensors on this device, which constantly gather information and keep that information in a database. You can view this data, on a nice graph on the website.

You can also play music, which you select on the unit, or on the website.

Supplies

- Raspberri Pi

- Arduino Uno

- Speakers with ampilifier

- 4*7 segment display

- DHT 11

- LM35 (optional)

- LDR

- MCP3008

- 16x2 LCD Display

- 5 Normal Open Monostable switches

- Resistors 100k, 220,1k and 5k

- Power supply

- A lot of jumper cables, male/female and female/female

DHT 11 Pinout

DHT11-Pinout-for-three-pin-and-four-pin-types-2-1024x742 (1).jpg
How-to-Setup-the-DHT11-on-the-Raspberry-Pi-Four-pin-DHT11-Wiring-Diagram-768x334.png
How-to-Setup-the-DHT11-on-the-Raspberry-Pi-Three-pin-DHT11-Wiring-Diagram.png

There are 2 types of DHT11.
Depending on the version you bought, you will either have 3 or 4 pins.

Vcc goes to 3.3V, signal goes to GPIO4
If you got a 4pin version, you need to place a 4k7 resistor in between the vcc and signal pin.
If you got a 3pin version, you are good to go.

MCP3008 With LDR, LM35 and Pulldown Switches

MCP3008-2.png
MCP3008_TMP36-1024x704.png

  • VDD - 3.3V
  • Vref - 3.3V
  • AGND - Ground
  • CLK - GPIO9
  • DOUT - GPIO MISO
  • DIN - GPIO MOSI
  • CS - CS0
  • DGND - Ground

CH0 goes in between a 10k Resistor and a ldr

CH1 goes to the middle pin of the Lm35

LCD Display

lcd1602_schema-raspberry-pi.png

To get your LCD display working, connect the first pin to Ground, and the second to +5V.
Third pin should be connected trough a 5k resistor to ground, or a potentiometer if you want to change brightness.

RS pin goes to GPIO22, RW goes straight to gnd aswell. At this point, you should see a line of black rectangles on your display. now just connect the 8 data pins to GPIO pins you have free and connect LED+ to 5v, LED- to ground.

4*7 Segment Display

4_digit_7_segment_display_connections_0XniW7ckOR.jpg

Your display can be a common anode / common cathode. This does not matter for how you connect it, but it is good to know what type you have. Make sure to keep the RX0 pin free, as we will need to connect this to TX0 on the RPI. The rest of the connections do not matter, as code is written afterwards.

Construction

IMG_20190609_181916.jpg
BroodbordV2_bb.png

To create this setup on a breadboard, you wil need a lot of space. I would recommend to, solder the MCP with LM35 and al resistors on a testprint, and add some headers. This way, you can just connect it with a few female/female jumper wires. Make sure to connect raspberri and arduino grounds. Be careful not to mix up 3.3V with 5V

Software

Iphone.PNG
Iphone2.PNG

I used Python, with flask for backend. Html, css/less & javascript as frontend and arduino code for arduino.

There is also a database running on the Raspberry pi which saves the sensor data, as well as alarms you've set and user information. This database is ran on a MariaDB server. Queries to get data out of this are written in my backen, in python. This converts data to json on custom endpoints. We can get that data in our front-end by sending a GET request to our backend. Here we can do whatever we want with the data. I chose for graphs, made by chart.js, which is a javascript extension.