0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

自制鴻蒙Neptune開發(fā)板實時更新溫濕度到手機

OpenHarmony技術(shù)社區(qū) ? 來源:鴻蒙技術(shù)社區(qū) ? 作者:董昱 ? 2021-09-28 09:26 ? 次閱讀

好久不見!最近在研究 OpenHarmony,經(jīng)過一番折騰,終于打通了南向和北向開發(fā)。

如下:

自己做了一個鴻蒙開發(fā)板

搞定了 HT30 溫濕度計的驅(qū)動

通過 UDP 廣播數(shù)據(jù)

讓我們一起看看效果吧!

自制的 Neptune 開發(fā)板實時更新溫濕度到手機

這個是我自己做的鴻蒙開發(fā)板,里面的核心是 Neptune Wi-Fi 藍牙模塊,通過 IIC 通信連接了一塊 0.96 寸的 OLED 顯示屏以及一個 HT30 溫濕度傳感器。另外,這塊開發(fā)板還包括 3 顆 LED 燈,以及相關(guān)的串口通信模塊等。

看看這塊 OLED 顯示屏下面寫的什么?

嘻嘻是的!Of course,I Still Love You!致敬一下 StarShip!當然,還有 Powered By OpenHarmony!這個必須有!

接下來,給大家介紹一下這個功能的整個實現(xiàn)過程。

設計開發(fā)板

開發(fā)板的設計參考了瑞和官方 Neptune 開發(fā)板的原理圖。電源模塊和串口通信模塊基本沒有什么改動。

原理圖貢獻給大家:

62b2e4d6-1fc2-11ec-82a8-dac502259ad0.png

這里的溫度傳感器模塊用的是 HT30。然后,就是打樣板了:

62fa9c0e-1fc2-11ec-82a8-dac502259ad0.png

真的很不容易,被我干翻的板子已經(jīng)堆成堆了!唉,只能怪自己腦子進水設計失誤,加上焊接技術(shù)有點弱。

設計應用程序

①關(guān)于 HT30 的驅(qū)動程序

由于官方提供的例程是 AHT20 的溫度傳感器的驅(qū)動。所以這里還需要針對 HT30 的數(shù)據(jù)手冊對驅(qū)動程序做出一些修改。

看了一下數(shù)據(jù)手冊。除了 HT30 的 I2C 的地址和 AHT20 不同,溫濕度的數(shù)據(jù)讀取模式也更加復雜,數(shù)據(jù)的位數(shù)也不同。

因此,設計 HT30 的 I2C 的通信時需要注意一下幾個方面:

溫度數(shù)據(jù)是由 16bit 的數(shù)據(jù)位和 8bit 的 CRC 位組成。濕度數(shù)據(jù)也是一樣的。相比之下,AHT20 的溫濕度數(shù)據(jù)都是 20bit,而且沒有 CRC 校驗。

HT30 可以開啟 clock stretching 模式。這個模式開啟與否和重復率的設置這個會影響到轉(zhuǎn)換時間、精度和功耗。

根據(jù)這些差異,我自己對 AHT20 的驅(qū)動做出了一些修改,形成了 HT30 的驅(qū)動。

首先,設置一下 HT30 的地址:

#define HT30_DEVICE_ADDR 0x44#define HT30_READ_ADDR ((HT30_DEVICE_ADDR《《1)|0x1)#define HT30_WRITE_ADDR ((HT30_DEVICE_ADDR《《1)|0x0)

然后,設置 MSB 和 LSB。

#define HT30_CMD_MSB 0x24 // 關(guān)閉Clock stretching#define HT30_CMD_LSB 0x16 // 低重復率

這里用的是低重復率和關(guān)閉 Clock stretching,這是為了測試的時候讓代碼更加的簡單。童鞋們需要根據(jù)自己的實際使用情況做出修改。

最后,設計開始測量和接受測量結(jié)果的代碼:

// 開始測量uint32_t HT30_StartMeasure(void)

{

uint8_t clibrateCmd[] = {HT30_CMD_MSB, HT30_CMD_LSB}; 設置MSB和LSB

return HT30_Write(clibrateCmd, sizeof(clibrateCmd));

}

// 接收測量結(jié)果,拼接轉(zhuǎn)換為標準值uint32_t HT30_GetMeasureResult(float* temp, float* humi)

{

uint32_t retval = 0, i = 0;

if (temp == NULL || humi == NULL) {

return WIFI_IOT_FAILURE;

}

// 獲得的返回數(shù)據(jù)

uint8_t buffer[HT30_STATUS_RESPONSE_MAX];

memset(&buffer, 0x0, sizeof(buffer));

for (i = 0; i 《 HT30_MAX_RETRY; i++) {

osDelay(HT30_MEASURE_TIME);

retval = HT30_Read(buffer, sizeof(buffer)); // recv status command result

if (retval == WIFI_IOT_SUCCESS) {

break;

}

printf(“HT30 device busy, retry %d/%d!

”, i, HT30_MAX_RETRY);

}

//

if (i 》= HT30_MAX_RETRY) {

printf(“HT30 device always busy!

”);

return WIFI_IOT_FAILURE;

}

// 獲得溫度數(shù)據(jù)

uint32_t tempRaw = buffer[0];

tempRaw = (tempRaw 《《 8) | buffer[1];

*temp = tempRaw / (float)HT30_RESOLUTION * 175 - 45;

// 獲得濕度數(shù)據(jù)

uint32_t humiRaw = buffer[3];

humiRaw = (humiRaw 《《 8) | buffer[4];

*humi = humiRaw / (float)HT30_RESOLUTION * 100;

printf(“humi = %04X, %f, temp= %04X, %f

”, humiRaw, *humi, tempRaw, *temp);

return WIFI_IOT_SUCCESS;

}

這里的溫度和濕度的轉(zhuǎn)化公式為:

這樣驅(qū)動程序就設計好了。

②關(guān)于 OLED 的驅(qū)動

這里用的是 0.92 寸的 OLED 屏幕,這塊屏幕在 Hi3861 的代碼中是用現(xiàn)成的驅(qū)動程序的。所以就不需要自己設計了。

分辨率為 128*64。在官方的驅(qū)動程序中,這塊 OLED 有兩種顯示模式:8*16 點陣和 6*8 的點陣。

③選用 TCP 還是 UDP 連接

Neptune 是一款 WiFi 藍牙模塊,這里就通過 WiFi 和我們的手機建立連接。連接的方式有兩種,分別是 TCP 和 UDP。

由于我們的數(shù)據(jù)并沒有敏感數(shù)據(jù),而且丟失其實也不會造成太大影響,因此這里選用了更加簡單的 UDP。

UDP 實際上是可以進行廣播的,如果有多個設備需要接受溫濕度數(shù)據(jù)的話其實不需要單獨的建立連接,所以更加適合這個場景。

最后,給大家看下最終的業(yè)務代碼:

#include “ht30.h”#include 《stdio.h》#include 《unistd.h》#include 《string.h》#include “ohos_init.h”#include “cmsis_os2.h”#include “wifiiot_gpio.h”#include “wifiiot_gpio_ex.h”#include “wifiiot_i2c.h”#include “wifiiot_gpio_w800.h”#include “oled_ssd1306.h”#include “net_params.h”#include “wifi_connecter.h”#include “net_common.h”#define LED_TASK_STACK_SIZE 512#define LED_TASK_PRIO 25enum LedState {

LED_ON = 0,

LED_OFF,

LED_SPARK,

};

enum LedState g_ledState = LED_SPARK;

static void* GpioTask(const char* arg)

{

(void)arg;

while (1) {

switch (g_ledState) {

case LED_ON:

printf(“ LED_ON!

”);

GpioSetOutputVal(WIFI_IOT_GPIO_PB_00, WIFI_IOT_GPIO_VALUE0);

osDelay(500);

break;

case LED_OFF:

printf(“ LED_OFF!

”);

GpioSetOutputVal(WIFI_IOT_GPIO_PB_00, WIFI_IOT_GPIO_VALUE1);

osDelay(500);

break;

case LED_SPARK:

printf(“ LED_SPARK!

”);

GpioSetOutputVal(WIFI_IOT_GPIO_PB_00, WIFI_IOT_GPIO_VALUE0);

osDelay(500);

printf(“ LED_SPARK!2

”);

GpioSetOutputVal(WIFI_IOT_GPIO_PB_00, WIFI_IOT_GPIO_VALUE1);

osDelay(500);

break;

default:

osDelay(500);

break;

}

}

return NULL;

}

static void GpioIsr(char* arg)

{

(void)arg;

enum LedState nextState = LED_SPARK;

printf(“ GpioIsr entry

”);

GpioSetIsrMask(WIFI_IOT_GPIO_PB_07, 0);

switch (g_ledState) {

case LED_ON:

nextState = LED_OFF;

break;

case LED_OFF:

nextState = LED_ON;

break;

case LED_SPARK:

nextState = LED_OFF;

break;

default:

break;

}

g_ledState = nextState;

}

void HT30TestTask(void* arg)

{

(void) arg;

int times = 0;

uint32_t retval = 0;

WifiDeviceConfig config = {0};

// 準備AP的配置參數(shù), 連接WiFi

strcpy(config.ssid, PARAM_HOTSPOT_SSID);

strcpy(config.preSharedKey, PARAM_HOTSPOT_PSK);

config.securityType = PARAM_HOTSPOT_TYPE;

osDelay(10);

int netId = ConnectToHotspot(&config);

// 建立UDP連接,這里充當了UDP的客戶端

int sockfd = socket(AF_INET, SOCK_DGRAM, 0); // UDP socket

struct sockaddr_in toAddr = {0};

toAddr.sin_family = AF_INET;

toAddr.sin_port = htons(PARAM_SERVER_PORT); // 端口號,從主機字節(jié)序轉(zhuǎn)為網(wǎng)絡字節(jié)序

if (inet_pton(AF_INET, PARAM_SERVER_ADDR, &toAddr.sin_addr) 《= 0) { // 將主機IP地址從“點分十進制”字符串 轉(zhuǎn)化為 標準格式(32位整數(shù))

printf(“inet_pton failed!

”);

goto do_cleanup;

}

// I2C和OLED的初始化。

if (I2cInit(WIFI_IOT_I2C_IDX_0, 200*1000)) {

printf(“HT30 test i2c init failed

”);

}

OledInit();

OledFillScreen(0x00);

OledShowString(0, 0, “** HarmonyOS! **”, 1);

osDelay(400);

OledShowString(0, 1, “** HarmonyOS! **”, 1);

OledShowString(0, 2, “****************”, 1);

OledShowString(0, 3, “****************”, 1);

// 每秒測量一次溫濕度數(shù)據(jù)

while (1) {

retval = HT30_StartMeasure();

printf(“HT30_StartMeasure: %d

”, retval);

float temp = 0.0, humi = 0.0;

retval = HT30_GetMeasureResult(&temp, &humi);

printf(“HT30_GetMeasureResult: %d, temp = %.2f, humi = %.2f

”, retval, temp, humi);

times++;

// 將溫濕度數(shù)據(jù)顯示在OELD屏幕上

static char line1[32] = {0};

snprintf(line1, sizeof(line1), “** times = [%d]”, times);

OledShowString(0, 1, line1, 1);

static char line2[32] = {0};

snprintf(line2, sizeof(line2), “** temp : %.2f”, temp);

OledShowString(0, 2, line2, 1);

static char line3[32] = {0};

snprintf(line3, sizeof(line3), “** humi : %d”, (int)humi);

OledShowString(0, 3, line3, 1);

// 將溫濕度數(shù)據(jù)作為UDP的消息發(fā)送給手機

static char udpmessage[7] = {0};

snprintf(udpmessage, sizeof(udpmessage), “%04d%02d”, (int)(temp*100), (int)humi);

// UDP socket 是 “無連接的” ,因此每次發(fā)送都必須先指定目標主機和端口,主機可以是多播地址

retval = sendto(sockfd, udpmessage, sizeof(udpmessage), 0, (struct sockaddr *)&toAddr, sizeof(toAddr));

if (retval 《 0) {

printf(“sendto failed!

”);

goto do_cleanup;

}

printf(“send UDP message {%s} %ld done!

”, udpmessage, retval);

// 延時1秒

osDelay(500);

}

do_cleanup:

printf(“do_cleanup.。.

”);

close(sockfd);

}

void HT30Test(void)

{

GpioInit();

GpioSetDir(WIFI_IOT_GPIO_PB_00, WIFI_IOT_GPIO_DIR_OUTPUT); // output is 0 PB08 control led

GpioSetDir(WIFI_IOT_GPIO_PB_07, WIFI_IOT_GPIO_DIR_INPUT); // input is PB09

IoSetPull(WIFI_IOT_GPIO_PB_07, WIFI_IOT_GPIO_ATTR_PULLHIGH);

GpioRegisterIsrFunc(WIFI_IOT_GPIO_PB_07, WIFI_IOT_INT_TYPE_EDGE, WIFI_IOT_GPIO_EDGE_FALL_LEVEL_LOW, GpioIsr, NULL);

// 溫濕度測量線程

osThreadAttr_t attr;

attr.name = “HT30Task”;

attr.attr_bits = 0U;

attr.cb_mem = NULL;

attr.cb_size = 0U;

attr.stack_mem = NULL;

attr.stack_size = 4096;

attr.priority = osPriorityNormal;

if (osThreadNew(HT30TestTask, NULL, &attr) == NULL) {

printf(“[HT30Test] Failed to create HT30TestTask!

”);

}

// OLED閃爍線程

osThreadAttr_t attr2;

attr2.name = “HT30Task2”;

attr2.attr_bits = 0U;

attr2.cb_mem = NULL;

attr2.cb_size = 0U;

attr2.stack_mem = NULL;

attr2.stack_size = 4096;

attr2.priority = osPriorityNormal;

if (osThreadNew(GpioTask, NULL, &attr2) == NULL) {

printf(“[HT30Test] Failed to create HT30TestTask2!

”);

}

}

APP_FEATURE_INIT(HT30Test);

閱讀代碼時可以注意一下兩點:

在 HT30Test 函數(shù)中創(chuàng)建了 2 個線程,分別是 HT30TestTask 和 GpioTask。前者用于溫濕度測量,后者用于閃爍 LED 燈。GpioTask 沒啥用,只是為了好看而已,各位可以刪掉他沒有關(guān)系。

HT30TestTask 中,最終將溫濕度數(shù)據(jù)以 UDP 的消息發(fā)送給 UDP 服務器(也就是手機),而這個數(shù)據(jù)進行了一次粗包裝:一共是 6 位,前 4 位表示溫度,后四位表示濕度。

例如,“374267”表示 37.42℃ 和相對濕度 67%。這樣,后期鴻蒙應用程序拿到數(shù)據(jù)后就好處理了。

鴻蒙應用程序的開發(fā)

在應用程序端,這里充當了 UDP 服務器。使用 Java 的 API 進行開發(fā)的:

getGlobalTaskDispatcher(TaskPriority.DEFAULT).asyncDispatch(new Runnable() {

@Override

public void run() {

try {

// 要接收的報文

byte[] bytes = new byte[1024];

DatagramPacket packet = new DatagramPacket(bytes, bytes.length);

// 創(chuàng)建socket并指定端口

DatagramSocket socket = new DatagramSocket(5678);

while (true) {

// 接收socket客戶端發(fā)送的數(shù)據(jù)。如果未收到會一致阻塞

socket.receive(packet);

String receiveMsg = new String(packet.getData(),0,packet.getLength());

System.out.println(“packet:” + packet.getLength());

System.out.println(“packet:” + receiveMsg);

getMainTaskDispatcher().asyncDispatch(new Runnable() {

@Override

public void run() {

long number = Long.parseLong(receiveMsg.substring(0, 6));

float temp = ((float)(number / 100)) / 100;

long humi = number % 100;

mText.setText(“溫度:” + temp + “ 濕度:” + humi);

}

});

}

// 關(guān)閉socket

// socket.close();

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

}

});

這段代碼比較簡單:

需要通過 getGlobalTaskDispatcher 獲取全局任務分發(fā)器,然后通過異步方法進行網(wǎng)絡連接,否則會拋出 NetworkOnMainThreadException 異常。

獲得到 UDP 報文數(shù)據(jù)后,通過字符串裁剪和類型轉(zhuǎn)化等方式將其轉(zhuǎn)換為浮點型或整型,然后顯示在 mText 組件上。

總結(jié)

我自己做的開發(fā)板成本是很低的,溫濕度傳感器、OLED 屏幕和 Neptune 模組都是以很低的價格在網(wǎng)上購買的,總成本可能不超過 30 元。這個開發(fā)板很小,可以握持在手中隨身攜帶。

不過,在軟件方面,上面的例子充其量算一個 Demo,實際上還有很多工作需要做:

①這里是直接通過 UDP 將開發(fā)板和手機連接在一起的,其中的 IP 地址也是硬寫入的。所以如果離開 WiFi 環(huán)境,那么手機將不會接收到溫濕度信息。

如果開發(fā)者希望遠程獲得溫濕度,那么需要服務器進行中轉(zhuǎn)。這個中轉(zhuǎn)技術(shù)也不復雜,大家可以思考一下如何實現(xiàn)。

②在應用端,這里的溫濕度是寫在 MainAbilitySlice 中的。其實這種方式也是有待改進的。

至少需要將相關(guān)的業(yè)務代碼寫到服務中,這樣的話,我們還可以實現(xiàn)高溫預警等功能。如果將其以小卡片的形式顯示在桌面就更好啦!同樣,大家可以思考一下如何實現(xiàn)。

③這塊開發(fā)板可以進一步微型化,請大家期待下一個版本!

④在獲取溫濕度數(shù)據(jù)的時候,我們用了低重復率和關(guān)閉 clock stretching 功能。

其實,真正實用化的時候,根據(jù)場景的不同大家需要考慮如何配置一下,提高精度的同時降低功耗!

代碼:

https://gitee.com/dongyu1009/neptune-harmony-os-wi-fi-link

視頻演示:

https://harmonyos.51cto.com/show/8232

在這里,為大家貢獻了實例代碼和開發(fā)板的原理圖!如果希望進一步研究,點擊“閱讀原文”來一起探究竟吧!責任編輯:haq

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

    關(guān)注

    66

    文章

    18543

    瀏覽量

    180792
  • OLED
    +關(guān)注

    關(guān)注

    119

    文章

    6219

    瀏覽量

    224619
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2638

    瀏覽量

    66593

原文標題:成本30元,鴻蒙手機知曉家中情況!

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏

    評論

    相關(guān)推薦

    遠程溫濕度實時監(jiān)測系統(tǒng)應用方案

    遠程溫濕度實時監(jiān)測系統(tǒng),作為現(xiàn)代環(huán)境管理的重要組成部分,是各行各業(yè)不可或缺的重要工具,對環(huán)境溫濕度的遠程、實時、精準監(jiān)測。 一、運行原理 聚英遠程
    的頭像 發(fā)表于 01-02 17:03 ?156次閱讀

    XKCON祥控倉庫存儲環(huán)境溫濕度在線監(jiān)測系統(tǒng)能夠取代人工巡檢,實現(xiàn)遠程倉庫存儲環(huán)境溫濕度變化的實時

    倉庫作為儲物的場所,其環(huán)境溫濕度會隨著季節(jié)更替而發(fā)生變化,這種變化會對存儲物品的質(zhì)量與安全產(chǎn)生較大的影響。因此,倉庫的溫濕度數(shù)據(jù)就成為倉儲安全監(jiān)管的一個重要的指標。 濟南祥控自動化設備有限公司開發(fā)
    的頭像 發(fā)表于 11-20 11:20 ?219次閱讀
    XKCON祥控倉庫存儲環(huán)境<b class='flag-5'>溫濕度</b>在線監(jiān)測系統(tǒng)能夠取代人工巡檢,實現(xiàn)遠程倉庫存儲環(huán)境<b class='flag-5'>溫濕度</b>變化的<b class='flag-5'>實時</b>

    LORA無線溫濕度監(jiān)測系統(tǒng)

    LORA無線溫濕度監(jiān)測系統(tǒng),作為現(xiàn)代環(huán)境監(jiān)測技術(shù)的重要組成部分,正日益受到各行各業(yè)的廣泛關(guān)注和應用。 LORA無線溫濕度監(jiān)測系統(tǒng),利用LORA無線通信技術(shù),對環(huán)境中溫度和濕度實時監(jiān)測
    的頭像 發(fā)表于 11-07 16:57 ?421次閱讀

    溫濕度控制器的功能和應用

    溫濕度控制器在電阻柜中的應用主要涉及以下幾個方面: 溫濕度控制器的功能 檢測與控制:溫濕度控制器可以同時檢測和控制環(huán)境中的溫度和濕度。它通常由傳感器、控制器和加熱器三部分組成。傳感器負
    的頭像 發(fā)表于 11-07 15:08 ?293次閱讀

    溫濕度監(jiān)測系統(tǒng)應用

    在現(xiàn)代化工業(yè)生產(chǎn)、倉儲管理、農(nóng)業(yè)種植以及智能家居等領域,溫濕度監(jiān)測已成為不可或缺的一環(huán)。溫濕度作為環(huán)境控制的關(guān)鍵因素,直接影響著產(chǎn)品質(zhì)量、存儲安全、作物生長效率以及居住舒適度。因此,一套高效、精準
    的頭像 發(fā)表于 07-26 16:15 ?464次閱讀

    藥品倉庫溫濕度監(jiān)控系統(tǒng)

    和有效使用具有重要意義。 藥品倉庫溫濕度監(jiān)控系統(tǒng),結(jié)合物聯(lián)網(wǎng)、無線通訊等技術(shù),主要由傳感器、數(shù)據(jù)采集器、傳輸設備、管理云平臺等組成。針對藥品倉庫的溫濕度進行實時監(jiān)控,及時發(fā)現(xiàn)并調(diào)整不利的環(huán)境條件,是確保藥品
    的頭像 發(fā)表于 07-26 10:12 ?390次閱讀

    庫房溫濕度自動監(jiān)測系統(tǒng)

    對庫房內(nèi)溫濕度實時、自動監(jiān)測。在線實時采集庫房內(nèi)的溫濕度數(shù)據(jù),無線傳輸并匯總到管理平臺上,進行存儲、分析、報警等操作,隨時查看庫房內(nèi)的溫濕度
    的頭像 發(fā)表于 07-09 18:00 ?763次閱讀

    糧倉溫濕度監(jiān)測解決方案

    溫濕度是影響糧食儲存品質(zhì)的重要因素。過高的溫度會加速糧食的呼吸作用,導致水分散失和品質(zhì)下降。因此,糧倉的溫濕度管理,成為了確保糧食儲存安全和質(zhì)量穩(wěn)定的關(guān)鍵因素。方便及時發(fā)現(xiàn)糧倉的發(fā)熱點,及時減少糧食
    的頭像 發(fā)表于 07-04 16:37 ?387次閱讀

    想要準確地測量環(huán)境溫濕度?溫濕度傳感器是關(guān)鍵!

    ? 溫濕度是生產(chǎn)生活中最重要的環(huán)境指標之一,不僅人需要在適宜的溫濕度條件下保持良好的精神狀態(tài)和敏捷的思維,食品、藥品、各種儀器設備等都對環(huán)境溫濕度有特殊的要求?;趯Νh(huán)境溫濕度的要求,
    的頭像 發(fā)表于 07-04 08:48 ?630次閱讀

    無線溫濕度監(jiān)控系統(tǒng)

    無線溫濕度監(jiān)控系統(tǒng),作為現(xiàn)代環(huán)境監(jiān)測技術(shù)的杰出代表,已經(jīng)廣泛應用于各個行業(yè)和領域。利用無線通信技術(shù),實現(xiàn)對環(huán)境溫濕度實時、遠程監(jiān)控,從而保障了各種設備和物品的安全運行和保存。 無線溫濕度
    的頭像 發(fā)表于 05-30 16:43 ?808次閱讀

    應用案例 | 如何實時監(jiān)測和管理冷鏈倉庫溫濕度?

    宏集溫濕度監(jiān)測解決方案幫助客戶實時監(jiān)測冷鏈倉庫的溫濕度,保障貨物的品質(zhì)和安全,降低貨損并提高效率。
    的頭像 發(fā)表于 05-23 14:13 ?524次閱讀
    應用案例 | 如何<b class='flag-5'>實時</b>監(jiān)測和管理冷鏈倉庫<b class='flag-5'>溫濕度</b>?

    倉庫環(huán)境溫濕度監(jiān)測系統(tǒng)功能

    倉庫環(huán)境溫濕度監(jiān)測系統(tǒng)在現(xiàn)代物流管理中扮演著至關(guān)重要的角色。以其實時監(jiān)測、精準分析、預警提醒和節(jié)能環(huán)保等優(yōu)勢,成為企業(yè)保障物資安全、提高倉儲效率的重要工具。 倉庫環(huán)境溫濕度監(jiān)測系統(tǒng)方案,基于云計算
    的頭像 發(fā)表于 05-17 17:07 ?556次閱讀

    項目分享|基于ELF 1開發(fā)板的MQTT遠程溫濕度監(jiān)測系統(tǒng)

    今天非常榮幸向各位小伙伴詳細展示一個由共創(chuàng)社成員完成的MQTT遠程溫濕度監(jiān)控系統(tǒng)項目。該項目借助ELF1開發(fā)板作為核心技術(shù)支撐,成功實現(xiàn)了對各類環(huán)境空間中溫濕度數(shù)據(jù)的實時、遠程、穩(wěn)定監(jiān)
    的頭像 發(fā)表于 04-26 09:54 ?545次閱讀
    項目分享|基于ELF 1<b class='flag-5'>開發(fā)板</b>的MQTT遠程<b class='flag-5'>溫濕度</b>監(jiān)測系統(tǒng)

    溫濕度傳感器有哪些應用場景?

    溫濕度傳感器在眾多領域,特別是在實時記錄溫濕度變化的工作中最為廣泛。溫濕度傳感器可以根據(jù)所記錄的內(nèi)容,對其進行科學有效的管理、分析和歸納。下面我們就
    的頭像 發(fā)表于 02-19 16:28 ?1434次閱讀
    <b class='flag-5'>溫濕度</b>傳感器有哪些應用場景?

    溫濕度傳感器工作原理 溫濕度傳感器的接線方法

    溫濕度傳感器是一種用于測量環(huán)境溫度和相對濕度的裝置。它通常用于工業(yè)、農(nóng)業(yè)、氣象、室內(nèi)空調(diào)等領域。本文將詳細介紹溫濕度傳感器的工作原理和接線方法。 一、溫濕度傳感器的工作原理
    的頭像 發(fā)表于 02-14 18:00 ?1w次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品