国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

基于OpenHarmony的智慧牧場方案:生物運動軌跡跟蹤篇

電子發燒友開源社區 ? 來源:未知 ? 2022-11-25 09:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前文回顧

《智慧牧場之生物姿態檢測篇》

《智慧牧場之生物心率檢測篇》

1. 背景知識

1.1牧場定位的意義

在智慧牧場解決方案中,實時檢測牲畜的活動狀況是非常重要的環節。現在已經不是放牛和牧羊犬的時代了。面臨大范圍牧場上牲畜走失,尋找困難,過度放牧導致草場退化等問題,通過穿戴式的生物跟蹤部件,可以有效解決以上的問題。

當大量牲畜散布在地面上時,牧場管理員往往發現很難跟蹤正在發生的事情。需要一個系統來確定牲畜在任何給定時間的位置和行駛的距離。此外,跟蹤系統也會防止任何類型的盜竊,因為牧場管理員可以使用跟蹤報告來定位被盜牲畜。

1.2室外定位技術比較

目前的室外定位技術,大體上分為如下幾種類別:

信號載體 典型定位方式 定位精度 不足
北斗/GPS衛星民用領域 3個觀測方程式求解位置 10米級 遮擋影響較大
蜂窩移動網絡GSM 基于TC-OFODM信號進行測距定位 100米級 對基站依賴程度較高
5G? 超密集組網下的定位技術/面向5C的TDOA和AOA定位技術、面向5G網絡上行定位和下行定位 100米級 抗干擾有局限性
慣性導航 基于航位推算方法 米級 存在累計漂移誤差
地球磁場? 基于信號場強定位或與其他技術組合應用 米級 地球指紋特征差異小

基于GPS和GSM的定位在全世界被廣泛使用,可以用來確定其所連接生物的精確位置。這種器件成本低、可靠性高,并具有精確跟蹤功能。可以提供有效、實時的物體、生物的位置報告和時間信息。

2. 解決方案概要

該方案采用基于全球移動通信系統(GSM)技術和GPS技術的嵌入式系統。該系統安裝在生物穿戴設備中。接口GSM模塊連接到Hi3861。該系統提供以下功能:a)位置信息,b)使用短信進行實時跟蹤。

3127f17a-6c5d-11ed-8abf-dac502259ad0.jpg

3. 硬件設計

3.1SIM808模塊調制解調器模塊

3150e2c4-6c5d-11ed-8abf-dac502259ad0.png

可以選用GSM、GPRS、GPS三合一功能的SIM808模塊。支持GSM/GPRS Quad-Band網絡,結合GPS技術進行衛星導航。它具有睡眠模式下的超低功耗,并集成了鋰離子電池充電電路,使其具有超長的待機時間,方便使用可充電鋰離子電池的項目。它具有高 GPS 接收靈敏度,具有 22 個跟蹤和 66 個采集接收器通道。模塊通過 UART(編者注:Universal Asynchronous Receiver/Transmitter 通用異步接收器/發送器的英文縮寫) 由 AT 指令控制,支持 3.3V 和 5V 邏輯電平。

GSM調制解調器的工作基于命令,命令始終以“AT開頭”(表示注意),以“<CR>字符結束”,例如撥號命令是ATD<number>;ATD7814629081;這里,撥號命令以分號(;)結束。在Hi3861的幫助下,該AT命令被提供給GSM調制解調器。GSM調制解調器在MAX 232 IC的幫助下與微控制器串行連接。GSM指定的頻率范圍為1850到1990 MHz(移動臺到基站)。

3.2 Hi3861

Hi3861開發板模組大小約2cm*5cm,是一款高度集成的2.4GHz WLAN SoC。

Hi3861芯片集成高性能32bit微處理器、擁有豐富的外設接口,芯片內置SRAM(編者注:Static Random-Access Memory 靜態隨機存取存儲器的英文縮寫)和Flash,并支持在Flash上運行程序。

Hi3861模組有2MB FLASH,352KB RAM。但我們編寫代碼時,要注意對有限資源的合理利用。

Hi3861可以說是麻雀雖小,五臟俱全。Hi3861的外設接口包括(外部主晶振為40M或者24M):

  • 2個SPI(Synchronous Peripheral Interface)

  • 3個UART(Universal Asynchronous Receiver & Transmitter)

  • 2個I2C(The Inter-Integrated Circuit)

  • 6路PWM(Pulse Width Modulation)

  • 15個GPIO(General Purpose Input/Output)

  • 7路ADC(Analog to Digital Converter)

  • 1個I2S接口

  • 1個高速SDIO2.0(Secure Digital Input/Output)接口,最高時鐘可達50MHz;

31deb02c-6c5d-11ed-8abf-dac502259ad0.jpg

Hi3861主控功能框架圖如下:

3202e604-6c5d-11ed-8abf-dac502259ad0.jpg

在該系統中,它用于同步GSM和GPS的操作。GPS連續向微控制器發送位置數據,即車輛位置的緯度和經度,而GSM從微控制器發送和接收數據。GPS調制解調器連續提供許多參數作為輸出,但只有NMEA(編者注:National Marine Electronics Association國家海洋電子協會的英文縮寫)數據被讀取并“顯示在OLED上”。將相同的數據發送給移動用戶,以便可以知道車輛的確切位置。用戶的移動號碼存儲在EEPROM(編者注:Electrically Erasable Programmable read only memory 帶電可擦可編程只讀存儲器 的英文縮寫)中。

4. 軟件設計

軟件編程是用C語言完成的。GPS從衛星接收的數據(坐標)在軟件中定義。解碼NMEA(國家海洋電子協會)協議是開發該軟件的主要目的。軟件程序中應包含用戶的手機號碼,以便從我們在GSM調制解調器中使用的SIM卡接收位置值。NMEA協議由一組ASCII字符集的消息組成。GPS接收數據并以ASCII逗號分隔的消息字符串的形式顯示。$'在每條消息的開頭使用符號。位置(緯度和經度)的格式為ddmm。mmmm(度數分鐘和十進制分鐘)。軟件協議由GGA(編者注:Global Positioning System Fix Data 全球定位系統固定數據)和GLL(編者注:Geographic Position 地理位置-緯度/經度)組成。但在這個系統中,我們只使用GGA。系統流程圖如下所示:

321752e2-6c5d-11ed-8abf-dac502259ad0.png

具體代碼實現:

/***** 獲取電壓值函數 *****/
static float GetVoltage(void)
{
    unsigned int ret;
    unsigned short data;


    ret = AdcRead(WIFI_IOT_ADC_CHANNEL_5, &data, WIFI_IOT_ADC_EQU_MODEL_8, WIFI_IOT_ADC_CUR_BAIS_DEFAULT, 0xff);
    if (ret != WIFI_IOT_SUCCESS)
    {
        printf("ADC Read Fail
");
    }


    return (float)data * 1.8 * 4 / 4096.0;
}


/* input:AT+CGNSINF Command Response
* output:struct GGPS_DATA
*/
static void GPS_CGNSINF_Analyze(char *origin, GGPS_DATA *gpsdata)
{
    int counter = 0;
    char tmp[150] = {0};
    char *lptr = NULL;
    char *localptr = NULL;


    lptr = (char *)strstr(origin, "+CGNSINF");
    if (lptr == NULL)
    {
        return;
    } else {
        lptr += 10;
    }

    while (*lptr != '')
    {
        if (*lptr == ',' && *(lptr + 1) == ',')
        {
            tmp[counter] = *lptr;
            counter++;
            tmp[counter] = '0';
        } else if (*lptr == '
' && *(lptr + 1) == '
' && counter < 148)
        {
            tmp[counter] = '0';
            tmp[counter + 1] = ',';
            tmp[counter + 2] = 0;
            break;
        } else {
            tmp[counter] = *lptr;
        }
        lptr++;
        counter++;


        /* avoid array out of range */
        if (counter >= GNSINF_MSG_MAX_LEN){
            return;
        }


    }
    /* Clear struct data */
    memset(gpsdata, 0, sizeof( GGPS_DATA));


    localptr = (char *)strtok(tmp, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->GNSSrunstatus, localptr, sizeof(gpsdata->GNSSrunstatus));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->Fixstatus, localptr, sizeof(gpsdata->Fixstatus));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->UTCdatetime, localptr, sizeof(gpsdata->UTCdatetime));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->latitude, localptr, sizeof(gpsdata->latitude));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->logitude, localptr, sizeof(gpsdata->logitude));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->altitude, localptr, sizeof(gpsdata->altitude));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->speedOTG, localptr, sizeof(gpsdata->speedOTG));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->course, localptr, sizeof(gpsdata->course));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->fixmode, localptr, sizeof(gpsdata->fixmode));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->Reserved1, localptr, sizeof(gpsdata->Reserved1));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->HDOP, localptr, sizeof(gpsdata->HDOP));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->PDOP, localptr, sizeof(gpsdata->PDOP));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->VDOP, localptr, sizeof(gpsdata->VDOP));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->Reserved2, localptr, sizeof(gpsdata->Reserved2));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->satellitesinview, localptr, sizeof(gpsdata->satellitesinview));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->GNSSsatellitesused, localptr, sizeof(gpsdata->GNSSrunstatus));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->GLONASSsatellitesused, localptr, sizeof(gpsdata->GLONASSsatellitesused));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->Reserved3, localptr, sizeof(gpsdata->Reserved3));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->CN0max, localptr, sizeof(gpsdata->CN0max));


    localptr = (char *)strtok(NULL, ",");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->HPA, localptr, sizeof(gpsdata->HPA));


    localptr = (char *)strtok(NULL, "
");
    if (localptr == NULL)
    {
        return;
    }
    strncpy(gpsdata->VPA, localptr, sizeof(gpsdata->VPA));
}


static void GsmCheckRingAndHanupMessage(void)
{
    if (strstr(g_uart_buff, "RING") != NULL)
    {
        printf("ring.
");
        if (GsmGetConnectSts() == false)
        {
            GsmSetRingSts(true);
        }
    }
    if (strstr(g_uart_buff, "NO CARRIER") != NULL)
    {
        printf("hang up.
");


        GsmSetHungUpSts(true);


        if (GsmGetConnectSts() == true)
        {
            GsmSetConnectSts(false);
        }
    }
}


static uint32_t GsmSendCmd(char *cmd, int len)
{
    if (cmd == NULL || len <= 0)
    {
        return HI_ERR_FAILURE;
    }


    uint32_t ret = HI_ERR_FAILURE;
    static uint32_t count = 0;
    uint8_t *uart_buff_ptr = g_uart_buff;


    ret = hi_uart_write(DEMO_UART_NUM, (hi_u8 *)cmd, len);
    if (ret == HI_ERR_FAILURE)
    {
        return HI_ERR_FAILURE;
    }
    printf(" SendData%d,cmd:%s.
", len, cmd);


    while (g_uartController.isReadBusy)
    {
        count++;
        if (count > UART_WAIT_COUNT_MAX)
        {
            break;
        }


    }


    if (g_uartController.isReadBusy)
    {
        printf("GsmSendCmd hi_uart_read busy return");
        return HI_ERR_FAILURE;
    }
    if (!g_uartController.isReadBusy){
        usleep(100000); /* sleep 100ms */
    }


    g_uartController.isReadBusy = true;
    g_ReceivedDatalen = hi_uart_read(DEMO_UART_NUM, uart_buff_ptr, UART_BUFF_SIZE);


    if (g_ReceivedDatalen > 0)
    {
        printf(" rcvData len:%d,msg:%s.
", g_ReceivedDatalen, g_uart_buff);
        if (strstr(g_uart_buff, "OK") != NULL)
        {
            GsmCheckRingAndHanupMessage();
            memset(g_uart_buff, 0, sizeof(g_uart_buff));
            g_ReceivedDatalen = 0;
            g_uartController.isReadBusy = false;
            return HI_ERR_SUCCESS;
        }
        else
        {
            printf(" received error cmd
");
            GsmCheckRingAndHanupMessage();
            memset(g_uart_buff, 0, sizeof(g_uart_buff));
            g_ReceivedDatalen = 0;
            g_uartController.isReadBusy = false;
            return HI_ERR_FAILURE;
        }
    }
    else
    {
        g_uartController.isReadBusy = false;
        printf(" SendCmd no cmd return!
");
        return HI_ERR_FAILURE;
    }


    return HI_ERR_SUCCESS;
}




uint32_t GpsGetLocation(GGPS_INFO *gpsInfo)
{
    uint32_t ret = HI_ERR_FAILURE;
    static uint32_t count = 0;
    uint8_t *uart_buff_ptr = g_uart_buff;


    ret = hi_uart_write(DEMO_UART_NUM, (hi_u8 *)"AT+CGNSINF
", strlen("AT+CGNSINF
"));
    if (ret == HI_ERR_FAILURE)
    {
        return NULL;
    }


    while (g_uartController.isReadBusy)
    {
        count++;
        if (count > UART_WAIT_COUNT_MAX)
        {
            break;
        }
        usleep(100000); /* sleep 100ms */
    }


    if (g_uartController.isReadBusy)
    {
        printf("GpsGetLocation hi_uart_read busy return");
        return HI_ERR_FAILURE;
    }else{
        usleep(100000); /* sleep 100ms */
    }


    g_uartController.isReadBusy = true;
    g_ReceivedDatalen = hi_uart_read(DEMO_UART_NUM, uart_buff_ptr, UART_BUFF_SIZE);


    if (g_ReceivedDatalen > 0)
    {
        printf(" rcvData len:%d,msg:%s.
", g_ReceivedDatalen, g_uart_buff);


        uint8_t *strLocation = (uint8_t *)strstr(g_uart_buff, "+CGNSINF: 1,1");


        if (strLocation != NULL)
        {
            GGPS_DATA gpsData;
            GPS_CGNSINF_Analyze((char *)g_uart_buff, &gpsData);


            printf("latitude:%s.
", gpsData.latitude);
            printf("logitude:%s.
", gpsData.logitude);


            memcpy_s(gpsInfo->UTCdatetime, sizeof(gpsInfo->UTCdatetime), gpsData.UTCdatetime, sizeof(gpsData.UTCdatetime));
            memcpy_s(gpsInfo->logitude, sizeof(gpsInfo->logitude), gpsData.logitude, sizeof(gpsData.logitude));
            memcpy_s(gpsInfo->latitude, sizeof(gpsInfo->latitude), gpsData.latitude, sizeof(gpsData.latitude));
            memcpy_s(gpsInfo->satellitesinview, sizeof(gpsInfo->satellitesinview), gpsData.satellitesinview, sizeof(gpsData.satellitesinview));


            GsmCheckRingAndHanupMessage();


            memset(g_uart_buff, 0, sizeof(g_uart_buff));
            g_ReceivedDatalen = 0;
            g_uartController.isReadBusy = false;


            return HI_ERR_SUCCESS;
        } else {
            GsmCheckRingAndHanupMessage();
            memset(g_uart_buff, 0, sizeof(g_uart_buff));
            g_ReceivedDatalen = 0;
            g_uartController.isReadBusy = false;
            return HI_ERR_FAILURE;
        }
    } else {
        printf(" SendCmd no cmd return!
");
        g_uartController.isReadBusy = false;


        return HI_ERR_FAILURE;
    }
}


uint32_t GsmCallCellPhone(char *cellPhoneNumeber)
{
    uint32_t ret = HI_ERR_FAILURE;
    char sendCmd[32] = "";
    uint8_t cPhoneNumLength = strlen(cellPhoneNumeber);


    if (cPhoneNumLength < PHONE_NUMB_LEN)
    {
        return HI_ERR_FAILURE;
    }


    /* Send AT+CSQ. */
    strncpy(sendCmd, "AT+CSQ
", strlen("AT+CSQ
"));
    printf(" sendCmd=%s
", sendCmd);
    ret = GsmSendCmd(sendCmd, strlen(sendCmd));
    if (ret == HI_ERR_FAILURE)
    {
        return HI_ERR_FAILURE;
    }
    memset(sendCmd, 0, strlen(sendCmd));


    /* Call cellPhone Number:ATD+cellPhoneNumber. */
    snprintf(sendCmd, sizeof(sendCmd), "ATD%s;
", cellPhoneNumeber);
    printf(" sendCmd=%s
", sendCmd);
    ret = GsmSendCmd(sendCmd, strlen(sendCmd));
    if (ret == HI_ERR_FAILURE)
    {
        return HI_ERR_FAILURE;
    }


    return HI_ERR_SUCCESS;
}

32318676-6c5d-11ed-8abf-dac502259ad0.gif

未完待續……

后期預告《智慧牧場之室內管理系統篇》

更多熱點文章閱讀

  • 玩嗨OpenHarmony:基于OpenHarmony的智能助老服務機器人
  • 玩嗨OpenHarmony:基于OpenHarmony的智慧農業環境監控系統
  • 首個通過OpenHarmony兼容性測評的全場景實驗箱
  • 基于OpenHarmony的智能門禁系統,讓出行更便捷
  • OpenHarmony 3.2 Beta多媒體系列:音視頻播放框架

提示:本文由電子發燒友社區發布,轉載請注明以上來源。如需社區合作及入群交流,請添加微信EEFans0806,或者發郵箱liuyong@huaqiu.com。


原文標題:基于OpenHarmony的智慧牧場方案:生物運動軌跡跟蹤篇

文章出處:【微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。


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

    關注

    33

    文章

    591

    瀏覽量

    34131
  • 開源社區
    +關注

    關注

    1

    文章

    95

    瀏覽量

    798

原文標題:基于OpenHarmony的智慧牧場方案:生物運動軌跡跟蹤篇

文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    #OpenHarmony HDC調試

    OpenHarmony
    視美泰
    發布于 :2026年01月16日 09:46:28

    #OpenHarmony 鏡像燒錄

    OpenHarmony
    視美泰
    發布于 :2026年01月16日 09:42:36

    #OpenHarmony 系統概述

    OpenHarmony
    視美泰
    發布于 :2026年01月16日 09:39:20

    XenP202T系列 | 多人軌跡檢測參考設計

    毫米波傳感器特征多人識別:實時檢測多個人體目標穩定跟蹤:高靈敏人體運動/微動/靜坐的軌跡信息更低功耗:智能功耗管理,低功耗長效運行精準定位:測距精度15cm/測角精度10°小巧
    的頭像 發表于 01-06 13:37 ?178次閱讀
    XenP202T系列 | 多人<b class='flag-5'>軌跡</b>檢測參考設計

    格靈深瞳智慧體育解決方案打造AI運動新體驗

    近期,格靈深瞳智慧體育解決方案在湖南、四川等地落地應用。除了高頻的校園跑步外,方案還支持AI智慧體測室,覆蓋身高體重、肺活量及坐位體前屈、引體向上、立定跳遠等多種原地類和杠類體育科目,
    的頭像 發表于 12-26 14:54 ?497次閱讀

    TDK IIM - 42653:工業應用中的高性能6軸智能運動跟蹤MEMS器件

    TDK IIM - 42653:工業應用中的高性能6軸智能運動跟蹤MEMS器件 引言 在工業應用領域,對于高精度、高可靠性的運動跟蹤傳感器的需求日益增長。TDK的IIM - 42653
    的頭像 發表于 12-25 17:25 ?932次閱讀

    TDK IIM - 42653:高性能工業級6軸運動跟蹤MEMS設備解析

    SmartIndustrial? 運動跟蹤MEMS設備,無疑是工業領域的一顆璀璨明星。它集成了3軸陀螺儀和3軸加速度計,以其小巧的封裝、豐富的功能和出色的性能,為工業應用帶來了新的解決方案。本文將深入解析IIM - 42653的
    的頭像 發表于 12-25 17:25 ?865次閱讀

    IAM-20680HV:高性能汽車6軸運動跟蹤設備解析

    IAM-20680HV:高性能汽車6軸運動跟蹤設備解析 在汽車電子領域,對于精確運動跟蹤的需求日益增長。TDK的IAM-20680HV作為一款專為汽車非安全應用設計的6軸
    的頭像 發表于 12-25 14:15 ?316次閱讀

    【道生物聯TKB-623評估板試用】用一段視頻簡單介紹一下道生物聯TKB-623評估板試用

    領域提供先進、有競爭力的窄帶無線物聯網接入技術和全套系統解決方案。 道生物聯TKB-623評估板大功率 TK8620 模組評估板是為方便測試與評估 TKM-210 大功率模組性能和功能而設計的。可直接
    發表于 11-07 22:59

    24G人在感應雷達和24G目標軌跡跟蹤雷達的區別

    24G人體存在感知雷達模塊和24G人體目標軌跡跟蹤雷達模塊都是人體感知雷達,那么在具體功能上和應用上面有什么差異呢?產品性能上的差異24G人體存在雷達功能定位:區分人體狀態(靜止/微動/運動)并輸出
    的頭像 發表于 08-19 12:01 ?1359次閱讀
    24G人在感應雷達和24G目標<b class='flag-5'>軌跡</b><b class='flag-5'>跟蹤</b>雷達的區別

    HDC.2025 潤開鴻發布基于OpenHarmony智慧中醫AI輔助診療解決方案

    ,江蘇潤和軟件股份有限公司旗下子公司潤開鴻數字科技有限公司(以下簡稱“潤開鴻”)于本屆大會上重磅發布基于OpenHarmony智慧中醫AI輔助診療解決方案,展示了自身基于“OpenHarmo
    的頭像 發表于 06-27 18:50 ?4238次閱讀
    HDC.2025 潤開鴻發布基于<b class='flag-5'>OpenHarmony</b>的<b class='flag-5'>智慧</b>中醫AI輔助診療解決<b class='flag-5'>方案</b>

    Nordic下一代可穿戴設備和邊緣人工智能改進運動表現分析

    入地了解運動表現和發揮改進潛力。 最新的表現跟蹤解決方案借助了無線連接和邊緣處理技術的強大功能,幫助用戶實現這些目標并獲得競爭優勢。 結合數十個數據點,便可以建立個人能力的獨特檔案。各項運動
    發表于 05-12 11:24

    運動場館智慧照明控制系統

    隨著智能化技術的發展,運動場館的照明系統正從傳統的手動控制向智慧化、數字化方向轉型。通過對照明系統進行升級,提升場館運營效率,優化運動員與觀眾的體驗,降低能源消耗。 運動場館
    的頭像 發表于 04-30 14:38 ?816次閱讀

    基于智能穿戴的智慧校園運動健康解決方案NRF52832

    方案概述: 隨著現代社會的發展,青少年學生面臨著越來越多的學業壓力和生活習慣不良的問題,對他們的身體健康和運動需求提出了更高的要求。物聯網走進校園成為必然趨勢,同時基于智能穿戴的智慧校園運動
    發表于 04-09 15:37

    船舶焊接自動化升級:激光焊縫跟蹤傳感器解決方案

    船舶的制造對焊接質量與效率的要求極高,傳統焊接依賴人工調整或固定程序化機器人,難以應對工件裝夾誤差、裝配偏差及復雜焊縫軌跡等難題,創想智控激光焊縫跟蹤傳感器憑借高精度實時焊縫跟蹤技術,給船舶制造業
    的頭像 發表于 03-10 15:05 ?831次閱讀
    船舶焊接自動化升級:激光焊縫<b class='flag-5'>跟蹤</b>傳感器解決<b class='flag-5'>方案</b>