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

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

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

用Arduino Uno制作一個(gè)智能的自動(dòng)寵物喂食器

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

這篇文章來源于DevicePlus.com英語網(wǎng)站的翻譯稿。

poYBAGPzFvGALOu_AAH7tmSZSiA559.jpg

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

硬件

Arduino Uno

TEMT6000 光敏傳感器

GP2Y0A21YK 夏普距離傳感器

RFID MFRC522

蜂鳴器

SG90 電機(jī)

RTC DS1307

軟件

Arduino IDE

https://github.com/todeilatiberia/AutomaticFeeder

工具

瓶子(或任何食物容器)

金屬板 35×25 厘米

第1步:連接光敏傳感器

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

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

TEMT6000技術(shù)規(guī)格書: 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之間的接線圖

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

poYBAGPzFvuAAbm3AAC31lyNh84051.jpg

圖4:Arduino顯示傳感器最大值的串口監(jiān)視器

光敏傳感器的代碼:

int lightSensor = 0;

void setup() {

Serial.begin(9600);

}



void loop() {

int valueFromLightSensor = analogRead(lightSensor);

Serial.println(valueFromLightSensor);



delay(1000);

}

第2步:添加距離傳感器

為了測量距離,我選擇了一個(gè)模擬傳感器(Sharp GP2Y0A21YK),因?yàn)榕c其他距離傳感器相比,它的效果最好。其工作原理如下:首先發(fā)出一個(gè)信號,當(dāng)它發(fā)現(xiàn)路上有障礙物時(shí),它也會(huì)發(fā)回一個(gè)信號(一個(gè)電壓值,該電壓值隨障礙物的遠(yuǎn)近而變化),這個(gè)電壓會(huì)轉(zhuǎn)換成距離。

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

距離較小: 自動(dòng)系統(tǒng)只會(huì)增加一小部分食物;

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

距離較大: 自動(dòng)系統(tǒng)將投喂全部食物。

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

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

摘自 Pololu.com

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

poYBAGPzFvyAAkLHAAB0P5-qcF0035.jpg

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

摘自 Phidgets.com

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

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

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

注: 該傳感器的輸出因單元而異,并取決于目標(biāo)的特性(反射率、尺寸、運(yùn)動(dòng)方向、目標(biāo)對準(zhǔn))。

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步: 確定時(shí)間

RTC DS1307模型將被用來確定時(shí)間。一個(gè)實(shí)時(shí)的時(shí)鐘系統(tǒng)承擔(dān)了確定時(shí)間的功能。該電路基于一個(gè)頻率為32.768 kHz的晶體振蕩器展開工作。其原理與手表類似。一個(gè)基于晶體振動(dòng)的機(jī)械共振的電子振蕩器能產(chǎn)生精確的頻率。此頻率用來追蹤源自計(jì)算機(jī)的日期和時(shí)間。

這是一個(gè)實(shí)用模塊,即使在系統(tǒng)關(guān)閉時(shí),上面所配備的電池也能保證系統(tǒng)工作的連續(xù)性。

poYBAGPzFwKAZNYfAAJvwpMPLdw750.jpg

圖8:RTC模塊接線圖

poYBAGPzFwSAdvS8AASWGoksa8g716.jpg

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

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

這兩個(gè)庫可以在我的網(wǎng)址 https://github.com/todeilatiberia/AutomaticFeeder上找到:

DS1307RTC

時(shí)間

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

我們將運(yùn)行一個(gè)測試代碼來檢測模塊。當(dāng)我們將程序上傳到Arduino board時(shí),串口監(jiān)視器會(huì)顯示當(dāng)前的日期和時(shí)間。這兩個(gè)庫有一個(gè)用于查找日期和時(shí)間的示例代碼,稱為 “SetTime”。

找出設(shè)置時(shí)間:

點(diǎn)擊 Arduino IDE → 文件 → 示例 → DS1307RTC → 設(shè)置時(shí)間

poYBAGPzFwaAYn0oAALeGsTu174077.jpg

圖10:在Arduino IDE上查找設(shè)置時(shí)間

在圖11中,您將看到模塊在顯示當(dāng)前日期和時(shí)間時(shí)正常工作。

pYYBAGPzFwiAL4krAAF4AP6iJvA559.jpg

圖11: 正確顯示當(dāng)前的日期和時(shí)間

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

代碼:

#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:所顯示的小時(shí)

繼續(xù)閱讀 >

pYYBAGPzDmSAfn_UAAAF-_P5AGo881.jpg

Tiberia Todeila

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

審核編輯黃宇

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

    關(guān)注

    2552

    文章

    51353

    瀏覽量

    755569
  • 測量
    +關(guān)注

    關(guān)注

    10

    文章

    4927

    瀏覽量

    111646
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6477

    瀏覽量

    187513
收藏 人收藏

    評論

    相關(guān)推薦

    構(gòu)建個(gè)基于Arduino自動(dòng)寵物喂食器

    今天,我們正在構(gòu)建個(gè)基于Arduino自動(dòng)寵物喂食器,它可以及時(shí)
    的頭像 發(fā)表于 11-17 17:28 ?3074次閱讀
    構(gòu)建<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>基于<b class='flag-5'>Arduino</b>的<b class='flag-5'>自動(dòng)</b><b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>

    怎么實(shí)現(xiàn)寵物自動(dòng)喂食器的設(shè)計(jì)?

    怎么實(shí)現(xiàn)寵物自動(dòng)喂食器的設(shè)計(jì)?
    發(fā)表于 06-15 07:01

    如何設(shè)計(jì)個(gè)寵物喂食器?

    如何設(shè)計(jì)個(gè)寵物喂食器?
    發(fā)表于 02-09 07:49

    自制個(gè)寵物喂食器

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

    自動(dòng)喂食器的設(shè)計(jì)原理圖

    自己設(shè)計(jì)的個(gè)自動(dòng)喂食器的設(shè)計(jì),家庭寵物的需要。
    發(fā)表于 12-30 15:55 ?36次下載

    基于涂鴉智能寵物喂食器

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

    制作個(gè)易于使用的自動(dòng)寵物喂食器

    這是個(gè)易于使用的自動(dòng)寵物喂食器,帶有些 3D 打印部件、可調(diào)節(jié)的
    的頭像 發(fā)表于 06-28 17:18 ?5564次閱讀
    <b class='flag-5'>制作</b><b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>易于使用的<b class='flag-5'>自動(dòng)</b><b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>

    基于物聯(lián)網(wǎng)的寵物喂食器

    我們正在構(gòu)建個(gè)簡單、高效且經(jīng)濟(jì)的基于物聯(lián)網(wǎng)的寵物喂食器。使用這款自動(dòng)寵物
    的頭像 發(fā)表于 07-25 17:29 ?3470次閱讀
    基于物聯(lián)網(wǎng)的<b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>

    設(shè)計(jì)個(gè)寵物NFC定時(shí)喂食器

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

    Arduino遙控寵物喂食器

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

    智能自動(dòng)魚/寵物喂食器開源分享

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

    自動(dòng)寵物喂食器開源硬件

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

    Arduino Uno制作個(gè)智能自動(dòng)寵物喂食器(續(xù))

    第4步:添加 RFIDRFID是該系統(tǒng)的核心。當(dāng)你的寵物靠近喂食器時(shí),RFID將讀取標(biāo)簽上的值,并決定是否提供更多的食物。
    的頭像 發(fā)表于 02-24 14:40 ?1972次閱讀
    <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'>個(gè)</b><b class='flag-5'>智能</b>的<b class='flag-5'>自動(dòng)</b><b class='flag-5'>寵物</b><b class='flag-5'>喂食器</b>(續(xù))

    基于WTR096-28SS芯片方案的寵物喂食器實(shí)現(xiàn)智能喂食功能

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

    寵物自動(dòng)喂食器主控芯片DSH3186

    寵物在現(xiàn)代人的生活中占有極大的比重,甚至愿意將寵物當(dāng)做孩子精細(xì)地養(yǎng)活。也正因?yàn)槿绱耍?b class='flag-5'>寵物而衍生出來的產(chǎn)業(yè)鏈涉及方方面面,不但解決了寵物主人的煩惱,也給
    的頭像 發(fā)表于 11-01 16:26 ?401次閱讀