現在正在大力推進垃圾分類投放,這是一個很有意義但是卻需要投入大量精力的過程,作為一個工程師,我能做些什么,于是,我想到了制作一個簡易的智能垃圾桶,可以感應到人的靠近,自動打開和關閉垃圾桶。
制作出來的實物圖如下:
1231231.png (288.29 KB, 下載次數: 106)
下載附件
2019-7-20 09:32 上傳
2.jpg (1.25 MB, 下載次數: 96)
下載附件
2019-7-20 09:30 上傳
硬件組件:
· 跳線(通用)×16
· SG90微伺服電機×1
· 超聲波傳感器 - HC-SR04(Generic)×2
· 面包板(通用)×1
· ArduinoUNO和Genuino UNO×1
· EspressifESP8266 ESP-01×1
軟件應用程序和在線服務:
· Blynk
· ArduinoIDE
手動工具和制造機器:
· 熱膠槍(通用)
· 膠帶
我對這個項目的期望是,當我靠近這個垃圾桶,我不需要踩腳踏或者其他動作就可以打開垃圾桶,這樣子可以幫助我們更加衛生的處理生活垃圾。
Arduino源程序如下:
- #define BLYNK_PRINT Serial // Blynk
- #include <ESP8266WiFi.h> // WIFI
- #include <BlynkSimpleEsp8266.h>
- #include<Servo.h> //Servo SG90
- char auth[] = "483e2a27dc3b4fdcb5108b*******"; // token
- char ssid[] = "J**** Sidh***"; // SSID WIFI
- char pass[] = "190****"; // PASSWORD WIFI
- Servo servo;
- #define trigPin 13 //Ultrasonic1
- #define echoPin 12 //Ultrasonic1
- #define trigPin2 5 //Ultrasonic2
- #define echoPin2 4 //Ultrasonic2
- #define LED 2 //LED WIFI
- #define BLYNK_MAX_SENDBYTES 256 //256 Bytes
- void setup()
- {
- Serial.begin (9600);
- pinMode(trigPin, OUTPUT); //Ultrasonic1
- pinMode(echoPin, INPUT); //Ultrasonic1
- pinMode(trigPin2, OUTPUT); //Ultrasonic2
- pinMode(echoPin2, INPUT); //Ultrasonic2
- pinMode(LED, OUTPUT); //LED
- servo.attach(16); //Servo
- Blynk.begin(auth, ssid, pass);
- Blynk.email("josie**************@gmail.com", "TrashBin", "Online."); // Test Online Email Sent
- Blynk.notify("Tong Sampah Sudah Online"); //Notify Trash Online
- servo.write(210); // Starting Position Servo
- }
- void loop()
- {
- Blynk.run();
-
- //Ultrasonic1
- long duration, distance;
- digitalWrite(trigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(trigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(trigPin, LOW);
- duration = pulseIn(echoPin, HIGH);
- distance = (duration/2) / 29.1;
- Blynk.virtualWrite(V1, distance); //Level
- //Ultrasonic1
-
- //Ultrasonic2
- long duration2, distance2;
- digitalWrite(trigPin2, LOW);
- delayMicroseconds(2);
- digitalWrite(trigPin2, HIGH);
- delayMicroseconds(10);
- digitalWrite(trigPin2, LOW);
- duration2 = pulseIn(echoPin2, HIGH);
- distance2 = (duration2/2) / 29.1;
- Blynk.virtualWrite(V2, distance2); //Level
- //Ultrasonic2
-
- // Open Automation
- if (distance >= 30 || distance <= 0) //Condition when trash open and close automatically
- {
- Serial.println("Out of range");
- servo.write(210); //menutup
- if (distance2 >= 6 || distance2 <= 0) //Condition When Trash close reading full or not
- {
- Serial.print(distance2);
- Serial.println(" cm2");
- digitalWrite(LED, HIGH);
- delay(500);
- }
- else
- {
- digitalWrite(LED, LOW);
- delay(3000);
- Serial.println("FULL");
- Blynk.email("jo********@gmail.com", "Subject: TrashBin", "Full"); //if trash full will sending you email every 15minutes
- Blynk.notify("Hey, Tong Sampah Penuh Segera Dikosongkan"); //Notify if trash full with blynk
- }
- }
- else
- {
- Serial.print(distance);
- Serial.println(" cm");
- servo.write(60); //Open trash
- delay(5000); //Delay open trash
- }
- delay(500); //Reading hands
- }
- //Open Automation
- //Open Manually
- BLYNK_WRITE(V3)
- {
- servo.write(param.asInt());//open
- delay(5000);
- }
- BLYNK_WRITE(V5)
- {
- servo.write(param.asInt());
- delay(5000);
- }
- //Open Manually
復制代碼
以上代碼下載:
智能垃圾桶.zip
(23.19 KB, 下載次數: 287)
2019-7-20 09:26 上傳
點擊文件名下載附件
程序、原理圖 下載積分: 黑幣 -5
|