在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

用安信可Ai-M61-32S開發(fā)板監(jiān)測(cè)水位?

AIoT行業(yè)洞察 ? 來(lái)源:AIoT行業(yè)洞察 ? 作者:AIoT行業(yè)洞察 ? 2025-05-17 09:48 ? 次閱讀

水位檢測(cè)在水資源管理、城市防洪、農(nóng)業(yè)灌溉、家用電器和工業(yè)生產(chǎn)等多領(lǐng)域發(fā)揮積極建設(shè)作用。利用水位傳感器,可以實(shí)現(xiàn)水資源的智能管理,提高生產(chǎn)效率。

本文介紹了安信可 Ai-M61-32S 開發(fā)板結(jié)合水位傳感器實(shí)現(xiàn)水位監(jiān)測(cè)計(jì)的項(xiàng)目設(shè)計(jì)。

項(xiàng)目方案

通過(guò)讀取 IO 接口模擬值,進(jìn)行電壓轉(zhuǎn)換,獲取檢測(cè)到的電壓值,進(jìn)一步通過(guò)電壓-水位校準(zhǔn),實(shí)現(xiàn)水位高度的串口打印和串口繪圖,實(shí)時(shí)水位監(jiān)測(cè)功能。

電壓轉(zhuǎn)換

根據(jù)歐姆定律,V = I / R,電壓和電阻成正比;

因此通過(guò)獲取 3.3V 和 GND 對(duì)應(yīng)的模擬數(shù)值(實(shí)測(cè)為 3199 和 21),

即可得到實(shí)際電壓的轉(zhuǎn)換公式 Valtage = val * (3.3 / (3199-21)) .

代碼

#include

void setup() {

pinMode(19, INPUT);

Serial.begin(115200);

}

void loop() {

int val = analogRead(19); // analog value reading

float vlt = val * (3.3 / (3199-21)); // real voltage conversion

Serial.println(vlt);

delay(200);

}

按住 IO2 鍵的同時(shí),短按 EN 鍵,進(jìn)入下載模式,配置端口號(hào)后上傳工程,復(fù)位運(yùn)行程序。

效果

wKgZPGgm98iAJ29LAAB41r2xfrE49.jpeg

水位傳感器

水位傳感器(Water Sensor)可以檢測(cè)水位高度(檢測(cè)高度:0 - 40 mm),亦可用作雨滴傳感器,用于各種天氣狀況的監(jiān)測(cè),檢測(cè)是否下雨及雨量的大小,廣泛應(yīng)用于汽車自動(dòng)刮水系統(tǒng)、智能燈光系統(tǒng)、洗衣機(jī)和智能天窗系統(tǒng)等。

模塊簡(jiǎn)介

當(dāng)模塊上電,電源指示 LED 點(diǎn)亮;

工作電壓:DC 3.3V - 5V ;

輸出類型:模擬信號(hào)

wKgZO2gm98mACEI7AABfS3t-yzI93.jpeg

傳感器具有 10 條裸露的銅線,其中 5 條是電源銅線,另外 5 條是感測(cè)銅線。

走線隔行平行排列,每?jī)蓷l電源銅線間有一條感測(cè)銅線。

模塊原理圖

wKgZPGgm98mAE9HaAAB1ycznIPM85.jpeg

參考:水位檢測(cè)報(bào)警 - Telesk

引腳定義

S(信號(hào))為模擬輸出;

+(VCC)為傳感器供電;

–(GND)為接地。

wKgZO2gm98mAHhbZAABha0VA6OE73.jpeg

參考:Arduino Uno 水位傳感器

運(yùn)行原理

當(dāng)平行銅線之間有水時(shí),水浸沒(méi)的高度不同,電流不同。銅線間的電阻根據(jù)水位的變化而變化。

電阻與水的高度成反比(傳感器浸水越深,導(dǎo)電性越好,電阻越小,電流越大)。

wKgZPGgm98-Af88DAAOI4qceSEQ746.gif

參考:水位傳感器如何工作并與Arduino接口

因此根據(jù) ADC 測(cè)量傳感器輸出的電壓,便可以確定水位。

硬件連接

S -> IO19

+ -> 3V3

- -> GND

wKgZO2gm99CAUci2AAE-nBfOQZg63.jpeg

硬件連接完成后,打開串口,此時(shí)輸出的電壓值應(yīng)為 0 。

水位校準(zhǔn)

由于各地的水質(zhì)差異,導(dǎo)電性能不同,因此需要根據(jù)實(shí)際情況進(jìn)行校準(zhǔn)。

多次校準(zhǔn),取平均值;

每次校正前,需將 PCB 表面的平行銅線擦干,待測(cè)得電壓為 0 時(shí)再置入水中,記錄水位值和電壓值。

校準(zhǔn)數(shù)據(jù)采集

水位 10 毫米,相應(yīng)的串口輸出電壓為 1.25 伏特

wKgZPGgm99CAILrTAACZvBXFSQI10.jpeg

增加水位高度,采集多組電壓-水位數(shù)據(jù)。

假設(shè) ADC 讀取電壓(V)與水位高度(mm)為線性相關(guān)關(guān)系,對(duì)上述數(shù)據(jù)進(jìn)行擬合。使用 Excel 軟件進(jìn)行擬合,獲得擬合表達(dá)式 y = 41.774 x - 38.686。

wKgZO2gm99GAKVpLAACqnQ0ixIE11.jpeg

工程代碼

在代碼中添加相應(yīng)的水位高度定義

#include void setup() { pinMode(19, INPUT);

Serial.begin(115200); } void loop() { int val = analogRead(19); // analog sensor value

float vlt = val * (3.3 / (3199-21)); // real voltage conversion float wl = 41.774 * vlt - 38.686; // water level (mm)

Serial.print(val);

Serial.print(","); Serial.print(vlt); Serial.print(","); Serial.println(wl); delay(200);

}

保存代碼,構(gòu)建工程,上傳固件,復(fù)位后運(yùn)行程序。

打開串口助手,連接目標(biāo)串口對(duì)應(yīng)的設(shè)備端口號(hào),打開串口,獲取實(shí)時(shí) IO 模擬值、電壓值(伏特)和水位值(毫米)。

wKgZPGgm99GAAN5HAAAyz9EUv1A06.jpeg

效果演示

wKgZO2gm99KADOHAACkTkuPc5FQ197.gif

對(duì)應(yīng)的水位演化曲線

wKgZPGgm99OAKX3hAAStBAtPPmc538.gif

水位的數(shù)碼管顯示

在前面關(guān)于 ADC 讀取電壓并結(jié)合水位傳感器實(shí)現(xiàn)電壓-水位高度轉(zhuǎn)換的基礎(chǔ)上,增加 4 位共陽(yáng) 數(shù)碼管顯示 水位高度的功能。

硬件連接

這里采用 2 個(gè) 74HC595 驅(qū)動(dòng)的 4 位共陽(yáng)數(shù)碼管,支持 3.3V 至 5V 的寬電壓輸入,僅需 3 個(gè)信號(hào)引腳即可驅(qū)動(dòng)。

水位傳感器接線方式

Water-sensor_S -> IO19

Water-sensor_+ -> 3V3

Water-sensor_- -> GND

數(shù)碼管接線方式

4Bit-segment_SCLK -> IO23

4Bit-segment_RCLK -> IO24

4Bit-segment_DIO -> IO11

wKgZO2gm99SARXJ9AAEZJtNHpng86.jpeg

工程代碼

#include

const int sensorPin = 19; // water-level sensor pin

// 74HC595 引腳設(shè)置

const int latchPin = 24; // RCLK

const int clockPin = 23; // SCLK

const int dataPin = 11; // DIO

unsigned char num[]={0xC0, //"0"

0xF9, //"1"

0xA4, //"2"

0xB0, //"3"

0x99, //"4"

0x92, //"5"

0x82, //"6"

0xF8, //"7"

0x80, //"8"

0x90 //"9"

};

void setup()

{

pinMode(latchPin,OUTPUT);

pinMode(clockPin,OUTPUT);

pinMode(dataPin,OUTPUT);

pinMode(sensorPin, INPUT);

// uart setting

Serial.begin(115200);

}

/* ------------ loop for serial print and segment display -------------- */

void loop() {

int count = 0;

int val = analogRead(sensorPin); // analog sensor value

float vlt = val * (3.3 / (3199-21)); // real voltage conversion

float wl = 41.774 * vlt - 38.686; // water level (mm)

//Serial.print("Analog Value: ");

Serial.print(val); // in order to serial plot

Serial.print(", ");

//Serial.print("Voltage: ");

Serial.print(vlt);

//Serial.print("V");

Serial.print(", ");

//Serial.print("Water Level: ");

Serial.println(wl);

//Serial.println("mm");

Serial.println((String)"Analog Value: " + val + ", Valtage: " + vlt + "V, Water Level: " + wl + "mm"); // serial print string

while (count < 25) // loop 25 times for delay 500ms (20ms every display)

{

if (wl < 0){

disp(0);

}else{

disp(wl); // display water level

}

count++;

}

}

/* ------------ segment display number (dynamics scanning) -------------- */

void disp(float n)

{

int t = 5;

int yi = ((int)(n*10))%10;

int ge = (int)n%10;

int shi = ((int)n/10)%10;

int bai = ((int)n/100)%10;

if(bai>0){

shiftOut(dataPin,clockPin,MSBFIRST,num[bai]);

}else{

shiftOut(dataPin,clockPin,MSBFIRST,0xFF);

}

shiftOut(dataPin,clockPin,MSBFIRST,0b00001000);

digitalWrite(latchPin, HIGH);

delay(t);

digitalWrite(latchPin,LOW);

if(shi>0){

shiftOut(dataPin,clockPin,MSBFIRST,num[shi]);

}else{

if(bai>0){

shiftOut(dataPin,clockPin,MSBFIRST,num[0]);

}else{

shiftOut(dataPin,clockPin,MSBFIRST,0xFF);

}

}

shiftOut(dataPin,clockPin,MSBFIRST,0b00000100);

digitalWrite(latchPin, HIGH);

delay(t);

digitalWrite(latchPin,LOW);

shiftOut(dataPin,clockPin,MSBFIRST,num[ge]&0x7F);//與運(yùn)算加入小數(shù)點(diǎn)

shiftOut(dataPin,clockPin,MSBFIRST,0b00000010);

digitalWrite(latchPin, HIGH);

delay(t);

digitalWrite(latchPin,LOW);

shiftOut(dataPin,clockPin,MSBFIRST,num[yi]);

shiftOut(dataPin,clockPin,MSBFIRST,0b00000001);

digitalWrite(latchPin, HIGH);

delay(t);

digitalWrite(latchPin,LOW);

}

/* ------------ shiftOut -------------- */

void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)

{

uint8_t i;

for (i = 0; i < 8; i++) {

if (bitOrder == LSBFIRST)

digitalWrite(dataPin, !!(val & (1 << i)));

else

digitalWrite(dataPin, !!(val & (1 << (7 - i))));

digitalWrite(clockPin, HIGH);

digitalWrite(clockPin, LOW);

}

}

●注意 shiftOut 函數(shù)需要定義;

●由于每次采樣數(shù)值均存在較大波動(dòng),為了避免數(shù)碼管動(dòng)態(tài)刷新過(guò)于頻繁,加入循環(huán)延長(zhǎng)數(shù)據(jù)刷新時(shí)間;

●或者多次采樣取平均值,進(jìn)而減小水位數(shù)值的波動(dòng),使數(shù)碼管的顯示更穩(wěn)定。

效果顯示

數(shù)碼管顯示水位

wKgZPGgm99SAFTxfAACxvLPAXKQ09.jpeg

動(dòng)態(tài)

wKgZO2gm99WAPqx9ABIEbjMJzuM593.gif

串口輸出電壓和水位值

wKgZPGgm99aAeMOHAAFJHRsydIQ953.gif

動(dòng)態(tài)水位的演化曲線

wKgZO2gm99aAdMsCAAF0jmq11v0944.gif

靜態(tài)水位的演化曲線

wKgZPGgm99eAWVDiAAEOh5L7SB8756.gif

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

    關(guān)注

    2561

    文章

    52366

    瀏覽量

    762687
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5460

    瀏覽量

    101504
  • 安信可
    +關(guān)注

    關(guān)注

    0

    文章

    181

    瀏覽量

    4335
收藏 人收藏

    評(píng)論

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

    開源硬件:小安派-DSL 屏幕驅(qū)動(dòng)開發(fā)板

    概述 小安派-DSL(AiPi-DSL) 是開源團(tuán)隊(duì)專門為Ai-M61-32S設(shè)計(jì)的一款屏幕驅(qū)動(dòng)開發(fā)板,支持2.8/3.5寸等30Pi
    的頭像 發(fā)表于 07-10 10:47 ?928次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>開源硬件:小安派-DSL 屏幕驅(qū)動(dòng)<b class='flag-5'>開發(fā)板</b>

    Ai-M61-32S(點(diǎn)燈)

    Ai-M61-32S(點(diǎn)燈) 博主環(huán)境:win10 vscode 設(shè)備:usb數(shù)據(jù)線+Ai-M61-32S 工廠配置 首先vscode打開文件夾AiPi-Open-Kits,就會(huì)下圖,該文
    發(fā)表于 11-21 09:11

    開源工程——小安派-Eyes-S1/S2多功能開發(fā)板

    前言 AiPi-Eyes-S1 是開源團(tuán)隊(duì)專門為Ai-M61-32S設(shè)計(jì)的一款開發(fā)板,支持
    的頭像 發(fā)表于 06-20 09:51 ?893次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>開源工程——小安派-Eyes-<b class='flag-5'>S</b>1/<b class='flag-5'>S</b>2多功能<b class='flag-5'>開發(fā)板</b>

    推出2款小安派開源硬件:Cam-U和Cam-D!

    (AiPi-Cam-U) 是開源團(tuán)隊(duì)專門為Ai-M61-32S設(shè)計(jì)的一款開發(fā)板,支持WiFi6、BLE5.3。所搭載的
    的頭像 發(fā)表于 07-03 13:54 ?906次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>推出2款小安派開源硬件:Cam-U和Cam-D!

    玩透開源硬件!科技小安派2款音頻開發(fā)板全新上線

    (AiPi-Voice)是團(tuán)隊(duì)專門為Ai-M61-32S設(shè)計(jì)的音頻驅(qū)動(dòng)開發(fā)板,搭配BL618芯片,其外置ES8388音頻編碼解碼器,能
    的頭像 發(fā)表于 07-17 17:39 ?927次閱讀
    玩透開源硬件!<b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>科技小安派2款音頻<b class='flag-5'>開發(fā)板</b>全新上線

    開源硬件——小安派-Eyes-DU開發(fā)板

    科技又來(lái)一款小安派開源硬件——小安派-Eyes-DU開發(fā)板,來(lái)看看參數(shù)~ 01概述 小安派-Eyes-DU
    的頭像 發(fā)表于 08-07 14:52 ?973次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>開源硬件——小安派-Eyes-DU<b class='flag-5'>開發(fā)板</b>

    Ai-M61-32S開發(fā)環(huán)境搭建

    Ai-M61-32S開發(fā)環(huán)境搭建
    的頭像 發(fā)表于 11-10 12:30 ?1195次閱讀
    <b class='flag-5'>Ai-M61-32S</b><b class='flag-5'>開發(fā)</b>環(huán)境搭建

    Ai-M61-32S開發(fā)板能玩出多少拓展板?

    i2c屏幕、WS2812RGB燈珠、DS1302時(shí)鐘、蜂鳴器、繼電器、紅外接收發(fā)送管、DHT11溫濕度傳感器、矩陣鍵盤、光敏電阻......當(dāng)然,M61不僅可以用來(lái)學(xué)習(xí),還可以當(dāng)
    的頭像 發(fā)表于 11-13 14:54 ?766次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-M61-32S</b><b class='flag-5'>開發(fā)板</b>能玩出多少拓展板?

    晚上再也不摸黑 ,Ai-M61-32S&amp;Rd-03制作一盞自動(dòng)感應(yīng)小夜燈

    Ai-M61-32S 開發(fā)板,非常開心,收到了人生中第一塊板子。也感謝社區(qū)中各種經(jīng)驗(yàn)貼,對(duì)開發(fā)板
    的頭像 發(fā)表于 01-02 10:58 ?786次閱讀
    晚上再也不摸黑 ,<b class='flag-5'>用</b><b class='flag-5'>Ai-M61-32S</b>&amp;Rd-03制作一盞自動(dòng)感應(yīng)小夜燈

    DIY案例:Ai-M61-32S做一個(gè)多功能書桌燈

    這個(gè)書桌燈可以通過(guò)Ai-M61-32S聯(lián)網(wǎng)實(shí)時(shí)顯示時(shí)間,通過(guò)dht11溫濕度模塊顯示溫濕度,同時(shí)具備抽拉式手機(jī)支架,可以將手機(jī)放在上面,同時(shí)可以通過(guò)手機(jī)遙控開燈,當(dāng)開燈時(shí),會(huì)控制舵機(jī)將燈升起來(lái)。
    的頭像 發(fā)表于 01-25 15:05 ?984次閱讀
    DIY案例:<b class='flag-5'>用</b><b class='flag-5'>Ai-M61-32S</b>做一個(gè)多功能書桌燈

    Ai-M61/Ai-M62系列連接AWS亞馬遜云

    本文介紹Ai-M61/Ai-M62系列模組/開發(fā)板連接亞馬遜云方法。 Ai-M61 系列模組(下稱模組)是由深圳市
    的頭像 發(fā)表于 02-04 15:51 ?1149次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-M61</b>/<b class='flag-5'>Ai-M</b>62系列連接AWS亞馬遜云

    星閃開發(fā)板or模組燒錄指導(dǎo)

    Ai-BS21-32S_Kit是由科技開發(fā)的藍(lán)牙星閃開發(fā)板。該模塊核心處理器芯片Hi282
    的頭像 發(fā)表于 05-06 17:31 ?1362次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b>星閃<b class='flag-5'>開發(fā)板</b>or模組燒錄指導(dǎo)

    不到10塊錢,Ai-M61-32S如何自制一個(gè)開機(jī)棒?

    ?如何自制一個(gè)開機(jī)棒? Ai-M61-32S開機(jī)棒是一個(gè)僅使用Ai-M61-32S的開機(jī)棒,無(wú)需額外的硬件,刷入程序,接上電源,最后結(jié)合一些簡(jiǎn)單的配置即可使用。該項(xiàng)目標(biāo)為最少的硬件,最少的配置去實(shí)現(xiàn)遠(yuǎn)程開機(jī)功能。 Wake-o
    的頭像 發(fā)表于 08-27 16:17 ?612次閱讀
    不到10塊錢,<b class='flag-5'>用</b><b class='flag-5'>Ai-M61-32S</b>如何自制一個(gè)開機(jī)棒?

    外設(shè)移植 Ai-WB2-32S開發(fā)板+TM1637 NTP時(shí)鐘

    以下作品由社區(qū)用戶 King6688制作 產(chǎn)品說(shuō)明 Ai-WB2-32S 是由深圳市
    的頭像 發(fā)表于 09-24 14:29 ?600次閱讀
    外設(shè)移植 <b class='flag-5'>安</b><b class='flag-5'>信</b><b class='flag-5'>可</b><b class='flag-5'>Ai-WB2-32S</b><b class='flag-5'>開發(fā)板</b>+TM1637 NTP時(shí)鐘

    能和Ai-M61模組對(duì)話了?手搓一個(gè)ChatGPT 語(yǔ)音助手

    也爭(zhēng)先恐后, 的英文名是Ai-Thinker, 我們也一直在思考 人工智能+
    的頭像 發(fā)表于 03-12 11:57 ?327次閱讀
    能和<b class='flag-5'>Ai-M61</b>模組對(duì)話了?手搓一個(gè)ChatGPT 語(yǔ)音助手
    主站蜘蛛池模板: 被cao到合不拢腿腐男男 | 免费看特级淫片日本 | 美女黄页网站免费进入 | 四虎影永久地址www 四虎影永久在线观看精品 四虎影永久在线观看网址 四虎影院.com | 国产视频黄 | 天堂bt种子资源+在线 | 天堂网在线视频 | 特级全毛片 | 最新天堂网 | 成人午夜啪啪免费网站 | 亚洲欧美日本综合 | 久操伊人网 | 天堂bt | 日日夜夜天天干 | 扒开末成年粉嫩的小缝强文 | 国产理论在线观看 | 有没有免费的视频在线观看 | 四虎影院永久 | 色多多福利 | 夜夜爱夜夜爽夜夜做夜夜欢 | 波多野结衣在线网址 | 色天天综合网色鬼综合 | 啪啪免费视频网站 | 亚洲 欧美 91 | 狠狠干b| 午夜老司机福利 | 成人在线免费电影 | 免费观看成人毛片 | 天天操天天射天天 | 男人边吃奶边爱边做视频日韩 | 91高清在线成人免费观看 | 亚洲午夜日韩高清一区 | 黄色xxxx | 美女露出扒开尿口让男人桶 | 日本免费网站观看 | 天天做天天爱天天干 | 色婷婷色99国产综合精品 | 一区二区三区中文 | 国产大片免费观看中文字幕 | 成人在线播放av | 在线观看黄色网 |