(Spring 2023; Section-20; Group ID- 13)
Anvesh Rajguru (22CY10014); Azam Hussain (22IM30020); Sujan Jain (22CS10075); Devidhar (22EE10034)
The concept of smart dustbins has been gaining popularity in recent years due to their ability to improve waste management and reduce environmental pollution. A smart dustbin is a trash can that uses technology to automate waste collection and disposal, making it more efficient and convenient for users. In this DIY project, we will be building a smart dustbin from scratch using simple materials and basic programming skills. This smart dustbin will have the capability to sort different types of waste.
(Spring 2023; Section-14; Group ID- 16)
Aman (22CS30008); Anubhav Mitra (22EC30007); Ankan Saha (22EE10008); Shibaditya Dauhare (22EE30027)
The original vision for our project stemmed from the recent sweltering heat waves in Kharagpur, when we observed many households place food and water outside their homes in bowls for hungry and tired animals. We thought, why not expand this idea? This led to us coming up with our initial idea of an automatic bird feeder, which does not require you to fill up food ad nauseam. Additionally, to make it more true to the spirit of "DIY", we tried to use everyday household items wherever possible. The finished project features ultrasonic sensors, servo motors, an Arduino board among the electronic components. We have also used a wooden framework to support the whole structures, plastic bowls for storing food and bowls for the same to be dispensed into. The working is very simple. When the distance between the sensor and the level of food in the bowl exceeds a certain threshold, the same is read by our sensors. When this level persists beyond a certain delay interval (also mentioned in the code), the servo motors are programmed to rotate out of the way, allowing food to fill up the bowl. This continues until a certain level in the bowl is reached again, which is when the motors move back to stop further flow of food. Moreover, since our model is only a prototype, it can also be expanded to a greater scale and applied wherever automatic dispension is required. For instance, it can be used to feed animal en masse in farms. In conclusion, we attach below our YouTube demonstration of the project. We also thank our professors for giving us an opportunity to work on implementing an actual project from scratch, and getting a chance to apply what we have learned in this course. Thanks a lot for taking the time to go through our project summary!
Please submit the proposals in printed form (i.e. as prints on A4 sheets). The teachers and TAs, Staff team shall finalize the project list based on submitted project proposals. Do not share your project proposal with others to ensure uniqueness. Please come up with at least 2 project proposals.
Things to take care of:
Project duration (4 to 5 weeks)
Availability of Items ( an idea you may get from our Inventory List)
Cost must be within ₹2000 (If it exceeds then you have to bear the extra)
As it is a group project you have it discuss with your teammates and finalize the idea.
Submit the proposals on 3rd week of your course work.
Collect data of temperature and humidity
Process the data
Show on a dashboard
Select the required items
Select platform for IOT
Learn
Troubleshoot for issues
Node MCU esp8266
DHT 11 humidity and temperature sensor
Micro USB cable
Jumper Wires (F-F)
Laptop
Stable WiFi Connection (Don't use Institute WiFi for the circuitry)
Micro USB Cable
DHT 11 Temperature and Humidity Sensor
Jumper Wires
ESP 8266 NodeMCU Module
DHT 11 Temperature and humidity sensor has 3 pins namely, Vcc or + or V - the Input voltage pin, GND or- or G - the ground pin, DAT or D or out - the data pin.
Vcc of DHT 11 will get connected to the 3v3 pin of the esp8266, this is the 3.3V output pin of esp8266.
GND of DHT 11 will get connected to the GND pin next to the 3v3 pin of esp8266.
DAT pin of DHT 11 will get connected to the D4 pin of esp8266. (D4 pin is mentioned as the DHT pin 2 in code.)
Connect the Micro USB cable to the esp as well as to your laptop.
Make sure the circuit connection is proper before you connect it to the microcontroller. Else the board and the sensor might burn out.
Step 1: Connect the micro USB cable with the Node MCU esp8266.
Step 2: Connect the other end of the Micro USB cable to the USB port of the laptop.
Step 3: Open device manager of your laptop. (Windows >> search Device Manager >> Open Device Manager)
Step 4: Try to find the option named as Ports (COM & LPT). Click the > and check whether the device got recognized or not and what is the COMX (X is going to be a number for your case for example COM3 for my case). Sometimes you may see some similar ports and different PORTS are written by the side of it. In these cases install the driver manually.
Case I: Ports (COM & LPT) is not showing, in this case disconnect the USB from your laptop and connect it in other ports except the last one.
Case II: Ports (COM & LPT) is showing but the dropdown is showing nothing. Usually just after connecting the ESP 8266 the driver gets installed automatically but sometimes it doesn't. In such cases you have to check which driver is there in the esp8266 module as of now I have seen 2 types of drivers for esp8266, ch340 driver and CP210x USB to UART Bridge VCP Drivers by Silicon Labs. Install the required driver. How to know which one to install? ch340 g is rectangular in size and cp2102 is square in size. you can easily read this on the board by naked eyes. After installing the drivers just reconnect the esp8266 and you will see it will appear in the Ports (COM & LPT).
Step 1: Create an account in Arduino Cloud, if you already have an account log in. After log in you will see a page looks like the following.
Step 2: Click on GET STARTED located on the top right corner.
Step 3: Now you will see a GET STARTED pop up. Click on Do It Later.
Step 4: Now click on Create new >> Things >> Towards the top left corner click on Untitled and name the thing (e.g.- IOT WS Thing)
Step 5: A new tab will appear. You will see cloud variables and ADD option. Click on ADD.
Step 6: Name the variable Temperature and select the variable type as Temperature ( C or F), if this variable type is not coming then select all the filter options like Alexa compatible and all and then select. now click on Add Variable.
Step 7: Do the same for Humidity and select variable type as Relative Humidity.
Step 8: We want the system it self send us a message on the dashboard as well. so add another variable as Message and the variable type as String. Click on Add Variable.
Step 9: Now on the same page you will see an optioned named as Associated Device. Click on the Select button.
Step 10: Another pop up will appear. Click on Set Up New Device >> Third Party Device >> ESP8266 >> Click on Select Model >> NodeMCU 1.0 (ESP-12E Module) >> Continue >> Name your device (e.g. Camelia) >> Next >> Download PDF (this contains device ID and secret key that you cannot change later so make sure to keep it saved, read the instructions carefully) >> Check the box ( I saved my Device ID and Secret Key ) >> Continue
P.S. - Make sure the device is connected through out this process.
Step 11: Now on the same page you can see an option named as Network. Click on Configure.
Step 12: Put your Network credentials. SSID is the network name like GUEST_SECURED and Password you know it. Here you need to put the secret key as well, the secret key is there in the downloaded PDF.
P.S.- Don't use Institute Network. Use your mobile hotspot as WiFi.
Step 1: Go to the home page of Arduino Cloud.
Step 2: Click on Dashboard.
Step 3: Here you can Preview and Edit your dashboard where all the data will get displayed.
Step 4: Click on Add >> under Widget >> Select Gauge >> Name the widget (Temperature Gauge) >> Link to a variable >> Select Temperature
Step 5: Click on Add >> under Widget >> Select Gauge >> Name the widget (Humidity Gauge) >> Link to a variable >> Select Humidity
Step 6: Click on Add >> under Widget >> Select Chart >> Name the widget (Temperature Chart) >> Link to a variable >> Select Temperature
Step 7: Click on Add >> under Widget >> Select Chart >> Name the widget (Humidity Chart) >> Link to a variable >> Select Humidity
Step 8: Click on Add >> under Widget >> Select Messenger >> Name the widget (Messenger) >> Link to a variable >> Select Message
Step 9: Go back to the home page
Step 1: Go to Things again
Step 2: Go to Sketch
Step 3: Click on Open full editor. A pop might appear and will ask you to install the Arduino Agent. Click on Learn More. Click on Install the agent >> Click on Start >> Download the .exe file >> Install. Once done click on Go to Web Editor
Step 4: Add your code to the source code.
Add the code before void setup(), just after the line of #include "thingProperties.h"
#include "DHT.h"
#define DHTpin 2 // D4 on the nodemcu ESP8266
#define DHTTYPE DHT11
DHT dht(DHTpin,DHTTYPE);
Now add this code in Void loop(), where you will see // your code here.
float hm= dht.readHumidity();
Serial.print("Humidity ");
Serial.println(hm);
float temp=dht.readTemperature();
Serial.print("Temperature ");
Serial.println(temp);
humidity=hm;
temperature=temp;
message="Temperature = " + String (temperature)+" Humidity = " + String(humidity);
Now your code will look something like this: https://github.com/SourabhMaity7/IOT-WS/blob/main/Source%20code
Select the same board that you have selected earlier (i.e. NodeMCU ESP-12E Module) and the port ( for my case which was COM3)
In the above photo you can see a cross sign, that means at this particular moment the system cannot upload the code to the microcontroller. What you have to do is install the driver (see Chapter 1, Case II). Then refresh the page and you will be able to select the port and select the device. Then upload.
Make sure you have installed the Arduino agent while opening full editor. If you haven't, go to sketch again and open full editor and install the Arduino Agent from the pop up.
Verify and save the code by clicking on Tick mark and Upload the code by clicking on arrow.
Once the you see Flush Completed. VOILA!!
Click on the Monitor i.e. serial monitor and wait for sometime to see the data is getting read by the system. It will get printed in the serial monitor.
Now go to the Dashboard in another tab and take a look. If nothing is there might be a WiFi network issue. Check the network.
At this particular moment the system can be placed remotely powered within the network zone and it will keep on sending the data.