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

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

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

3天內不再提示

淺談基于Apollo2 mcu的智慧農業系統

潤欣科技Fortune ? 2019-07-29 09:28 ? 次閱讀

上海潤欣科技股份有限公司


導語


智慧農業系統是未來農業發展的趨勢所在,它能夠通過傳感器,實時檢測作物的各種生長狀況,和各類環境數據。通過聯網與大數據的比對獲取,并通過智能硬件提供適合作物生長的最佳溫度,濕度,酸堿鹽等。


在在智能農業發展的道路上,一直存在一個難關。那就是關于智能硬件供電問題。數據采集接口由智能硬件提供,面對超大范圍的組網,電纜不可能布置到每一個點上。那么對于智能硬件功耗的要求就非常高。


Ambiq 擁有的亞閥值功率優化技術專利,使得其能耗比性能相當的mcu 低個5至10倍,這個技術重新定義了“低功耗”。正因為這個技術,Apollo2 mcu 也是最適合智慧農業智能硬件的主mcu 。 14位的ADC,6組 I2C接口,2組UART,等豐富的外設接口,能夠保證各類傳感器的需求。


智能硬件低功耗設計及各類驅動接口


1、低功耗設計


Apollo2 mcu 可以直接使用官方移植好的FreeRTOS。系統中通過以下設定,選擇需要保留的FLASH,SRAM大小。同時也能夠選擇各類外設接口的開斷電。


1562305491553038.png



Am_hal_pwrctrl_memory_enable 主要是針對flash 和 SRAM??蛇x大小如下;

AM_HAL_PWRCTRL_MEMEN_CACHE

AM_HAL_PWRCTRL_MEMEN_CACHE_DIS

AM_HAL_PWRCTRL_MEMEN_FLASH512K

AM_HAL_PWRCTRL_MEMEN_FLASH1M

AM_HAL_PWRCTRL_MEMEN_SRAM8K

AM_HAL_PWRCTRL_MEMEN_SRAM16K

AM_HAL_PWRCTRL_MEMEN_SRAM24K

AM_HAL_PWRCTRL_MEMEN_SRAM32K

AM_HAL_PWRCTRL_MEMEN_SRAM64K

AM_HAL_PWRCTRL_MEMEN_SRAM96K

AM_HAL_PWRCTRL_MEMEN_SRAM128K

AM_HAL_PWRCTRL_MEMEN_SRAM160K

AM_HAL_PWRCTRL_MEMEN_SRAM192K

AM_HAL_PWRCTRL_MEMEN_SRAM224K

AM_HAL_PWRCTRL_MEMEN_SRAM256K

AM_HAL_PWRCTRL_MEMEN_ALL (the default, power-up state)

而am_hal_pwrctrl_periph_enable主要是對外設接口的使能,可選范圍:

AM_HAL_PWRCTRL_PWRONSTATUS_IOS_UARTS

AM_HAL_PWRCTRL_PWRONSTATUS_IOM_3_5

AM_HAL_PWRCTRL_PWRONSTATUS_IOM_0_2

AM_HAL_PWRCTRL_PWRONSTATUS_ADC

AM_HAL_PWRCTRL_PWRONSTATUS_PDM

如果客戶沒有連續采集或者傳輸要求,在低功耗模式下,都按最小flash和SRAM保留,接口使用完之后進行斷電關閉。


2、使用spi接口點亮OLED


首先是開啟IOM_0_2的POWER(根據個人選擇那組IO決定)緊接著進行初始化SPI,初始化OLED,執行顯示代碼,關閉OLED,關閉SPI POWER。粗略流程如下:


1562305513538066.png

Apollo2 MCU 的SPI和I2C 是共用IOM接口,所以在配置上面沒有太大的區別。需要修改的是Mode 選擇(AM_HAL_IOM_SPIMODE/ AM_HAL_IOM_I2CMODE),和對應的GPIO口配置。而速率,時鐘極性和相位,讀寫的字符長度都是在config里面進行修改。


1562305537611084.png


3、UART是常用的異步串口通信協議,傳輸數據是以字節形式,一位位串行輸出。


(1)幾個重要的位置


1) 起始位:先發出一個邏輯“0”的信號,表示傳輸字符開始。


2) 數據位:緊接著起始位之后。數據靠時鐘進行定位,數據位的個數可以由用戶決定。


3) 奇偶校驗位:數據位加上這一位后,使得“1”的位數應為偶數(偶校驗)或奇數(奇校驗),以次來校驗數據傳送的正確性。


4)停止位:它是一個字符數據的結束標志??梢允?位、1.5位、2位的高電平。停止位不僅僅是表示傳輸的結束,并且提供設備之間時鐘的校準。


4.png

圖1


各個位的配置,在am_hal_uart_config_t中完成:

5.png


(2)Apollo2 mcu ,UART的初始化程序如下:


uart_init(uint32_t ui32Module)

{

// Make sure the UART RX and TX pins are enabled

am_bsp_pin_enable(COM_UART_TX);

am_bsp_pin_enable(COM_UART_RX);

//

// Power on the selected UART

//

am_hal_uart_pwrctrl_enable(ui32Module);

am_hal_uart_clock_enable(ui32Module);

//

// Disable the UART before configuring it.

//

am_hal_uart_disable(ui32Module);

//

// Configure the UART.

//

am_hal_uart_config(ui32Module, &g_sUartConfig);

//

// Enable the UART FIFO.

//

am_hal_uart_fifo_config(ui32Module, AM_HAL_UART_TX_FIFO_1_2 | AM_HAL_UART_RX_FIFO_1_2);

am_hal_uart_enable(ui32Module);

}

(3) 在使用串口需要注意兩點:


第一:串口數據傳輸,有可能會被各類更高優先級的中斷打斷,所以為了保證數據的完整性,應該設置中斷保護機制。


第二:因為串口輸出需要一定的打印時間,如果時間不足,同樣會導致數據不完整或者丟失??梢哉{用以下方法解決:


Void uart_transmit_delay(uint32_t ui32Module)

{

//

// Wait until busy bit clears to make sure UART fully transmitted last byte

//

while ( am_hal_uart_flags_get(ui32Module) & AM_HAL_UART_FR_BUSY );

}


使用例子如下列代碼:

am_util_stdio_printf("Hello World!\t\n\n");

uart_transmit_delay(ui32Module);


4、ADC轉換


通常是指一個將模擬信號轉變為數字信號。這是一個,把經過與標準量比較處理后的模擬量轉換成以二進制數值表示的一個過程。故任何一個ADC轉換都需要一個參考模擬量作為轉換的標準,比較常見的參考標準為最大的可轉換信號大小。


(1)Apollo mcu 的最大可轉換信號為3.3V,但他的參考電壓分提供四種參考類型:

-內部參考電壓1.5V AM_HAL_ADC_REF_INT_1P5

-內部參考電壓2V AM_HAL_ADC_REF_INT_2P0

-外部參考電壓1.5V AM_HAL_ADC_REF_EXT_1P5

-外部參考電壓2V AM_HAL_ADC_REF_EXT_2P0


這4部分,可以在代碼配置當中選擇:

sADCConfig.ui32Reference = AM_HAL_ADC_REF_INT_2P0;


(2)Apollo2 mcu提供的三種工作模式:


1)模式0,ADC進行料需采集,延時基本為0


2)模式1,ADC在樣本采集之間是關閉的,但是不需要重新校準,延時<50us


3)模式2,ADC在樣本采集之間完全斷電,需要重新校準(初始化ADC),延時<600us


三種模式的主要差異,是轉換間隔,模式一適用于長時間,不間斷的進行轉換,模式二是短間隔,中間從新啟動ADC轉換快速。模式三轉換中間可以完全關閉ADC,但是重新啟動時也需要重新配置校準ADC。


6.png

圖2

(3)代碼配置


考慮到環境數據不會快速改變,所以這里選用模式2 。通過軟件定時器喚醒ADC進行檢測,從而達到最低功耗的效果。配置ADC代碼如下:(參考電壓 內部2.0V 、14位精度、LPOWER2模式、掃描一次)


Void adc_config(void)

{

am_hal_adc_config_t sADCConfig;

//

// Enable the ADC power domain.

//

am_hal_pwrctrl_periph_enable(AM_HAL_PWRCTRL_ADC);

//

// Set up the ADC configuration parameters. These settings are reasonable

// for accurate measurements at a low sample rate.

//

sADCConfig.ui32Clock = AM_HAL_ADC_CLOCK_HFRC;

sADCConfig.ui32TriggerConfig = AM_HAL_ADC_TRIGGER_SOFT;

sADCConfig.ui32Reference = AM_HAL_ADC_REF_INT_2P0;

sADCConfig.ui32ClockMode = AM_HAL_ADC_CK_LOW_POWER;

sADCConfig.ui32PowerMode = AM_HAL_ADC_LPMODE_0;

sADCConfig.ui32Repeat = AM_HAL_ADC_NO_REPEAT;

am_hal_adc_config(&sADCConfig);

am_hal_adc_int_enable(AM_HAL_ADC_INT_CNVCMP);

// Set up an ADC slot

am_hal_adc_slot_config(0, AM_HAL_ADC_SLOT_AVG_1 |

AM_HAL_ADC_SLOT_14BIT |

AM_HAL_ADC_SLOT_CHSEL_SE0 |

AM_HAL_ADC_SLOT_ENABLE);

am_hal_adc_enable();

}

使用LPOWER2 模式的時候,需要注意,當定時器觸發中斷的時候,time_ISR里面需要重新配置ADC,adc_config完成之后,才能進行定時器觸發,執行順序不能顛倒:


1562305610280850.png


(4)電壓十六進制轉換成10進制數值并顯示


由datasheet的資料顯示(圖3),ADC檢測MAX電壓為VDDH,而VDDH為3.3V。所以ADC的檢測范圍應該為 0~3.3V ,超過3.3V只會顯示最大值3.3V。長時間檢測超過標準范圍的電壓值,可能對引腳甚至芯片造成破壞。



1562305643843366.png

圖3


14位精度下,采集次數為1 的轉換代碼可以通過以下實現:


if (ui32Status & AM_HAL_ADC_INT_CNVCMP)

{

g_ui16ADCVDD_code = am_hal_adc_fifo_pop();

//g_ui16ADCVDD_code = AM_HAL_ADC_FIFO_SAMPLE(g_ui16ADCVDD_code);

am_util_stdio_printf("g_ui16ADCVDD_code= 0x%05X\t\n",g_ui16ADCVDD_code);

fVBATT = ((float)g_ui16ADCVDD_code) * 3.3f / 1024.0f / 64.0f ; // 2^16

am_util_stdio_printf("VDD= %.3f\t\n",fVBATT);

}

但如果只是單次檢測,最大值為3.298,并不能達到3.3的最大值。小數點后面的精度,是根據檢測的次數所決定的。(如圖4)選擇為14.6模式,采集次數選擇(圖5),次數越多,小數點精度越高。在使用128次采集的時候要特別注意,得到的累加值是大于FIFO通道容量的,需要進行移位操作。

9.png? ? ??

圖4

10.png


圖5


組網通信與云服務器

1、設備間組網與添加節點

針對于使用場景的不同,大范圍農田可以選擇使用SX1260/ SX1278 LORA進行組網。小范圍類似大棚,可以選用ZigBee或者藍牙mesh。ZigBee和藍牙mesh都有自組網功能,數據交換和節點添加相對簡單。

如果選用的LORA模塊,筆者個人建議使用應答模式的星型網組網(圖6)。每個節點的地址使用Apollo2 mcu 自帶的chip ID作為參照。數據交替通過主節點對單個節點發出心跳指令,子節點喚醒后獲取各類數據并上傳,然后等待應答,如果應答超時,既丟包,重復發送如果仍無法收到,將會發給備用主節點報錯。


同理,如果主節點發送心跳指令沒有數據應答,會進行等待、重發,長時間無應答會將該地址節點踢出循環列表同時給服務器發出報錯。


1562305694534497.png

圖6

LORA通信暫不支持自組網功能。該功能相對簡單,主節點廣播發出添加節點模式,子節點待命等待主節點單個檢索地址。每個檢索完畢的地址,都會退出添加節點模式。當主節點檢索完所有已知節點后,會二次發出新節點廣播。二次收到的新節點就主動循環給主節點發送自己的地址。直到主節點發送應答才結束。


2、設備與服務器通信


TCP(Transmission Control Protocol) 傳輸控制協議。TCP是主機對主機層的傳輸控制協議,提供可靠的連接服務,采用三次握確認建立一個連接。TCP標志位有6種 標示:


SYN(synchronous建立連接)

ACK(acknowledgement 確認)

PSH(push傳送)

FIN(finish結束)

RST(reset重置)

URG(urgent緊急)

Sequence number(順序號碼)

Acknowledge number(確認號碼)。

流程如圖7所示:


第一次握手:客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;


第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;


第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。握手完成后,兩臺主機開始傳輸數據了。


12.png

圖7

主節點,通過轉接口模塊接入互聯網,同時模塊設置好TCP/IP 協議進行傳輸。對于服務端的TCP/IP 協議,筆者使用的是SocketAsyncEventArgs類進行編寫。SocketAsyncEventArgs是.net提供的關于異步socket類。也就是高性能復用IO。對比與傳統socket,使用該類編寫的Server性能和吞吐量都有很大的提升。初始化代碼如下:


13.png


啟動,socket監聽代碼:


14.png

圖9


在使用socket通信時,如果長時間沒有數據交互。服務器是會直接斷連。筆者這里使用雙應答模式。服務器向智能硬件發送心跳包,智能硬件應答并上傳數據。如果中間因為網絡或者各方面原因失去連接。智能硬件會根據定時器設置主動向服務器發送確認連接信號,如果無應答,既斷連。智能硬件將會重新啟動TCP協議。多次連接失敗將會發出鏈接異常警報,提醒人工進行排查。

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

    評論

    相關推薦
    熱點推薦

    明遠智睿SSD2351開發板:儀器儀表與智慧農業的創新利器

    在儀器儀表和智慧農業領域,對設備的精度、穩定性和智能化程度有著較高的要求。明遠智睿的SSD2351開發板以其獨特的優勢,成為這兩個領域的創新利器。 在儀器儀表方面,SSD2351開發板的四核
    發表于 05-09 19:09

    智慧云農平臺全面接入DeepSeek,推動智慧農業加速進入現代農業新時代

    近日,云南省高原特色農業的創新科技平臺—智慧云農平臺全面接入DeepSeek,推動云南省智慧農業加速進入現代農業新時代。
    的頭像 發表于 03-14 13:41 ?552次閱讀
    <b class='flag-5'>智慧</b>云農平臺全面接入DeepSeek,推動<b class='flag-5'>智慧</b><b class='flag-5'>農業</b>加速進入現代<b class='flag-5'>農業</b>新時代

    STM32項目分享:機智云智慧農業系統

    01—項目簡介1.功能詳解基于STM32的機智云智慧農業系統。功能如下:溫濕度采集:使用DHT11溫濕度傳感器采集環境溫濕度土壤濕度
    的頭像 發表于 12-19 18:40 ?1288次閱讀
    STM32項目分享:機智云<b class='flag-5'>智慧</b><b class='flag-5'>農業</b><b class='flag-5'>系統</b>

    明達技術開啟智慧農業新紀元

    在科技日新月異的今天,智慧農業正以前所未有的速度重塑著傳統農業的面貌。作為智慧農業的核心組成部分,網關與云平臺技術的深度融合,不僅精準擊中了
    的頭像 發表于 11-05 16:48 ?427次閱讀

    智慧農業解決方案是什么?有什么作用?

    隨著科技的飛速發展,智慧農業解決方案作為現代農業的重要發展方向,正在逐步改變傳統的農業生產方式。智慧農業
    的頭像 發表于 11-03 20:13 ?551次閱讀

    智慧農業溫室環境監控系統

    科技日新月異的時代,智慧農業作為現代農業發展的重要方向,正以前所未有的速度改變著傳統農業的面貌。其中,智慧
    的頭像 發表于 10-23 16:26 ?496次閱讀

    智慧農業建設實施方案

    隨著科技的飛速發展,智慧農業作為現代農業的重要組成部分,正逐步改變著傳統農業的生產方式和管理模式。智慧
    的頭像 發表于 10-17 17:50 ?562次閱讀

    智慧農業平臺:推動農業現代化的科技力量

    的信息化支持。 智慧農業平臺的定義 智慧農業平臺是一種基于現代信息技術和智能化設備的農業管理系統
    的頭像 發表于 10-15 16:25 ?634次閱讀

    淺談基于物聯網的智能路燈系統-盾華電子智慧路燈解決方案

    淺談基于物聯網的智能路燈系統-盾華電子智慧路燈解決方案
    的頭像 發表于 10-11 10:08 ?834次閱讀
    <b class='flag-5'>淺談</b>基于物聯網的智能路燈<b class='flag-5'>系統</b>-盾華電子<b class='flag-5'>智慧</b>路燈解決方案

    智慧農業IOT云平臺有什么功能

    隨著科技的飛速發展,智慧農業已成為現代農業的重要發展方向。智慧農業IOT云平臺,作為集數據采集、分析、處理、存儲、展示于一體的云端服務平臺,
    的頭像 發表于 09-20 14:44 ?648次閱讀

    智慧農業物聯網網關是什么

    隨著科技的飛速發展,智慧農業的概念正逐步從理論走向實踐,其中物聯網技術扮演了至關重要的角色。智慧農業物聯網網關,作為連接農業生產現場與數據處
    的頭像 發表于 09-20 14:36 ?704次閱讀
    <b class='flag-5'>智慧</b><b class='flag-5'>農業</b>物聯網網關是什么

    STM32項目分享:智能大棚/智慧農業系統

    01—項目簡介1.功能詳解基于STM32的智慧農業系統。功能如下:溫濕度采集:使用DHT11溫濕度傳感器采集環境溫濕度土壤濕度采集:
    的頭像 發表于 08-30 12:15 ?2212次閱讀
    STM32項目分享:智能大棚/<b class='flag-5'>智慧</b><b class='flag-5'>農業</b><b class='flag-5'>系統</b>

    智慧農業監測系統有什么功能

    ?智慧農業監測系統是現代信息技術與傳統農業深度融合的產物,它通過集成物聯網、大數據、云計算、人工智能等先進技術手段,對農田環境進行實時監控和智能管理,實現了從農作物種植到收獲全程的智能
    的頭像 發表于 08-29 14:59 ?743次閱讀

    精準洞察農田生態,智慧農業物聯網環境監測與數據采集系統來襲

    智慧農業物聯網環境監測傳感器數據采集系統是一套集成了先進技術的農業監測解決方案,旨在為農田提供精準、實時、全面的環境數據監測和采集。該系統
    的頭像 發表于 08-05 18:42 ?888次閱讀
    精準洞察農田生態,<b class='flag-5'>智慧</b><b class='flag-5'>農業</b>物聯網環境監測與數據采集<b class='flag-5'>系統</b>來襲

    智慧農業的新時代

    的智能化,提高農業生產效率,保障糧食安全,促進農業可持續發展。?? 2. 邊緣智能網關與智慧農業 邊緣智能網關P1600,是一款集合了數據采
    的頭像 發表于 06-19 09:16 ?540次閱讀
    <b class='flag-5'>智慧</b><b class='flag-5'>農業</b>的新時代
    主站蜘蛛池模板: 自拍偷拍福利 | 亚洲日本一区二区 | 国产黄页 | 天天夜夜爽 | 被啪漫画羞羞漫画 | 婷婷综合五月天 | 天堂bt种子资源地址在线 | 小优视频在线 | 国产精品最新资源网 | 日本68xxxxxxxxx59| 日本久操 | 国产v69 | 天天操天天操天天射 | 亚洲性天堂 | 色综合久久中文字幕网 | 国产aaaaaa| 国产成人啪精品午夜在线播放 | 国产一级簧片 | avtt亚洲一区中文字幕 | 日本人69xxxxxxx69 | 久久精品国产精品亚洲人人 | aaaaa毛片 | 国产午夜剧场 | 美女网站黄页 | 在线天堂中文有限公司 | www.色图| 欧美美女一区二区三区 | 4438x成人网最大色成网站 | 国产片18在线观看 | 亚在线 | 一级视频在线 | 国产成人精品免费视频大全可播放的 | 小雪被老外黑人撑破了视频 | 久青草免费在线视频 | 日韩毛片免费视频一级特黄 | baoyu污污网站入口免费 | 51午夜| 欧美三级大片在线观看 | 欧美色碰碰碰免费观看长视频 | 日本在线一本 | 日韩欧美不卡片 |