精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

用Arduino Uno制作一個智能的自動寵物喂食器

王越建 ? 來源:DevicePlus ? 作者:DevicePlus ? 2023-02-24 15:12 ? 次閱讀

這篇文章來源于DevicePlus.com英語網站的翻譯稿。

poYBAGPzFvGALOu_AAH7tmSZSiA559.jpg

你曾懶得喂你家寵物嗎?我們愛我們的寵物,但有時我們也希望能讓喂寵物這件事變得自動化一點。今天我們將使用Arduino Uno做一個智能自動寵物喂食器!該項目的主要組件包括一個用來追蹤時間、管理喂養計劃的RTC模塊,一個用來監控食物水平的距離傳感器,一個用來區分白天黑夜的光敏傳感器,一個用來識別寵物的RFID。好了!讓我們開始吧!

硬件

Arduino Uno

TEMT6000 光敏傳感器

GP2Y0A21YK 夏普距離傳感器

RFID MFRC522

蜂鳴器

SG90 電機

RTC DS1307

軟件

Arduino IDE

https://github.com/todeilatiberia/AutomaticFeeder

工具

瓶子(或任何食物容器)

金屬板 35×25 厘米

第1步:連接光敏傳感器

我們使用SparkFun光敏傳感器TEMT6000來檢測白天和黑夜。之所以需要區分這兩者,主要原因是因為我們要確定何時需要投放食物,兩次食物投放之間需要間隔多久。TEMT6000光敏傳感器有3個引腳:SIG,GND,VCC。將這個傳感器接到Arduino板上的步驟非常簡單:VCC連接到5V引腳;GND到板上的GND引腳,然后SIG需要接到模擬輸入上。我選擇了A0引腳。輸出引腳SIG的作用就好像一個晶體管,因此在傳感器附近的光越亮,引腳輸出的電壓就越高。

下圖顯示了TEMT6000感知到的電流和照度之間的關系。照度是總光通量(即光源發出的可見光,以lm為單位)除以面積(m2)的量度。一般來說,1照度(Ix) = 1 / m2。TEMT6000可以識別典型的人類可見光光譜,波長在390-700納米之間。

TEMT6000技術規格書: https://www.sparkfun.com/datasheets/Sensors/Imaging/TEMT6000.pdf

pYYBAGPzFvOAZwltAAGGxOqCMBk305.jpg

圖1:集電極電流vs照度/?Sparkfun

pYYBAGPzFvWABqlVAADZh2iTJVA459.jpg

圖2:TEMT6000光敏傳感器與Arduino Uno的接線圖

pYYBAGPzFvmAGK9YAATOVv3jNjI776.jpg

圖3:TEMT6000和Arduino Uno之間的接線圖

由于該傳感器連接在模擬引腳上,而模數轉換器的分辨率是10位的,所以其最大值為1023。例如,當傳感器接收到來自我手機閃光燈的最亮照射時,從傳感器讀出的值大約是1023。

poYBAGPzFvuAAbm3AAC31lyNh84051.jpg

圖4:Arduino顯示傳感器最大值的串口監視器

光敏傳感器的代碼:

int lightSensor = 0;

void setup() {

Serial.begin(9600);

}



void loop() {

int valueFromLightSensor = analogRead(lightSensor);

Serial.println(valueFromLightSensor);



delay(1000);

}

第2步:添加距離傳感器

為了測量距離,我選擇了一個模擬傳感器(Sharp GP2Y0A21YK),因為與其他距離傳感器相比,它的效果最好。其工作原理如下:首先發出一個信號,當它發現路上有障礙物時,它也會發回一個信號(一個電壓值,該電壓值隨障礙物的遠近而變化),這個電壓會轉換成距離。

GP2Y0A21YK將被安置在食物容器上方,在開啟自動喂食功能前,需要先測量瓶子里的剩余空間(即食物的多少)。有了這個距離傳感器,系統將檢測食物容器(或瓶子)是滿的還是空的。具體工作方式如下:

距離較小: 自動系統只會增加一小部分食物;

中等距離: 您的寵物將獲得一半食物;

距離較大: 自動系統將投喂全部食物。

這里的距離表示從安裝距離傳感器的位置到食品容器底部的距離。由于傳感器的量程為10-80 cm,所以傳感器需要在食品容器頂部以上10cm處才能讀取正確的距離值。

如何確定傳感器的最佳擬合線:

摘自 Pololu.com

傳感器的輸出電壓與測量距離的倒數之間的關系在傳感器的可用范圍內近似線性。您可以使用此圖將傳感器輸出電壓轉換為一個近似的距離,方法是創建一條最佳擬合線,將輸出電壓(V)的倒數與距離(cm)聯系起來。線性化方程的最簡形式可以表述為到反射物體的距離約等于一個常數尺度因子(~ 27v *cm)除以傳感器的輸出電壓之后的數值。因此增加一個恒定的距離偏移量并修改縮放因子可以改善這條線的擬合。

poYBAGPzFvyAAkLHAAB0P5-qcF0035.jpg

圖5:距離傳感器的特性 / ?Pololu.com

摘自 Phidgets.com

基于夏普的“典型值”,將傳感器值轉換為距離的公式(公式僅適用于傳感器值在80 – 500之間)為:

距離 (cm) = 4800/(傳感器值 – 20)

這種傳感器可以找到離物體的距離,這些物體呈現出非常窄的邊緣,比如角度非常尖銳的墻壁。

注: 該傳感器的輸出因單元而異,并取決于目標的特性(反射率、尺寸、運動方向、目標對準)。

poYBAGPzFv6AdiicAAH0qupD3pw044.jpg

圖6:夏普GP2Y0A21YK與Uno之間的接線圖

pYYBAGPzFwGAcUdsAATAKA6INAc774.jpg

圖7:夏普距離傳感器、TEMT6000、Uno之間的接線圖

代碼:

int lightSensor = 0;

int distanceSensor=1;



void setup() {

 Serial.begin(9600);

}



void loop() {

 int valueFromLightSensor = analogRead(lightSensor);

 Serial.print("Light Value= ");

 Serial.print(valueFromLightSensor);

 Serial.println("");

 Serial.print("Distance Value= ");

 int valueFromDistanceSensor = analogRead(distanceSensor);

 int distance= 4800/(valueFromDistanceSensor - 20);

 Serial.print(distance);



 delay(1000);

}

第3步: 確定時間

RTC DS1307模型將被用來確定時間。一個實時的時鐘系統承擔了確定時間的功能。該電路基于一個頻率為32.768 kHz的晶體振蕩器展開工作。其原理與手表類似。一個基于晶體振動的機械共振的電子振蕩器能產生精確的頻率。此頻率用來追蹤源自計算機的日期和時間。

這是一個實用模塊,即使在系統關閉時,上面所配備的電池也能保證系統工作的連續性。

poYBAGPzFwKAZNYfAAJvwpMPLdw750.jpg

圖8:RTC模塊接線圖

poYBAGPzFwSAdvS8AASWGoksa8g716.jpg

圖9:RTC、夏普距離傳感器、TEMT6000、Uno之間的接線圖

為了獲得最佳的使用效果,需要為模塊添加兩個庫。

這兩個庫可以在我的網址 https://github.com/todeilatiberia/AutomaticFeeder上找到:

DS1307RTC

時間

連接線(這個庫已經包含在Arduino IDE中,因此添加起來很容易)

我們將運行一個測試代碼來檢測模塊。當我們將程序上傳到Arduino board時,串口監視器會顯示當前的日期和時間。這兩個庫有一個用于查找日期和時間的示例代碼,稱為 “SetTime”。

找出設置時間:

點擊 Arduino IDE → 文件 → 示例 → DS1307RTC → 設置時間

poYBAGPzFwaAYn0oAALeGsTu174077.jpg

圖10:在Arduino IDE上查找設置時間

在圖11中,您將看到模塊在顯示當前日期和時間時正常工作。

pYYBAGPzFwiAL4krAAF4AP6iJvA559.jpg

圖11: 正確顯示當前的日期和時間

在這里,我們將只測量小時的運行情況。為此,我們需要從RTC模塊中提取確切的時間。這將通過名為“setSyncProvider(RTC.get)”的RTC簡單函數來完成。在實現此功能后,您將能夠同時看到串口監視器上的小時數以及距離傳感器和光敏傳感器上的數值。

代碼:

#include 

#include 

#include 



int lightSensor = 0;

int distanceSensor=1;



void setup() {

 Serial.begin(9600);

 setSyncProvider(RTC.get);

}





void loop() {

 int valueFromLightSensor = analogRead(lightSensor);

 Serial.print("Light Value= ");

 Serial.print(valueFromLightSensor);

 Serial.println("");

 Serial.print("Distance Value= ");

 int valueFromDistanceSensor = analogRead(distanceSensor);

 int distance= 4800/(valueFromDistanceSensor - 20);

 Serial.println(distance);

 

 Serial.print("Hour= ");

 Serial.println(hour());

 delay(1000);

 

}

pYYBAGPzFwqAI5RRAADVxAhmE9Q044.jpg

圖12:所顯示的小時

繼續閱讀 >

pYYBAGPzDmSAfn_UAAAF-_P5AGo881.jpg

Tiberia Todeila

Tiberia目前是布加勒斯特理工大學電氣工程學院的大四學生。她非常熱衷于智能家居設備的設計和開發,旨在讓我們的日常生活更加輕松。

審核編輯黃宇

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

    關注

    2548

    文章

    50698

    瀏覽量

    752053
  • 測量
    +關注

    關注

    10

    文章

    4774

    瀏覽量

    111136
  • Arduino
    +關注

    關注

    187

    文章

    6464

    瀏覽量

    186665
收藏 人收藏

    評論

    相關推薦

    構建基于Arduino自動寵物喂食器

    今天,我們正在構建基于Arduino自動寵物喂食器,它可以及時
    的頭像 發表于 11-17 17:28 ?2908次閱讀
    構建<b class='flag-5'>一</b><b class='flag-5'>個</b>基于<b class='flag-5'>Arduino</b>的<b class='flag-5'>自動</b><b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>

    怎么實現寵物自動喂食器的設計?

    怎么實現寵物自動喂食器的設計?
    發表于 06-15 07:01

    如何設計寵物喂食器

    如何設計寵物喂食器
    發表于 02-09 07:49

    自制寵物喂食器

    :(劃掉虛假的)你參加了聚會/你工作了/你的孩子不讓你睡覺。這只是遠程饋線派上用場的例子。與您家中的智能系統集成的
    發表于 07-22 07:43

    自動喂食器的設計原理圖

    自己設計的自動喂食器的設計,家庭寵物的需要。
    發表于 12-30 15:55 ?35次下載

    基于涂鴉智能寵物喂食器

    基于涂鴉智能寵物喂食器
    發表于 12-04 18:36 ?27次下載
    基于涂鴉<b class='flag-5'>智能</b>的<b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>

    制作易于使用的自動寵物喂食器

    這是易于使用的自動寵物喂食器,帶有些 3D 打印部件、可調節的
    的頭像 發表于 06-28 17:18 ?5375次閱讀
    <b class='flag-5'>制作</b><b class='flag-5'>一</b><b class='flag-5'>個</b>易于使用的<b class='flag-5'>自動</b><b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>

    基于物聯網的寵物喂食器

    我們正在構建簡單、高效且經濟的基于物聯網的寵物喂食器。使用這款自動寵物
    的頭像 發表于 07-25 17:29 ?3317次閱讀
    基于物聯網的<b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>

    設計寵物NFC定時喂食器

    我設計并制造了這款自動喂食器,以幫助我的糖尿病貓控制他的喂食并防止我的另只貓吃他的食物。該喂食器可能對需要監控
    的頭像 發表于 08-06 16:15 ?2499次閱讀
    設計<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>寵物</b>NFC定時<b class='flag-5'>喂食器</b>

    Arduino遙控寵物喂食器

    電子發燒友網站提供《Arduino遙控寵物喂食器.zip》資料免費下載
    發表于 10-24 10:28 ?4次下載
    <b class='flag-5'>Arduino</b>遙控<b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>

    智能自動魚/寵物喂食器開源分享

    電子發燒友網站提供《智能自動魚/寵物喂食器開源分享.zip》資料免費下載
    發表于 10-24 09:23 ?9次下載
    <b class='flag-5'>智能</b><b class='flag-5'>自動</b>魚/<b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>開源分享

    自動寵物喂食器開源硬件

    電子發燒友網站提供《自動寵物喂食器開源硬件.zip》資料免費下載
    發表于 12-23 17:06 ?3次下載
    <b class='flag-5'>自動</b><b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>開源硬件

    Arduino Uno制作智能自動寵物喂食器(續)

    第4步:添加 RFIDRFID是該系統的核心。當你的寵物靠近喂食器時,RFID將讀取標簽上的值,并決定是否提供更多的食物。
    的頭像 發表于 02-24 14:40 ?1716次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>Arduino</b> <b class='flag-5'>Uno</b><b class='flag-5'>制作</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>智能</b>的<b class='flag-5'>自動</b><b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>(續)

    基于WTR096-28SS芯片方案的寵物喂食器實現智能喂食功能

    、簡介 本方案寵物喂食器采用了WTR096-28SS芯片方案來實現智能化的喂食功能。該方案結合了先進的技術和設計理念,提供了便捷、
    的頭像 發表于 03-19 13:57 ?502次閱讀
    基于WTR096-28SS芯片方案的<b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>實現<b class='flag-5'>智能</b>化<b class='flag-5'>喂食</b>功能

    寵物自動喂食器主控芯片DSH3186

    寵物在現代人的生活中占有極大的比重,甚至愿意將寵物當做孩子精細地養活。也正因為如此,由寵物而衍生出來的產業鏈涉及方方面面,不但解決了寵物主人的煩惱,也給
    的頭像 發表于 11-01 16:26 ?203次閱讀