91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

智能垃圾桶DIY教程

454398 ? 來源:wv ? 2019-08-30 09:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第1步:項目

垃圾桶設(shè)計為在超聲波距離傳感器檢測到人員時打開。當(dāng)傳感器沒有檢測到任何人3秒鐘時,它會向后運行電機直到它按下按鈕。溫度和濕度傳感器(DHT)在垃圾桶中記錄條件并計算內(nèi)容物何時會腐爛。液晶顯示屏顯示時間,直到清空為止。

步驟2:零件清單

1 - Arduino MEGA 2560

1 - 面包板

1 - 10k歐姆電位器

1 - LCD屏幕(與Hitachi HD44780驅(qū)動程序兼容)

1 - DHT11

3 - 10k歐姆電阻

1 - 220歐姆電阻

1 - 電機控制L298N帶H橋

1 - 12伏直流電機

1 - 12伏電源

1 - 超聲波傳感器HC-SR04

1 - 按鈕

步驟3:機械設(shè)置

為了打開垃圾桶,我們制作了一個機械臂。它有兩個接頭,連接到電機和垃圾桶的蓋子。就像在第一張照片中一樣。

在秒圖中可以看到它安裝在電機上。

對于電機,我們鉆了一些孔并使用了拉鏈??梢钥吹皆诘谌龔堈掌邪惭b在垃圾箱內(nèi)。手臂粘在蓋子頂部

對于超聲波測距儀,我們在垃圾桶前面鉆了2個孔,直徑= 16mm,間距為1厘米(見4和5圖片)。/p》

對于其他部件,我們剛剛為拉鏈或螺釘鉆孔。在為其鉆孔之后,LCD用螺栓和結(jié)安裝在蓋子上。帶拉鏈的arduino和馬達驅(qū)動器。

臂部件采用3D打印。原理圖是在Autofusion 360中制作的,并使用了以下文件:

第4步:Fritzing

第一張圖顯示了如何系統(tǒng)已連線。

步驟5:代碼

代碼分為五個不同的功能,每個功能控制一個不同的傳感器或一個傳感器的一部分。為了利用代碼,必須為每個函數(shù)創(chuàng)建一個“新選項卡”。

arduino項目文件夾必須包含每個函數(shù)的代碼作為文件。

為了程序運行不間斷我們使用millis()和micros()而不是delay()。

該程序還需要以下庫,這些庫都可以在庫管理器中找到:

LiquidCrystal v1.0.7(內(nèi)置)

Adafruit Unified Sensor 1.0.2

DHT傳感器庫v1.3.0

主程序:

//Global variables are defined here. They‘re read through out the entire program.

//Local variables are defined within each function. They can only be changed or read within the function.

//Records whether the ultrasonic sensor has detected something.

//It’s controlled within the DistanceSensor function. It will stay on for four seconds when something is within range.

//Everytime it registers something it refreshes the timer.

boolean Distance_Close;

//Remembers if trashcan is open or closed. One is open and zero is closed.

bool TrashcanState;

//Monitors for local variables.

int ButtonMonitor;

int DistanceMonitor;

int CloseMonitor;

unsigned long TimeOpenMonitor;

unsigned long TimeUsedMonitor;

int DetectedMonitor;

int TemperatureMonitor;

int HumidityMonitor;

//Sets the pin numbers.

const int DCmotorIn1 = 5;

const int DCmotorIn2 = 6;

const int TrigPin = 8;

const int EchoPin = 7;

const int ButtonPin = 9;

const int rs = 13, en = 12, d4 = 11, d5 = 10, d6 = 22, d7 = 24; //Pin numbers for the LCD.

//Libraries, make sure to install all of them.

//All libraries can be found inside the Library Manager.

//“Adafruit Unified Sensor Library” must also be installed in order for dht to work even though it is not loaded.

#include

#include “DHT.h”

#define DHTPIN 3 //Defines which pin should be used for the temperature and humidity sensor

#define DHTTYPE DHT11 //Defines which type of DHT is used. If you have a DHT22 replace DHT11 with DHT22.

DHT dht(DHTPIN, DHTTYPE); //Loads the defined pin and type.

LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //Tells the program which pins are installed.

void setup() {

// Code that needs to be run once:

Serial.begin(9600); //Starts communication with the monitor. Make sure that the monitor have the same BAUD speed.

//Determine if pins are reading or writing.

pinMode(TrigPin,OUTPUT);

pinMode(EchoPin,INPUT);

pinMode(DCmotorIn1, OUTPUT);

pinMode(DCmotorIn2, OUTPUT);

pinMode(ButtonPin,INPUT);

dht.begin();

lcd.begin(16, 2); //Sets the dimension of the LCD

}

void loop() {

// put your main code here, to run repeatedly:

DistanceSensor(); //Constantly checks if someone is near the trashcan

OpenTrashcan(); //Checks if the trashcan should opened.

CloseTrashcan(); //Checks if the trashcan should be closed.

LCD();

TempHumid();

//Creates a table for monitoring all the different variables.

Serial.print(“Trashcan State : ”);

Serial.print(TrashcanState);

Serial.print(“ ”);

Serial.print(“Distance_Close: ” );

Serial.print(Distance_Close);

Serial.print(“ ”);

Serial.print(“Button: ” );

Serial.print(ButtonMonitor);

Serial.print(“ ”);

Serial.print(“Temperature: ” );

Serial.print(TemperatureMonitor);

Serial.print(“ ”);

Serial.print(“Humidity: ” );

Serial.print(HumidityMonitor);

Serial.print(“ ”);

Serial.print(“Distance: ” );

Serial.println(DistanceMonitor);

控制距離傳感器的功能:

int DistanceSensor(){

//Local variables used only in this function

unsigned long TimeUsed;

unsigned long Wait;

unsigned long WaitExtra;

unsigned long TimeOpen;

bool Detected;

long Duration;

int Distance;

TimeUsed = micros(); //Reads how long the arduino have been on in microseconds.

//Writes the local variables into global variables for monitoring

DetectedMonitor = Detected;

DistanceMonitor = Distance;

//Make the ultrasonic sensor send out a sonic wave and starts two timers.

//It is activated after 12 microseconds as the timer is exceeded and the function restarts.

if (WaitExtra 《 TimeUsed){

digitalWrite(TrigPin,HIGH); //Sends out a sonic wave

Wait = TimeUsed + 10; //Takes the current time and adds 10 microseconds to create a timer

WaitExtra = TimeUsed + 12; //Takes the current time and adds 12 to create a timer

}

//Turns off the sonic wave and reads how long it took for it to return.

//Afterwards it calculates the distance it have traveled.

//The distance is calculated in cm.

if (Wait 》= TimeUsed){

digitalWrite(TrigPin,LOW); // Stops the sonic wave

Duration = pulseIn(EchoPin,HIGH); //Reads how long it took for the wave to return in microseconds.

Distance = Duration*0.034/2; //Calculates the distance

}

//Checks if anyone is within a certain distance.

//This can be changed depending on when you want it to trigger.

//Remember this can‘t be less than 2 cm (0.79 inches) unless you use a different sensor.

if ((Distance 》= 10) && (Distance 《= 30)){

Detected = 1; //Something is detected

}

else{

Detected = 0; //Nothing has been detected

}

//Allows the Distance_Close to be set if someone if within the distance set.

//Refreshes if something is detected again.

if (Detected == 1){

TimeOpen = TimeUsed + 4000000; //Refreshes or sets the time that must pass to reset Distance_Close.

}

//Sets Distance_Close to 1, if the time set in detected hasn’t been exceed.

if (TimeOpen 》 TimeUsed){

Distance_Close = 1;

}

//Sets Distance_Close to 0, if the time set in detected has been exceed.

if (TimeOpen 《= TimeUsed){

Distance_Close = 0;

}

}

控制LCD的功能:

int LCD(){

lcd.setCursor(0, 0); //Begins writing at the top row, from the beginning

lcd.print(“Temperature: ”); //Writes “temperature” on the LCD

lcd.print(TemperatureMonitor); //Writes the number measured by the DHT

lcd.setCursor(0,1); //Begins writig at the bottom row, from the beginning

lcd.print(“Humidity: ”); //Writes “humidity” on the LCD

lcd.print(HumidityMonitor); //Writes the number measured by the DHT

}

打開垃圾桶:

bool OpenTrashcan() {

//If someone is detected within a set range in DistanceSensor, the trashcan open.

if ((TrashcanState == 0) && (Distance_Close == 1)){

//Sets the motor to run at full speed in a certain direction. In our case it is CLOCKWISE???

analogWrite(DCmotorIn1, 0);

analogWrite(DCmotorIn2, 255);

//Stops the entire program to make sure it doesn‘t stop while opening.

delay(600);

//After the delay is over the motor is turned off.

analogWrite(DCmotorIn1, 0);

analogWrite(DCmotorIn2, 0);

//Tells the rest of the program that the trashcan is open.

TrashcanState = 1;

}

}

關(guān)閉垃圾桶的功能:

bool CloseTrashcan() {

//Local variable to control the button.

int button;

button = digitalRead(9); //Continually check if the button is pressed or not

//Local variable saved as a global varaible for monitoring

ButtonMonitor = button;

//If the trashcan is open and no one has been within the range of the DistanceSensor for the set time the trashcan closes.

if ((TrashcanState == 1) && (Distance_Close == 0)){

//Starts the motor at full power. It turns COUNTER CLOCKWISE???

analogWrite(DCmotorIn1, 255);

analogWrite(DCmotorIn2, 0);

}

//If the trashcan is open and the button is pressed, the trashcan will close.

if ((button == 1) && (TrashcanState == 1)){

//Stops the motor

analogWrite(DCmotorIn1, 0);

analogWrite(DCmotorIn2, 0);

TrashcanState = 0; //Sets the trashcan as open.

}

}

讀取溫度和濕度的函數(shù):

int TempHumid(){

//Local variables used only in this function

unsigned long TimeUsed;

unsigned long Wait;

TimeUsed = millis(); //Counts how long the program have been running in millis

//Reads the temperature and humidity every 2.5 seconds.

if (Wait 《 TimeUsed){

int Humidity;

int Temperature;

Humidity = dht.readHumidity(); //Reads the current humidity in percentage.

Temperature = dht.readTemperature(); //Reads the current temperature in celcius.

HumidityMonitor = Humidity; // The humidity is saved in a global variable for monitoring.

TemperatureMonitor = Temperature; // The temperature is saved in a global variable for monitoring.

Wait = TimeUsed + 2500; //Takes the current time and adds 2500 milliseconds to create a timer.

}

}

為了獲得靈感和幫助,我們使用了以下來源:

超聲波傳感器

https://howtomechatronics.com/tutorials/arduino/u.。.

DHT11

http://www.circuitbasics.com/how-to-set-up-the-dh。 。.

該代碼基于DHT庫提供的示例。它被命名為DHTtester。

L298電機驅(qū)動模塊

https://www.instructables.com/id/How-to-use-the-L 。..

LCD

https://www.arduino.cc/en/Tutorial/HelloWorld

第6步:評估

自動垃圾桶功能齊全,但還有很多不足之處。

第一個問題是它無法檢測何時打開。這可以通過安裝伺服而不是直流電機來解決,通過使用可以檢測何時打開的按鈕或類似物。

秒的問題是超聲波傳感器有角度和一些困難時間材料太吸音了。它可以通過使用PIR傳感器來解決。如果安裝了PIR傳感器,它可以成角度以便更有可能檢測到人。

代碼也缺少顯示何時應(yīng)該清空垃圾桶的部分以及可以判斷垃圾桶何時清空的部分被清空了。

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

    關(guān)注

    3

    文章

    53

    瀏覽量

    11032
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    紅外+按鍵多模感應(yīng)!納祥科技智能感應(yīng)垃圾桶方案0.5秒極速響應(yīng)

    傳統(tǒng)垃圾桶手動開蓋易沾染細菌且操作不便,尤其在廚余垃圾處理場景中,衛(wèi)生隱患問題較為突出。而隨著智能家居的普及,感應(yīng)式垃圾桶需求激增,其非接觸操作更衛(wèi)生,已廣泛滲透到生活的方方面面?;?/div>
    的頭像 發(fā)表于 02-26 15:29 ?80次閱讀
    紅外+按鍵多模感應(yīng)!納祥科技<b class='flag-5'>智能</b>感應(yīng)<b class='flag-5'>垃圾桶</b>方案0.5秒極速響應(yīng)

    LoRa智能網(wǎng)關(guān)在智慧城市市政設(shè)施監(jiān)控中的功能作用

    如下: 一、方案架構(gòu):分層設(shè)計,數(shù)據(jù)高效流轉(zhuǎn) 終端感知層 設(shè)備部署 :在路燈、井蓋、消防栓、垃圾桶等設(shè)施上安裝LoRa終端節(jié)點,集成電流電壓傳感器、傾斜角傳感器、水壓流量傳感器、滿溢檢測傳感器等。 數(shù)據(jù)采集 :終端節(jié)點實時
    的頭像 發(fā)表于 02-10 17:26 ?146次閱讀

    LoRa智能網(wǎng)關(guān)在智慧城市市政設(shè)施監(jiān)控中的解決方案

    市政設(shè)施(如路燈、井蓋、消防栓、垃圾桶)數(shù)量龐大、分布范圍廣,傳統(tǒng)人工巡檢方式效率低下且難以實時監(jiān)控。物通博聯(lián)利用LoRa智能網(wǎng)關(guān)的廣覆蓋與高容量特性,構(gòu)建城市級市政物聯(lián)網(wǎng),實現(xiàn)對市政設(shè)施的遠程監(jiān)測
    的頭像 發(fā)表于 01-20 17:27 ?619次閱讀
    LoRa<b class='flag-5'>智能</b>網(wǎng)關(guān)在智慧城市市政設(shè)施監(jiān)控中的解決方案

    ?智能垃圾桶紅外和TOF高精度感應(yīng)方案

    ?? ? ? ? ?垃圾桶這么一個不起眼的小玩意在智能化以后其實也有大市場,智能垃圾桶的零售端價格從幾十元到幾百甚至上千元。 傳統(tǒng)垃圾桶
    的頭像 發(fā)表于 01-07 09:55 ?248次閱讀
    ?<b class='flag-5'>智能</b><b class='flag-5'>垃圾桶</b>紅外和TOF高精度感應(yīng)方案

    工業(yè)智能網(wǎng)關(guān)賦能餐廚垃圾處理設(shè)備遠程監(jiān)控與智慧運維

    行業(yè)背景 餐廚垃圾若未能及時妥善處理,不僅會造成影響市容、污染水質(zhì)、傳播疾病等負面影響,還易引發(fā)食品安全隱患,危害人體健康。隨著城市規(guī)模持續(xù)擴大與消費水平穩(wěn)步提升,廚余垃圾產(chǎn)生量日益增多,對餐廚
    的頭像 發(fā)表于 12-19 10:58 ?283次閱讀
    工業(yè)<b class='flag-5'>智能</b>網(wǎng)關(guān)賦能餐廚<b class='flag-5'>垃圾</b>處理設(shè)備遠程監(jiān)控與智慧運維

    【啟揚方案】基于RK3576的智能垃圾分類站應(yīng)用解決方案

    伴隨著城市化進程的加速和環(huán)境問題的日益凸顯,人們對于環(huán)境保護的關(guān)注度也在不斷提高,垃圾分類處理成為社會發(fā)展的重要議題。為有效解決垃圾分類和管理的難題,智能垃圾分類站應(yīng)運而生。
    的頭像 發(fā)表于 12-04 17:29 ?976次閱讀
    【啟揚方案】基于RK3576的<b class='flag-5'>智能</b><b class='flag-5'>垃圾</b>分類站應(yīng)用解決方案

    RFID在垃圾分類中的核心優(yōu)勢

    RFID在垃圾分類中的核心優(yōu)勢精準溯源每個居民或單位的垃圾桶配備唯一編碼的RFID標簽,系統(tǒng)可記錄每次投放的時間、地點和責(zé)任人,實現(xiàn)垃圾來源可追溯。自動識別分類在智能
    的頭像 發(fā)表于 09-23 11:08 ?546次閱讀
    RFID在<b class='flag-5'>垃圾</b>分類中的核心優(yōu)勢

    輝芒微單片機FT60F112-RB作為智能感應(yīng)垃圾桶的主控芯片!

    感應(yīng)垃圾桶中,當(dāng)紅外傳感器檢測到人體靠近信號時,F(xiàn)T60F112-RB 能迅速做出反應(yīng),控制電機開啟垃圾桶蓋,其快速響應(yīng)時間為用戶帶來了便捷體驗。? ? 從工作電壓范圍來看,1.9V 至 5.5V 的寬電壓區(qū)間賦予了它強大的適用性。無論是采用干電池供電,還是通過 USB
    的頭像 發(fā)表于 09-09 19:31 ?760次閱讀
    輝芒微單片機FT60F112-RB作為<b class='flag-5'>智能</b>感應(yīng)<b class='flag-5'>垃圾桶</b>的主控芯片!

    賦能智慧生活:廣州唯創(chuàng)電子WT588F02B語音芯片引領(lǐng)智能垃圾桶新體驗

    在科技日新月異的今天,智能家居正以前所未有的速度融入我們的日常生活,重新定義著舒適與便捷。作為家庭清潔場景中的重要一環(huán),智能垃圾桶也不再僅僅是容納廢棄物的容器,而是進化為兼具智能化、人
    的頭像 發(fā)表于 08-20 08:52 ?526次閱讀
    賦能智慧生活:廣州唯創(chuàng)電子WT588F02B語音芯片引領(lǐng)<b class='flag-5'>智能</b><b class='flag-5'>垃圾桶</b>新體驗

    廣州黃埔城管攜手海康威視打造垃圾分類智慧管理系統(tǒng)

    走進廣州黃埔社區(qū),"無異味、無污漬、無混投"的垃圾投放點已成為新日常。四色分類垃圾桶整齊擺放,清新空氣與整潔環(huán)境讓居民倍感舒心。
    的頭像 發(fā)表于 08-06 10:28 ?909次閱讀

    超聲波傳感器解決方案? 的詳細技術(shù)設(shè)計

    這兩年來,隨著物聯(lián)網(wǎng)、人工智能、云計算、大數(shù)據(jù)等技術(shù)在智慧環(huán)衛(wèi)領(lǐng)域的逐步下沉滲透,使得城市環(huán)衛(wèi)的數(shù)字化作業(yè)模式也愈加成熟。廣為熟知的便是垃圾分類管理。垃圾分類管理采用垃圾桶
    的頭像 發(fā)表于 08-04 08:47 ?629次閱讀
    超聲波傳感器解決方案? 的詳細技術(shù)設(shè)計

    RFID標簽在垃圾分類的應(yīng)用

    二、RFID標簽在垃圾分類中的優(yōu)勢高效率:RFID可以快速批量讀取垃圾信息,大幅縮短操作時間,提高垃圾分類效率。準確性:RFID減少了人工操作的錯誤率,提高了垃圾分類的準確性和可靠性。
    的頭像 發(fā)表于 07-31 16:48 ?775次閱讀
    RFID標簽在<b class='flag-5'>垃圾</b>分類的應(yīng)用

    太陽能供電+5G聯(lián)網(wǎng):云翎智能防撞的低碳運維之道

    在智慧交通領(lǐng)域,云翎智能防撞以太陽能供電與5G聯(lián)網(wǎng)技術(shù)為雙翼,不僅實現(xiàn)了道路安全的智能化升級,更開創(chuàng)了低碳運維的新范式——通過光能自給自足的能源循環(huán)與5G低時延通信的精準管控。云翎智能
    的頭像 發(fā)表于 04-11 12:43 ?535次閱讀
    太陽能供電+5G聯(lián)網(wǎng):云翎<b class='flag-5'>智能</b>防撞<b class='flag-5'>桶</b>的低碳運維之道

    STM32項目分享:STM32智能語音分類垃圾桶

    01—項目簡介1.功能詳解STM32智能語音分類垃圾桶功能如下:1.STM32F103C8T6單片機系統(tǒng)板作為主控單元2.舵機驅(qū)動垃
    的頭像 發(fā)表于 03-15 10:02 ?2980次閱讀
    STM32項目分享:STM32<b class='flag-5'>智能</b>語音分類<b class='flag-5'>垃圾桶</b>