0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用Arduino制作智能垃圾箱

科技觀察員 ? 來源:gadgetronicx ? 作者:gadgetronicx ? 2024-02-11 12:22 ? 次閱讀

在這個項目中,我將向您展示如何使用Arduino制作智能垃圾箱,當您帶著垃圾接近時,垃圾箱的蓋子會自動打開。

優(yōu)勢

這款 Arduino Nano 智能垃圾桶的主要優(yōu)點是它有助于保持清潔和環(huán)保的環(huán)境。這項努力的靈感來自“Swaach BharatMission”。在這個項目中,自動垃圾桶建立在一個基于微控制器的平臺上,即ArduinoNano板,該板與兩個伺服電機,一個超聲波傳感器和一個紅外傳感器連接。超聲波傳感器放置在垃圾箱的頂部,用于檢測物體或人。閾值高度設置在特定級別。這款Arduino Nano 智能垃圾箱使用超聲波傳感器感知人或物體,該傳感器使用 Arduino Nano將消息發(fā)送到伺服電機。當人靠近這個自動智能垃圾箱時,垃圾箱蓋將自動打開您的垃圾箱,一段時間后它會自動關閉。

構建Arduino智能垃圾箱所需的組件

Arduino 納米

兩個伺服電機 (MG996R)

HC-SR04 超聲波傳感器

紅外傳感器(通用)

兩個 LED(用于視覺反饋)

7.4V鋰離子電池

LM2596 直流/直流降壓轉換器

直流插座和開關

跳線

面包板或PCB(印刷電路板)

使用Arduino Nano的智能垃圾箱電路圖

下圖顯示了帶有Arduino的智能垃圾箱的電路圖。這是一個非常簡單的設計,因為該項目僅涉及三個主要組件(超聲波傳感器、紅外傳感器和伺服電機),而不是Arduino Nano。

使用Arduino的智能垃圾箱電路圖圖像

重要: 將降壓轉換器的輸出電壓調整為 8V 至 8.2V 的范圍,因為 7.4V 鋰離子電池的充電電壓為 8.2V。通過 12V充電插座為電池充電時,此調整是必要的,因為降壓轉換器將有效地將電壓從 12V 降低到 8V。

將 Arduino Nano 連接到面包板或 PCB。確保連接電源和接地引腳。通過開關將 7.4V 鋰離子電池連接到 Arduino Nano 的Vin 引腳。此開關允許您從外部電源打開和關閉Arduino。開關、充電插座和Arduino nano編程端口如下圖所示。

將正極(紅色)線連接到 DC-DC 降壓轉換器的 7.5V 輸出,并在必要時確保將其調整為 8.1V。然后,將接地(黑色)線連接到 ArduinoNano 上的接地 (GND)。數(shù)字信號(藍色)線應連接到 Arduino Nano 上的數(shù)字引腳 2。

將正極線連接到 DC-DC 降壓轉換器的 7.4V 輸出。如果需要,確保將其調整為 8.1V。接下來,將地線連接到 Arduino Nano 上的接地
(GND)。最后,將傳感器的數(shù)據(jù)或“信號”線連接到 Arduino Nano 上的數(shù)字引腳 4。我們用來打開和關閉蓋子的兩個伺服電機如下所示。

首先,從伺服電機 (1&2) 中取出信號線并將它們連接到 Arduino 上的一個 PWM 引腳,例如引腳 9 和5。接下來,將伺服電機的電源線連接到DC-DC轉換器的7.4V輸出。最后,將伺服電機的地線連接到Arduino上的GND引腳之一。

在電源設置中,使用二極管將電池正極端子連接到 LM2596 降壓轉換器的輸出,然后通過開關將其連接到 Arduino 的 Vin引腳。將電池負極端子連接到 Arduino、LM2596 降壓轉換器和其他部件上的接地 (GND)。最后,將 LM2596 的輸入連接到直流插座。

根據(jù)需要使用螺釘、螺母和熱膠將所有組件固定到車身框架上。確保所有連接牢固且沒有松動的電線或潛在的短路。在打開電路電源之前,請務必仔細檢查您的連接。

Arduino智能垃圾箱設計

我專門為這個 Arduino Nano 智能垃圾箱項目創(chuàng)建了自定義的開合蓋子設計和超聲波傳感器支架,您可以在下圖中看到我使用 Onshape 制作的CAD 設計的屏幕截圖,以及我構建的實際垃圾箱。

如果您有興趣重新創(chuàng)建這個項目或將我的設計融入您自己的作品中,我已經(jīng)包含了 CAD .dxf 文件,您可以從 thingiverse 下載。

使用Arduino代碼的智能垃圾箱

在這個基于Arduino的智能垃圾箱的代碼中,兩個傳感器用于物體檢測。第一個傳感器是超聲波傳感器,第二個傳感器是紅外傳感器。當我們的手或腳進入超聲波或紅外傳感器的范圍內時,它會向Arduino發(fā)送信號。然后,Arduino將向相反方向旋轉兩個舵機,使垃圾箱蓋打開。此外,LED指示燈將亮起。我已將超聲波傳感器的范圍設置為40cm,但您可以根據(jù)需要進行修改。一旦我們的手離開傳感器,經(jīng)過 2 秒的延遲,舵機將向后旋轉,蓋子將關閉。

#include 《Servo.h》

該系列包括控制伺服電機所需的伺服庫。

const int trigPin = 2; // Trig pin of the ultrasonic sensor

const int echoPin = 3; // Echo pin of the ultrasonic sensor

const int irSensorPin = 4; // IR sensor pin

const int ledPin = 7; // LED pin

const int lightPin = 6; // Light pin

這些行聲明用于各種組件的引腳編號的常數(shù),例如超聲波傳感器(trigPin 和 echoPin)、紅外傳感器、LED 和其他光源。

Servo servo1;

Servo servo2;

bool lidOpen = false; // Variable to track the lid status

unsigned long lastObjectTime = 0; // Timestamp to track when object was
last detected

這些行創(chuàng)建 Servo 類的實例,該類將用于控制兩個伺服電機(servo1 和 servo2)。

這里聲明了兩個變量:lidOpen 是一個布爾變量,用于跟蹤蓋子是打開還是關閉,lastObjectTime
是一個無符號長變量,用于記錄上次檢測到對象的時間戳。

void setup() {

servo1.attach(9);

servo2.attach(5);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

pinMode(irSensorPin, INPUT);

pinMode(ledPin, OUTPUT);

// Initialize the servo positions to keep the lid closed

servo1.write(90); //right

servo2.write(90); //left

// Delay for 1 second

delay(1000);

// Initialize the serial communication for debugging

Serial.begin(9600);

}

在 setup() 函數(shù)中,伺服電機連接到引腳 9 和 5。超聲波傳感器引腳、紅外傳感器引腳、LED 引腳和燈引腳配置為 OUTPUT 或INPUT。伺服電機的初始位置是保持蓋子關閉(90 度)。有 1000 毫秒(1 秒)的延遲。串行通信初始化為調試,波特率為 9600。

void loop() {

// Check if an object is within a certain range using the ultrasonic
sensor

long duration;

int distance;

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = (duration / 2) / 29.1; // Calculate distance in centimeters

Serial.println(distance);

在 loop()
函數(shù)中,代碼使用超聲波傳感器連續(xù)測量距離。它觸發(fā)傳感器,記錄信號返回所需的時間,并以厘米為單位計算距離,并在串行監(jiān)視器上顯示結果

// Check if the IR sensor is activated

int irSensorValue = digitalRead(irSensorPin);

Serial.println(irSensorValue);

該代碼檢查紅外傳感器的狀態(tài)(高電平或低電平),并將該值打印到串行監(jiān)視器。

// If distance is less than 40 cm or the IR sensor is activated

if (distance 《 40 || irSensorValue == LOW ) { // Change the threshold value
as needed

// If the lid is not open, open it and set the status

if (!lidOpen) {

lidOpen = true;

digitalWrite(ledPin, HIGH);

digitalWrite(lightPin, HIGH);

Serial.println(“Led On”);

該模塊以 if 語句開頭,該語句檢查兩個條件:第一個距離小于 40 cm,由超聲波傳感器檢測到,第二個 irSensorValue 處于 LOW狀態(tài),表示 IR 傳感器已激活(即檢測到物體)。如果滿足任一條件,代碼將檢查 lidOpen 變量是否為 false。如果蓋子未打開(!lidOpen 為
true),則繼續(xù)打開蓋子 lidOpen 設置為 true,表示蓋子已打開。通過將 LED (ledPin) 和燈 (lightPin)設置為高電平狀態(tài)來打開它們,從而提供視覺反饋。一條消息“Led On”打印到串行監(jiān)視器進行調試。

for (int angle = 90; angle 《= 180; angle++) {

servo1.write(angle);

servo2.write(180 - angle);

delay(10);

}

}

在開蓋部分內,使用for循環(huán)逐漸打開蓋子。此循環(huán)從 90 度的初始角度迭代到最終 180度的角度。它以協(xié)調的方式改變舵機1和舵機2的角度,以產(chǎn)生平穩(wěn)的開蓋運動。每一步增加 10 毫秒的小延遲,以控制伺服電機的速度。

lastObjectTime = millis(); // Record the time when an object was
detected

打開蓋子后,代碼使用 millis() 記錄當前時間。此時間戳存儲在 lastObjectTime 變量中,用于跟蹤上次檢測到對象的時間。

else {

// If the lid was open and it‘s been more than 2 seconds since an object
was detected, close it

if (lidOpen && millis() - lastObjectTime 》= 2000)

如果塊 1 中的條件均不滿足(即未檢測到物體或物體超出范圍),則代碼將繼續(xù)檢查蓋子是否打開。它驗證 lidOpen 是否為true,指示蓋子當前處于打開狀態(tài)。它進一步檢查自上次檢測到對象以來是否超過 2 秒,使用 millis() 函數(shù)計算時間差。

{

for (int angle = 180; angle 》= 90; angle--) {

servo1.write(angle);

servo2.write(180 - angle);

delay(20);

}

lidOpen = false;

// Turn off the LED

digitalWrite(ledPin, LOW);

digitalWrite(lightPin,LOW);

Serial.println(“Led Off”);

}

}}

如果蓋子打開并且距離上次檢測到物體已經(jīng)超過 2 秒,則蓋子會逐漸關閉。LED 和燈已關閉,lidOpen 變量設置為 false。

總之,該代碼通過在檢測到物體(通過超聲波傳感器或紅外傳感器)時打開蓋子并在指定的不活動時間(2秒)后關閉蓋子來控制“智能垃圾箱”。伺服電機的使用確保了蓋子的平穩(wěn)運動,并通過 LED 和燈提供視覺反饋。

智能垃圾箱的工作原理

視頻中,您可以觀察到超聲波傳感器在垃圾箱蓋的自動操作中起著至關重要的作用。當任何物體或您的手接近位于垃圾箱上方的超聲波傳感器時,傳感器就會被激活,導致蓋子打開。只要蓋子繼續(xù)檢測到您的手的存在,它就會保持在打開位置。

然而,蓋子的設計是為了響應傳感器磁場的變化。一旦您將手抽出傳感器的范圍,蓋子就會自動關閉之前會短暫延遲 2秒。此功能可確保在使用完垃圾箱后順利方便地關閉蓋子。

此外,紅外 (IR)傳感器已集成到系統(tǒng)中,位于垃圾箱的下部。這項創(chuàng)新意味著您甚至不需要用手實際接近紅外傳感器。如果您只是將腳或身體的任何部位從遠處靠近紅外傳感器,它就會檢測到運動并激活,從而導致蓋子打開。同樣,當您離開紅外傳感器的范圍時,蓋子將再次關閉,保持免提和衛(wèi)生的體驗。

結論

智能垃圾箱的核心概念是以物體識別為中心,通過使用HC-SR04超聲波傳感器和紅外傳感器來實現(xiàn)這一點。該項目的靈感來自強調清潔和衛(wèi)生的“Swaach
Bharat Mission”。它的主要目標是建造一個垃圾箱,當有人或物體接近時,它可以自主打開蓋子,使垃圾處理成為一種更方便、更衛(wèi)生的體驗。

該項目的設計和建造涉及創(chuàng)建定制的蓋子機構和傳感器支架,展示了使用 3D
設計工具的靈活性。紅外傳感器的加入增加了免提體驗,允許用戶在沒有物理接觸的情況下打開蓋子。
審核編輯:陳陳

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Arduino
    +關注

    關注

    188

    文章

    6469

    瀏覽量

    187063
  • 智能垃圾桶
    +關注

    關注

    2

    文章

    53

    瀏覽量

    10656
收藏 人收藏

    評論

    相關推薦

    垃圾箱智能化道路,任重而道遠

    ,因此,需求的傳統(tǒng)的傳感器逐步實現(xiàn)微型化、低成本、智能化、網(wǎng)絡化、經(jīng)歷一個傳統(tǒng)傳感器-智能化傳感器、嵌入式web傳感器的內涵不管豐富的發(fā)展過程。城市中,垃圾箱處處可見,然而對垃圾箱的管
    發(fā)表于 11-01 11:40

    【MIKROE-4114開發(fā)板試用體驗連載】智能垃圾箱電動開合蓋---3現(xiàn)場實際安裝測試(完結)

    `接上節(jié)。開關門機構使用推桿電機實現(xiàn)了智能垃圾箱電動開關門,電流檢測防夾手。經(jīng)測試,功能滿足使用需求。`
    發(fā)表于 12-31 10:48

    利用單片機設計并制作一套智能垃圾箱

    一.硬件方案本設計主要是利用單片機設計并制作一套智能垃圾箱。要求以單片機為控制核心,通過紅外傳感器檢測是否有人扔垃圾,并自動打開垃圾箱蓋,扔
    發(fā)表于 11-19 08:41

    設計一個物聯(lián)網(wǎng)智能垃圾處理系統(tǒng)

    需要不同的回收過程。此外,每次靠近垃圾箱時,教育用戶并指導他們有關扔垃圾的說明也很重要。為此,我們設計了一個垃圾處理系統(tǒng),該系統(tǒng)使用多個垃圾箱和一個基于語音的系統(tǒng),每次用戶站在
    發(fā)表于 07-21 06:31

    垃圾箱刪除了不見了怎么辦

    垃圾箱刪除了不見了怎么辦 上回我的電腦不小心把垃圾箱給刪除了,死活不見了,現(xiàn)和大家分享一下我找回來的方法: 1 在空白的電腦桌面,按右
    發(fā)表于 12-23 14:46 ?1.7w次閱讀
    <b class='flag-5'>垃圾箱</b>刪除了不見了怎么辦

    能“吃”掉廢舊電池的新型垃圾箱

    能“吃”掉廢舊電池的新型垃圾箱 2009年11月2日8:50:27
    發(fā)表于 11-02 08:52 ?722次閱讀

    這款智能垃圾分類跟普通的垃圾箱有何區(qū)別?

    新投入使用的這款智能垃圾分類跟普通的垃圾箱有何區(qū)別?眾所周知,垃圾可分為可回收物、易腐垃圾、其
    的頭像 發(fā)表于 04-26 09:58 ?5059次閱讀

    淺談智能垃圾箱中的技術與解決方案

    智能垃圾箱在機場、商場、學校、露營地、海灘和公園非常有效。這些創(chuàng)新的垃圾箱在大城市也特別有用。
    發(fā)表于 02-12 10:08 ?3846次閱讀

    Arduino和超聲波傳感器DIY一個智能垃圾

    智能垃圾桶采用基于MCU的Arduino Uno開發(fā)板,通過伺服馬達和超聲波傳感器實現(xiàn)對傳統(tǒng)垃圾箱智能化升級改造。
    發(fā)表于 01-12 10:30 ?6243次閱讀
    用<b class='flag-5'>Arduino</b>和超聲波傳感器DIY一個<b class='flag-5'>智能</b><b class='flag-5'>垃圾</b>桶

    基于樹莓派設計的智能垃圾箱裝置

    該項目為智能垃圾箱裝置,集成了多個傳感器來監(jiān)控垃圾的狀態(tài)。   良好的垃圾管理已成為全世界的一個重要問題。在公共和自然空間中,許多人經(jīng)常不注意而留下
    的頭像 發(fā)表于 03-31 17:36 ?5169次閱讀
    基于樹莓派設計的<b class='flag-5'>智能</b><b class='flag-5'>垃圾箱</b>裝置

    帶GPS定位的智能垃圾箱開源分享

    電子發(fā)燒友網(wǎng)站提供《帶GPS定位的智能垃圾箱開源分享.zip》資料免費下載
    發(fā)表于 11-02 14:53 ?1次下載
    帶GPS定位的<b class='flag-5'>智能</b><b class='flag-5'>垃圾箱</b>開源分享

    使用Arduino、超聲波傳感器、伺服電機的智能垃圾箱

    電子發(fā)燒友網(wǎng)站提供《使用Arduino、超聲波傳感器、伺服電機的智能垃圾箱.zip》資料免費下載
    發(fā)表于 11-16 11:04 ?0次下載
    使用<b class='flag-5'>Arduino</b>、超聲波傳感器、伺服電機的<b class='flag-5'>智能</b><b class='flag-5'>垃圾箱</b>

    基于ESP8266的帶GPS智能垃圾

    本方案是基于 ESP8266 的帶GPS智能垃圾桶,使用谷歌地圖垃圾箱物聯(lián)網(wǎng)垃圾監(jiān)控位置。構成:Arduino + php + mysqld
    發(fā)表于 12-22 11:39 ?3次下載

    瑞薩推出智能垃圾箱解決方案

    隨著城市化進程的加速推進,城市垃圾處理問題愈發(fā)凸顯。傳統(tǒng)的垃圾收集方式不僅效率低下,成本高昂,而且往往伴隨著嚴重的環(huán)境污染問題。在這一背景下,瑞薩推出的智能垃圾箱解決方案以其環(huán)保、高效
    的頭像 發(fā)表于 03-16 10:02 ?953次閱讀

    瑞薩智能垃圾箱 有效整合新一代RL78微控制器

    隨著城市化進程的加速,城市垃圾處理已成為一個日益凸顯的問題。傳統(tǒng)的垃圾收集方法不僅效率低下、成本高昂,還帶來了一系列環(huán)境污染。在這種背景下,智能垃圾箱的出現(xiàn)猶如一抹亮麗的風景線,為城市
    發(fā)表于 04-01 16:45 ?503次閱讀