Skip to main content

Wireless Mood Meter

Wireless Mood Meter




Suppose your mood changes so fast that people can't cope up with it. You feel sad but people do something that makes you more sad. If only they knew what you are feeling right now!Behold, I present you the Wireless Mood Swing Meter!! Place it where everyone can see it, tap on your phone and input how you feel, the meter dial will point to an emoji and show others what you feel. Now people will behave accordingly.
Wanna make one? Let's start. Watch the video alongside.

Step 1: Parts You'll Need

Electronics:
  • Arduino Nano (Any board will do) -1x
  • HC05 Bluetooth module -1x
  • Micro Servo sg90 -1x
  • Multi functional robot PCB - 1x [link]
  • Powerbank or 5v 1 Amp power source - 1x
Others -
  • PVC sheet - 1 piece
  • Hot Glue and Glue Gun
  • Mood meter (paper printable)

Step 2: Principle: How Will It Work?

Good questions lead to good answer. Before making anything you must have a clear understanding of what you are going to do.
So, the idea is, we will make a mood meter with emojis indicating my emotions. A little dial which will be attached by a servo will move and point at certain emoji based on my input on mobile phone.
So we will have to make a wireless circuit and Android application to make it work. Got it? Now, let's start.

Step 3: Cut Glue, Cut and Glue

print the 'mood meter.pdf' file, then cut mood meter and dial accordingly. After that glue them on PVC sheet. You can also use hardboard/cardboard instead of PVC sheet. After that glue a servo arm on the dial and complete the whole thing.
I designed this thing. But you can use your own thing. Download the paper printable file from below.
While attaching the dial/servo arm with the main board, make sure the servo motor runs 180 degree and the path of the dial falls into that.

Step 4: Circuit Diagram and PCB

The circuit is pretty easy. The major components are Arduino, Servo and Bluetooth module.
Connect them as follows:
  • Servo data pin to Arduino 9
  • Servo VCC to Vin and gnd to gnd
  • Bluetooth rx to Arduino tx
  • Bluetooth tx to Arduino rx
All the things became easy because I used PCB. I designed this multipurpose robot PCB so that I can make multiple robots without worrying much about wires. I designed the PCB usign EasyEDA and printed from PCBWay.com. Their service is one of the best that's why I love to print from them. With 5$ you can get 10 multilayer PCB. I went to PCB instant Quote Quick Order and uploaded the files The system automatically detected all the necessary parameters. I just picked color.
To get the PCB I am using click here.
I also have uploaded circuit diagram below if you don't want to use PCB at all.

Step 5: Code for the Project

This program is written in Arduino. It's simple enough to understand for all.
I imported servo library to control servo, declared a variable to store received value.
#include<Servo.h> // declare servo name Servo meter_servo; // we'll store input data in this variable char val;
In setup function the connected servo to pin 9, Bluetooth module is connected on serial port of Arduino with buad rate 9600.
void setup() { //initlize the mode of the pins meter_servo.attach(9); //set the serial communication rate with bluetooth module Serial.begin(9600); }
In main loop I check if any data is received -
while(Serial.available() == 0); //check whether arduino is reciving signal or not val = Serial.read() ; //read data sent over bluetooth
If any data is received it moves the servo to a certain position, if it receives
  • 'h' - moves to happy emoji
  • 'm' - medium happy emoji
  • 'n' - neutral emoji
  • 's' - sad emoji
  • 'a' - angry emoji
Example for happy -
/********* Happy *********/ if (val == 'h'){ meter_servo.write(180); }
Now here's the full code. Download from github or copy from below. I recommend downloading to avoid errors.
/**** Wireless Mood Meter ***/ /* author : Ashraf Minhaj * mail : ashraf_minhaj@yahoo.com * tutorial : youtube.com/fusebatti */ #include<Servo.h> // declare servo name Servo meter_servo; // we'll store input data in this variable char val; void setup() { //initlize the mode of the pins meter_servo.attach(9); //set the serial communication rate with bluetooth module Serial.begin(9600); } void loop() { while(Serial.available() == 0); //check whether arduino is reciving signal or not val = Serial.read() ; //read data sent over bluetooth /********* Happy *********/ if (val == 'h'){ meter_servo.write(180); } /********* Medium Happy ***/ if (val == 'm'){ meter_servo.write(130); } /********* Neutral *******/ if (val == 'n'){ meter_servo.write(70); } /********* Sad *******/ if (val == 's'){ meter_servo.write(20); } /********* Angry *******/ if (val == 'a'){ meter_servo.write(0); } }
Upload the program and move on to next step.

Step 6: Mood Meter Controller App

In order to send commands to the Mood Meter I made an android application. Which actually does connect with the board using Bluetooth connection and sends data it is supposed to send.
  • ''h'
  • 'm'
  • 'n'
  • 's'
  • 'a'
You just need to click on an emoji and the data will be sent to Arduino.
I made the application using MIT app inventor2. It's simple and drag and drop coding makes it more cool. See pictures, the code is also very little. It looks for available paired devices and sends data over Bluetooth. Download the app from below or click here to get the.aia file and edit yourself.


Step 7: Power Up and GO!

Now power it up using powerbank, connect Bluetooth module to your phone. Default password is '0000' or '1234'. Open mood meter controller app and click 'connect with meter' button. A list picker will appear, select your module and then just click on emojis, it will work like a charm.
Thank you everyone for reading. A little thumbs up will be a lot. Happy Making!!!

Comments

Post a Comment

Popular posts from this blog

Make a Smart Phone Controlled Robotic Arm ! Arduino DIY.

Making ROBOT ARMs is very popular and fun among hobbyists, but it's not that easy to control a ROBOT ARM. So today we'll be making a robot arm that can be controlled using just your Android Smartphone or tablet. Good news is, you just need to program the Arduino, the App is already available to download for free. Step 1: Parts You'll Need 2 More Images Servo motor 4x (I'm using micro servo Sg90 but any model or size is okay) you can use upto 5 servo for this robot arm, I've only 4, so I'm using them. sliced piece of Card Board - to make the body. USB OTG (on the go) [pic3 & 4- all the same] And of course a Arduino board (any board) And a few jumpers to make the connection And a 9v battery to power the servo motors. Step 2: Making the Robot Arm (THE BODY) Now in here I'm actua...

Make a Smart Humanoid Talking Robot- MOFIZA.

This Robot - Mofiza - (weird name) Can SEE , TALK and REACT to her surroundings. Before I proceed watch the video: Ever since I've seen making talking robots I saw that people actually use other development boards rather than Arduino to make talking robots. But it's completely possible to make a Humanoid robot with Arduino who can talk and add a lot of servos to make it move. So lets begin: Step 1: Parts You'll Need Arduino Pro mini (5v 16 Mhz) [any board is good but i've used this to make it small) Female header pins for connecting on pcb Male header pins Vero Board to make the circuit Sd card TF module (to make it talk) micro sd card (not more than 2GB) 3x IR proximity sensor 3x servo motor (I've used micro servo sg90) Cardboard to make the body Step 2: Connecting IR Sensor and the Body Make a...

Make AI Assistant Robot with Arduino and Python

Introduction: We all are familiar with ‘Jarvis’ AI assistant robot from “Iron Man’ movies and Marvel series. It has always been a dream of programmers to make something on their own. I will today show a simple way to make such an assistant using Python programming. Moreover, I will also make a physical avatar of that robot, so that whenever we talk to the robot, it can do some movements. That will be more amazing than just a software robot. Because if it has a body, it is cool. So today we will learn to use both Arduino and Python programming to make an AI robot which can control your computer and have a little chit chat with you. Let’s hop in guys! Why I named the robot ‘Jaundice’? Because I painted it yellow, very very yellow!   Parts: Electronics - Arduino Nano – 1x Micro Servo Sg90 – 3x Ultra Sonic Sensor HCsr04 – 1x Body – PVC sheet (preferably white, better for coloring, I used blue one) Servo wheel (for the stand) Tools -  Cutter knife Scisso...

Arduino Automated Parking Garage

An Arduino Automated Car Parking System that is too easy and too fun to make. When a car arrives it shows the number of empty slots (if available) and then opens the gate. if there is not any empty slot then the gate does not open.  Amazing thing is that the whole project can just be POWERED using a POWER BANK!! Watch the video for the full tutorial. Note: you can use display instead of my hand made led sign display. Now lets get started. Step 1: Parts Arduino  - any board Infrared proximmity sensor  (pic 2 & 3 - both are functional) 330r resistor some  LED 's Servo motor  - any model or size you wish. Step 2: Making the LED Display To make this  LED display  I have used a piece of bredboard then soldered the LED's and the 330r resistor. Then j...

Problems using PIR sensor?? Always HIGH? DELAY? Solution is here.

PIR sensor When I was working on a project "controlling home appliances using just a wave of hand" I had used a PIR sensor and found some issues: PIR doesn't work properly when starts. PIR output value is always 1. It some times doesn't read motions. Now those are three Common and Unavoidable problems of a PIR sensor. So what would we do? I assume you know what a PIR sensor is and I'll just try to give a solution to the problems so that you can use PIR in your project efficiently, also I've added a code below on how to solve that problem. As I have mentioned earlier those are Common and Unavoidable,  keep 3 issues in mind: After powering - PIR sensor needs 1 minute to function For that 1 minute the OUTPUT is always HIGH. When a motion is detected it'll take 5 to 7 seconds to detect motion again. SOLUTION: After powering - PIR sensor needs 1 minute to function:  which means when you'll power a PIR sensor it wi...

Control Anything Over Internet / WiFi. IOT Light Switch_ NodeMCU ESP8266 .

Parts: NodeMCU ESP8266  WiFi Development Board LED 330r resistor Android app Download the app from Below , To Upload code to NodeMCU using Arduino.ide Update Arduino.ide (desktop app) start Arduino app goto  Files > Preferences  Then  paste the link  then press  ok.    http://arduino.esp8266.com/stable/package_esp8266com_index.json goto  Tools>Boards> Board Manager  then wait untill it finds ESP8266 properties Scroll down and  click install Then Restart the Arduino App. Now you can upload Code in C / C++ to NodeMCU ESP8266 using Arduino.ide Getting IP Address Code T o get the IP Address (Internet Protocol Address) Upload this Code and open serial monitor. #include <ESP8266WiFi.h> const char* ssid="WIFI name"; const char* password = "WIFI PASSWORD"; int ledPin = 13; void setup() { pinMode(ledPin,OUTPUT); digitalWrite(ledPin,LOW); Serial.begin(115200); Serial.print...

How to use ServoTimer2 Library with Arduino- full tutorial.

Introduction I've been trying to make a humanoid robot  MOFIZA -Arduino Talking Humanoid Robot.  recently- which means dealing with Servo motors. Everything worked just as fine just before I tried to make the robot TALK. When I needed to use the TMRpcm library. But there's some libraries like #TMRpcm .h #VirtualWire .h are libraries that use the Timer1 of Arduino. It appears that you can't use two devices simultaneously where both use the same timer...So, if my robot talks- the servos don't work. Because The Servo.h and the TMRpcm both works on Arduino TImer1. Which is a mess. If you want to make both of them work you have to use another library for servos. Which is ServoTimer2 library? This uses the Timer2 on Arduino...Unfortunately on internet I haven't found any tutorials to understand how this ServoTimer2 library actually works, and how to use it in code. So, I've decided to make a tutorial so that people like me can understand better. We'll be u...