<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

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

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

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

優勢

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

構建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)。數字信號(藍色)線應連接到 Arduino Nano 上的數字引腳 2。

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

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

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

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

Arduino智能垃圾箱設計

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

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

使用Arduino代碼的智能垃圾箱

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

這些行聲明用于各種組件的引腳編號的常數,例如超聲波傳感器(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

這些行創建 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() 函數中,伺服電機連接到引腳 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()
函數中,代碼使用超聲波傳感器連續測量距離。它觸發傳感器,記錄信號返回所需的時間,并以厘米為單位計算距離,并在串行監視器上顯示結果

// Check if the IR sensor is activated

int irSensorValue = digitalRead(irSensorPin);

Serial.println(irSensorValue);

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

// 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狀態,表示 IR 傳感器已激活(即檢測到物體)。如果滿足任一條件,代碼將檢查 lidOpen 變量是否為 false。如果蓋子未打開(!lidOpen 為
true),則繼續打開蓋子 lidOpen 設置為 true,表示蓋子已打開。通過將 LED (ledPin) 和燈 (lightPin)設置為高電平狀態來打開它們,從而提供視覺反饋。一條消息“Led On”打印到串行監視器進行調試。

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

servo1.write(angle);

servo2.write(180 - angle);

delay(10);

}

}

在開蓋部分內,使用for循環逐漸打開蓋子。此循環從 90 度的初始角度迭代到最終 180度的角度。它以協調的方式改變舵機1和舵機2的角度,以產生平穩的開蓋運動。每一步增加 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 中的條件均不滿足(即未檢測到物體或物體超出范圍),則代碼將繼續檢查蓋子是否打開。它驗證 lidOpen 是否為true,指示蓋子當前處于打開狀態。它進一步檢查自上次檢測到對象以來是否超過 2 秒,使用 millis() 函數計算時間差。

{

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”);

}

}}

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

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

智能垃圾箱的工作原理

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

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

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

結論

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

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

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

    關注

    185

    文章

    6434

    瀏覽量

    185119
  • 智能垃圾桶
    +關注

    關注

    2

    文章

    51

    瀏覽量

    10553
收藏 人收藏

    評論

    相關推薦

    基于機智云物聯網平臺的智能垃圾回收與控制系統研究

    ,改善垃圾箱環境。 1、分析智能垃圾分類技術與物聯網技術發展,確定研究目標。 2、提出智能垃圾回收
    發表于 04-09 17:25

    【MiCOKit申請】智能垃圾

    申請理由:想嘗試下用micokit實現無線控制可智能移動,用WiFi自組網絡,作為通信平臺,手機客戶端作為移動終端,進行無線操作項目描述:初步方案:實現(1)自動控制“移動垃圾箱”的移動(2)自動
    發表于 08-17 09:02

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

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

    【MIKROE-4114開發板試用體驗連載】智能垃圾箱電動開合蓋---1開箱與開發準備工作

    `1、開箱開箱第一感覺板子小巧精致,電路簡潔,絲印完整。HSOP8的封裝峰值電流能達到3.5A確實比較有優勢。2、開發前的準備芯片資料,芯片框圖如下圖所示附件是TB67H451FNG的數據手冊3、目標打算將開發板應用于公司現有的智能垃圾箱電動開合蓋機構,替換原有的控制器并
    發表于 12-19 09:57

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

    `接上節。開關門機構使用推桿電機實現了智能垃圾箱電動開關門,電流檢測防夾手。經測試,功能滿足使用需求。`
    發表于 12-31 10:48

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

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

    利用超聲波模塊和舵機實現垃圾箱蓋子的自動開合

    模塊和舵機實現垃圾箱蓋子的自動開合。一、項目軟硬件平臺及開發環境1.1、硬件平臺特性1.基于ESP-8266EX2.Arduino兼容,使用rduino IDE來編程3.11 x I/O 引腳4.1 x ADC 引腳(輸入范圍0-3.3V)5.板載5V 1A開關電源(高輸
    發表于 01-06 08:20

    設計一個物聯網智能垃圾處理系統

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

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

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

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

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

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

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

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

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

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

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

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

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

    基于Arduino和傳感器制作智能垃圾

    電子發燒友網站提供《基于Arduino和傳感器制作智能垃圾桶.zip》資料免費下載
    發表于 11-18 09:24 ?5次下載
    基于<b class='flag-5'>Arduino</b>和傳感器<b class='flag-5'>制作</b><b class='flag-5'>智能</b><b class='flag-5'>垃圾</b>桶
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>