99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

智能垃圾桶DIY教程

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

掃碼添加小助手

加入工程師交流群

第1步:項(xiàng)目

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

步驟2:零件清單

1 - Arduino MEGA 2560

1 - 面包板

1 - 10k歐姆電位器

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

1 - DHT11

3 - 10k歐姆電阻

1 - 220歐姆電阻

1 - 電機(jī)控制L298N帶H橋

1 - 12伏直流電機(jī)

1 - 12伏電源

1 - 超聲波傳感器HC-SR04

1 - 按鈕

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

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

在秒圖中可以看到它安裝在電機(jī)上。

對(duì)于電機(jī),我們鉆了一些孔并使用了拉鏈。可以看到在第三張照片中安裝在垃圾箱內(nèi)。手臂粘在蓋子頂部

對(duì)于超聲波測(cè)距儀,我們?cè)诶扒懊驺@了2個(gè)孔,直徑= 16mm,間距為1厘米(見4和5圖片)。/p》

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

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

第4步:Fritzing

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

步驟5:代碼

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

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

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

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

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

Adafruit Unified Sensor 1.0.2

DHT傳感器庫(kù)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庫(kù)提供的示例。它被命名為DHTtester。

L298電機(jī)驅(qū)動(dòng)模塊

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

LCD

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

第6步:評(píng)估

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

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

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

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

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

    關(guān)注

    3

    文章

    53

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    STM32項(xiàng)目分享:STM32智能語(yǔ)音分類垃圾桶

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

    嵌入式工業(yè)級(jí)顯示器在環(huán)保垃圾柜設(shè)備中的作用

    嵌入式工業(yè)級(jí)顯示器在環(huán)保垃圾柜設(shè)備中發(fā)揮著至關(guān)重要的作用。以下是其具體作用的分析: 一、提供交互界面 嵌入式工業(yè)級(jí)顯示器為環(huán)保垃圾柜設(shè)備提供了一個(gè)直觀、易用的交互界面。用戶可以通過觸摸屏幕進(jìn)行操作
    的頭像 發(fā)表于 02-21 11:18 ?348次閱讀
    嵌入式工業(yè)級(jí)顯示器在環(huán)保<b class='flag-5'>垃圾</b>柜設(shè)備中的作用

    NV080D高品質(zhì)otp語(yǔ)音芯片:讓足浴(盆)更智能的IC

    NV080D高品質(zhì)otp語(yǔ)音芯片專為足浴設(shè)計(jì),支持多種控制方式,可播放豐富語(yǔ)音內(nèi)容,提升用戶體驗(yàn),實(shí)現(xiàn)智能化交互,成為足浴行業(yè)優(yōu)選方案。
    的頭像 發(fā)表于 01-13 13:44 ?454次閱讀
    NV080D高品質(zhì)otp語(yǔ)音芯片:讓足浴<b class='flag-5'>桶</b>(盆)更<b class='flag-5'>智能</b>的IC

    物聯(lián)網(wǎng)+垃圾桶滿溢檢測(cè)器回收系統(tǒng)解決方案

    一、方案背景 今年垃圾分類正式進(jìn)入大眾視野,不僅成為普通百姓最關(guān)心的話題,也再次將垃圾分類行業(yè)推向市場(chǎng)焦點(diǎn)。由此可見,隨著垃圾分類制度的進(jìn)一步落地,行業(yè)在5~7年內(nèi)將呈現(xiàn)快速增長(zhǎng)態(tài)勢(shì),以往通過混合收
    的頭像 發(fā)表于 01-02 15:58 ?960次閱讀
    物聯(lián)網(wǎng)+<b class='flag-5'>垃圾桶</b>滿溢檢測(cè)器回收系統(tǒng)解決方案

    智能垃圾投放站遠(yuǎn)程監(jiān)控智慧運(yùn)維系統(tǒng)方案

    隨著環(huán)保意識(shí)的提高和政策的推動(dòng),垃圾分類已成為全球發(fā)展的重要主題。我國(guó)持續(xù)推進(jìn)垃圾分類和回收等相關(guān)產(chǎn)業(yè)的發(fā)展,鼓勵(lì)居民和企業(yè)進(jìn)行垃圾分類和回收,以減少資源浪費(fèi)和環(huán)境污染。 智能
    的頭像 發(fā)表于 12-31 15:47 ?410次閱讀

    垃圾桶滿溢檢測(cè)器中溢滿程度監(jiān)測(cè)方案

    這兩年來,隨著物聯(lián)網(wǎng)、人工智能、云計(jì)算、大數(shù)據(jù)等技術(shù)在智慧環(huán)衛(wèi)領(lǐng)域的逐步下沉滲透,使得城市環(huán)衛(wèi)的數(shù)字化作業(yè)模式也愈加成熟。廣為熟知的便是垃圾分類管理。垃圾分類管理采用垃圾桶對(duì)
    的頭像 發(fā)表于 12-20 16:15 ?862次閱讀
    <b class='flag-5'>垃圾桶</b>滿溢檢測(cè)器中溢滿程度監(jiān)測(cè)方案

    垃圾短信?手機(jī)自動(dòng)識(shí)別垃圾短信邏輯的分析

    作者:京東科技 賈玉龍 1 背景 隨著智能手機(jī)的普及和移動(dòng)互聯(lián)網(wǎng)的發(fā)展,短信作為一種傳統(tǒng)的通訊方式,仍然保持著其獨(dú)特的地位。然而,隨著垃圾短信的泛濫,手機(jī)自動(dòng)識(shí)別垃圾短信的技術(shù)也在不斷進(jìn)步。對(duì)于提供
    的頭像 發(fā)表于 12-16 10:19 ?985次閱讀

    霍爾元件DH627/DH629在智能垃圾桶中的應(yīng)用

    霍爾元件在智能垃圾桶中的應(yīng)用主要體現(xiàn)在其作為磁傳感器的功能上,通過檢測(cè)磁場(chǎng)及其變化來控制垃圾桶的開關(guān)和其他功能。以下是對(duì)霍爾元件在智能垃圾桶
    的頭像 發(fā)表于 12-06 11:28 ?641次閱讀
    霍爾元件DH627/DH629在<b class='flag-5'>智能</b><b class='flag-5'>垃圾桶</b>中的應(yīng)用

    Transformer模型能夠做什么

    盡管名為 Transformer,但它們不是電視銀幕上的變形金剛,也不是電線桿上垃圾桶大小的變壓器。
    的頭像 發(fā)表于 11-20 09:27 ?1024次閱讀
    Transformer模型能夠做什么

    XD08M3232紅外感應(yīng)單片機(jī)在智能垃圾桶抗干擾性分析

    的功耗意味著在電源波動(dòng)時(shí)對(duì)自身運(yùn)行狀態(tài)影響較小,不會(huì)因功耗的大幅波動(dòng)而引入干擾。智能垃圾桶的電源可能會(huì)因?yàn)殡姵仉娏肯陆祷蛘咄獠砍潆娫O(shè)備的不穩(wěn)定而產(chǎn)生波動(dòng),這種穩(wěn)定的功耗特性有利于維持單片機(jī)的正常運(yùn)行
    發(fā)表于 11-13 19:00

    XD08M3232接近感應(yīng)單片機(jī)在智能垃圾桶抗干擾性分析

    的功耗意味著在電源波動(dòng)時(shí)對(duì)自身運(yùn)行狀態(tài)影響較小,不會(huì)因功耗的大幅波動(dòng)而引入干擾。智能垃圾桶的電源可能會(huì)因?yàn)殡姵仉娏肯陆祷蛘咄獠砍潆娫O(shè)備的不穩(wěn)定而產(chǎn)生波動(dòng),這種穩(wěn)定的功耗特性有利于維持單片機(jī)的正常運(yùn)行
    發(fā)表于 11-04 13:42

    【全新課程資料】正點(diǎn)原子《ESP32基礎(chǔ)及項(xiàng)目實(shí)戰(zhàn)入門》培訓(xùn)課程資料上線!

    綜合項(xiàng)目:智能感應(yīng)垃圾桶項(xiàng)目 二、課程目的 1、熟練ESP-IDF開發(fā),突破ESP32入門難題 2、熟悉ESP32外設(shè)基礎(chǔ)知識(shí),提升開發(fā)能力,克服眼高手低的問題 3、通過多個(gè)外設(shè)實(shí)戰(zhàn),掌握ESP32
    發(fā)表于 09-24 17:59

    亮鉆科技智能垃圾分類箱方案介紹

    據(jù)研究報(bào)告顯示,2020年智能垃圾分類市場(chǎng)規(guī)模約92億元。預(yù)計(jì)未來五年,隨著城市生活垃圾增多和政策推進(jìn),該行業(yè)將快速發(fā)展,到2025年市場(chǎng)規(guī)模預(yù)計(jì)達(dá)190億元。 在這種情況下,集成新一代信息技術(shù)的
    的頭像 發(fā)表于 08-06 17:46 ?1082次閱讀
    亮鉆科技<b class='flag-5'>智能</b><b class='flag-5'>垃圾</b>分類箱方案介紹

    化糞池滿溢檢測(cè)器(NB-IoT)IDM-ET34T

    垃圾桶滿溢檢測(cè)器IDM-ET35一類用于PIS和PDS應(yīng)用的一體化ISM無線垃圾桶檢測(cè)器基于MP-SONIC(微功率超聲波檢測(cè))垃圾桶滿溢檢測(cè)器,檢測(cè)標(biāo)簽,智能傳感器,支持LoRa/L
    發(fā)表于 07-23 15:41 ?0次下載