色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

基于STM32+華為云IoT設(shè)計的云端綠化管理系統(tǒng)

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-05-27 10:39 ? 次閱讀

?

1. 設(shè)計需求、硬件環(huán)境介紹

1.1 項目背景

綠化管理系統(tǒng)在現(xiàn)實生活、生產(chǎn)中的應(yīng)用十分廣泛,它是集環(huán)境感知、規(guī)劃決策、自動管理等功能于一體的綜合系統(tǒng)。目前,在城市道路兩旁的區(qū)域綠化主要為花、草、樹、灌木等,其中較多種植物對水的敏感性較高,如果供水不足夠或過多,會造成枯萎,甚至死亡。而且采用人工的方式進(jìn)行管理,不能夠較好的了解種植區(qū)域的數(shù)據(jù),而造成水資源極大地浪費,為響應(yīng)國家“十四五”規(guī)劃提出的生態(tài)文明建設(shè)實現(xiàn)新進(jìn)步,能源資源配置更加合理、利用效率大幅提高,生態(tài)環(huán)境持續(xù)改善;因此發(fā)展先進(jìn)的智能灌溉技術(shù)對綠化管理至關(guān)重要。

傳統(tǒng)的手動綠化管理控制多采用人工方式通過觀察地表潮濕度來進(jìn)行灌溉,這樣不僅造成水資源浪費和人力資源的浪費,而且灌溉不精確。本文就利用華為云IOT物聯(lián)網(wǎng)平臺設(shè)計云端綠化管理系統(tǒng),設(shè)備平臺采用小熊開發(fā)板-CPU意法半導(dǎo)體STM32L431芯片,這是意法半導(dǎo)體推出的低功耗芯片;配合外部的一些專業(yè)傳感器,能夠獲取空氣中的溫濕度數(shù)據(jù),光照度數(shù)據(jù)等,根據(jù)種植區(qū)的空氣溫濕度數(shù)據(jù),判斷是否進(jìn)行灌溉。因此,研究一種具有檢測到綠化情況以及價格低廉、應(yīng)用范圍廣、性能可靠的綠化管理系統(tǒng)對綠化水平的提高以及節(jié)能減排都具有重要的意義。

1.2 實現(xiàn)功能

本項目是利用意法半導(dǎo)體的STM32L431+ESP8266 WIFI ,配合華為云物聯(lián)網(wǎng)平臺服務(wù)器,組建一個微小型的綠化管理系統(tǒng),結(jié)合外部傳感器采集的數(shù)據(jù),并利用這些數(shù)據(jù)判斷是否進(jìn)行灌溉。

考慮到以學(xué)習(xí)為目,當(dāng)前項目采用了ESP8266無線WIFI網(wǎng)卡作為聯(lián)網(wǎng)設(shè)備,ESP8266價錢便宜,支持串口編程,有標(biāo)準(zhǔn)的一套AT資料,資料多,作為學(xué)習(xí)而言,非常適合。可以通過對ESP8266的編程實驗,了解TCP、MQTT網(wǎng)絡(luò)編程相關(guān)知識點。

當(dāng)前項目主要分為六個功能模塊,分別是:基礎(chǔ)系統(tǒng)模塊、溫度采集模塊、濕度采集模塊、光照采集模塊、無線傳感器網(wǎng)絡(luò)模塊、OLED顯示屏模塊。 (1)基礎(chǔ)系統(tǒng)模塊:進(jìn)行各個數(shù)據(jù)的接收與轉(zhuǎn)發(fā),控制掃水作業(yè)是否進(jìn)行,澆水作業(yè)是采用板載的電機(jī)模擬 (2)溫度采集模塊:采集監(jiān)測區(qū)域的溫度數(shù)據(jù),傳輸?shù)?a target="_blank">微控制器 (3)濕度采集模塊:采集監(jiān)測區(qū)域的濕度數(shù)據(jù),傳輸?shù)轿⒖刂破?(4)光照采集模塊:采集監(jiān)測區(qū)域的光照數(shù)據(jù),傳輸?shù)轿⒖刂破?(5)無線傳感器網(wǎng)絡(luò)模塊:數(shù)據(jù)上傳至云平臺,數(shù)據(jù)下發(fā)交互等 (6)LCD顯示屏模塊:實時顯示所監(jiān)測到的各項數(shù)據(jù)

小熊開發(fā)板的擴(kuò)展板上自帶了光敏傳感器、溫濕度傳感器、直流電機(jī)模塊,可以很方便的實現(xiàn)上面的這些功能需求。

本項目的源代碼沒有采用官方的案例工程,官方自大工程非常龐大,為了兼容各種設(shè)備平臺,代碼較多,不適合初學(xué)者理解代碼,本文工程代碼全部針對本項目編寫,沒有多余代碼,采用寄存器風(fēng)格編寫,代碼簡潔,非常適合初學(xué)者學(xué)習(xí)MQTT協(xié)議,學(xué)習(xí)各種傳感器的通信協(xié)議等等;連接華為云的MQTT協(xié)議也是按照MQTT的官方中文手冊自行編寫的,不依賴任何外部SDK,不依賴ESP8266設(shè)備,只要能聯(lián)網(wǎng)的設(shè)備都可以連接華為云IOT,非常適合移植到其他單片機(jī)平臺;不管是采用51,STM32F1系列,都可以直接參考代碼移植。

項目源碼下載地址:ESP8266連接華為云物聯(lián)網(wǎng)平臺_完成數(shù)據(jù)交互(MQTT).zip-嵌入式文檔類資源-CSDN下載這是ESP8266+STM32連接華為云物聯(lián)網(wǎng)平臺的源碼,是keil5工程,STM32采用STM32更多下載資源、學(xué)習(xí)資料請訪問CSDN下載頻道.

https://download.csdn.net/download/xiaolong1126626497/67931599

1.3 設(shè)備實物圖

小熊開發(fā)板的設(shè)備相關(guān)實物圖如下:

image-20211230102422497poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

image-20211230102533808poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

image-20211230102742396poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

image-20211230102757091poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

2. 創(chuàng)建IOT服務(wù)器端產(chǎn)品

2.1 創(chuàng)建產(chǎn)品

直接打開物聯(lián)網(wǎng)產(chǎn)品頁面: 設(shè)備接入_IoTDA_IoT_物聯(lián)網(wǎng)IoT平臺-華為云

image-20211230104413905poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

打開產(chǎn)品頁面,選擇右上角創(chuàng)建產(chǎn)品。

image-20211230104528780poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

根據(jù)自己情況填寫信息

image-20211230104628676poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

創(chuàng)建成功后打開產(chǎn)品詳情頁面,拉到最下面,點擊創(chuàng)建自定義模型文件。

image-20211230104743669poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

這里創(chuàng)建模型文件主要就是為了MQTT客戶端能夠正確的上傳傳感器數(shù)據(jù)上來,每個傳感器設(shè)置一個屬性,這個屬性就是表示了傳感器的數(shù)據(jù)值類型。

比如: 先添加一個電機(jī),這個電機(jī)就是澆水電機(jī),能上報開關(guān)狀態(tài),云端也能下發(fā)命令控制電機(jī),所以需要添加屬性和下發(fā)的命令。

image-20211230104855227poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

添加屬性:

image-20211230105133158poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

添加命令: 因為電機(jī)需要云端遠(yuǎn)程控制。

image-20211230105322105poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

接下來就創(chuàng)建溫度、濕度、光照度傳感器的屬性,這些傳感器只是向云端上傳數(shù)據(jù),不需要下發(fā)指令控制,所以只創(chuàng)建屬性就行了。

image-20211230105541888poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

image-20211230105609401poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

image-20211230105640730poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

創(chuàng)建完畢效果,一共有4個屬性,電機(jī)、溫度、濕度、光強(qiáng)度:

image-20211230105707542poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

2.2 創(chuàng)建設(shè)備

選擇設(shè)備頁面,注冊設(shè)備。

image-20211230105936066poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

創(chuàng)建后保持設(shè)備密匙等信息,接下來登錄服務(wù)器時,生成MQTT賬號密匙需要用到這些參數(shù)

image-20211230110048677poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

當(dāng)前創(chuàng)建的設(shè)備信息如下:

{ "device_id": "61cd1d97078a93029b84e7b6_1126626497", "secret": "1126626497" }

2.3 生成MQTT登錄賬號信息

官微提供的在線小工具: Huaweicloud IoTDA Mqtt ClientId Generator

按照提示填入數(shù)據(jù),生成,非常方便。

image-20211230110439211poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

當(dāng)前生成的信息如下:

ClientId 61cd1d97078a93029b84e7b6_1126626497_0_0_2021123003 Username 61cd1d97078a93029b84e7b6_1126626497 Password b219f3a0099fa0284a2671a5c699b67a7cf6d5f7355d9ee8190011f3b64f71b5

3. 使用MQTT客戶端模擬測試

為了驗證服務(wù)器配置是否OK,先使用MQTT客戶端軟件進(jìn)行連接測試。

3.1 華為云IOT服務(wù)器地址與端口

image-20211230110724920poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

端口: 1883 域名: a161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com IP地址: 121.36.42.100

3.2 訂閱主題

在產(chǎn)品頁面,可以看到主題管理頁面,能看到當(dāng)前設(shè)備可以訂閱的主題有哪些。

image-20211230110922857poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

一般訂閱下發(fā)的數(shù)據(jù):

格式: $oc/devices/{device_id}/sys/messages/down //訂閱主題: 平臺下發(fā)消息給設(shè)備 $oc/devices/61cd1d97078a93029b84e7b6_1126626497/sys/messages/down

3.3 上報主題數(shù)據(jù)

官方文檔介紹: 使用MQTT.fx調(diào)測_設(shè)備接入 IoTDA_開發(fā)指南_設(shè)備側(cè)開發(fā)_使用MQTT Demo接入_華為云

image-20211230111152241poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

服務(wù)ID,屬性ID在產(chǎn)品頁面查看,2.1小節(jié)創(chuàng)建產(chǎn)品里就講了這個屬性的作用。

image-20211230111748205poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

每次可以單個屬性上報,也可以一起上報。

格式: $oc/devices/{device_id}/sys/properties/report //設(shè)備上報主題請求 $oc/devices/61cd1d97078a93029b84e7b6_1126626497/sys/properties/report ? //上報的數(shù)據(jù)格式如下 //電機(jī)開狀態(tài)反饋 {"services": [{"service_id": "motor","properties":{"motor":1}}]} ? //電機(jī)關(guān)狀態(tài)反饋 {"services": [{"service_id": "motor","properties":{"motor":0}}]} ? //溫度上報 {"services": [{"service_id": "motor","properties":{"SHT30_H":14}}]} ? //濕度上報 {"services": [{"service_id": "motor","properties":{"SHT30_L":70}}]} ? //光照強(qiáng)度上報 {"services": [{"service_id": "motor","properties":{"BH1750":80}}]} ? //也可以一起上報 {"services": [{"service_id": "motor","properties":{"motor":1}},{"service_id": "motor","properties":{"SHT30_H":15}},{"service_id": "motor","properties":{"SHT30_L":70}},{"service_id": "motor","properties":{"BH1750":80}}]}

3.4 登錄服務(wù)器

按照軟件提示,填入相關(guān)數(shù)據(jù)即可。

如需要也需要使用和我一樣的同款軟件,打開百度搜索MQTT客戶端_v2.4(協(xié)議3.1.1).exe 即可找到下載地址。

image-20211230112304696poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

發(fā)送數(shù)據(jù)后查看云端,已經(jīng)登錄成功,數(shù)據(jù)已經(jīng)上傳成功。

image-20211230112059007poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

3.5 下發(fā)命令

電機(jī)設(shè)備支持讀寫,支持下發(fā)命令,在設(shè)備頁面測試。

image-20211230112844980

?編輯

image-20211230112932187poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

點擊確定之后,參看MQTT客戶端軟件,已經(jīng)收到了下發(fā)的數(shù)據(jù)。

image-20211230113038784poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

len:174,Data:l$oc/devices/61cd1d97078a93029b84e7b6_1126626497/sys/commands/request_id=390ce15d-6e69-4021-b83a-5e953eea874c{"paras":{"motor":1},"service_id":"motor","command_name":"motor"}

4. 設(shè)備端上華為云IOT

工程代碼:

image-20211230114207096poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

image-20211230114357552poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

image-20211230114431687poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

工程代碼較多,這里就貼出main.c全部代碼:

#include "main.h"
#include "stm32l4xx_hal.h"
#include "i2c.h"
#include "usart.h"
#include "gpio.h"
#include "E53_IA1.h"
#include "lcd.h"
#include "spi.h"
#include "mqtt.h"
#include "esp8266.h"
?
?
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
?
void SystemClock_Config(void);
?
?
#define ESP8266_WIFI_AP_SSID  "CMCC-Cqvn"  //將要連接的路由器名稱 --不要出現(xiàn)中文、空格等特殊字符
#define ESP8266_AP_PASSWORD "99pu58cb"   //將要連接的路由器密碼
?
?
//華為云IOT物聯(lián)網(wǎng)服務(wù)器的設(shè)備信息
#define MQTT_ClientID "61cd1d97078a93029b84e7b6_1126626497_0_0_2021123003"
#define MQTT_UserName "61cd1d97078a93029b84e7b6_1126626497"
#define MQTT_PassWord "b219f3a0099fa0284a2671a5c699b67a7cf6d5f7355d9ee8190011f3b64f71b5"
 
//訂閱與發(fā)布的主題
#define SET_TOPIC  "$oc/devices/61cd1d97078a93029b84e7b6_1126626497/sys/messages/down" //訂閱
#define POST_TOPIC "$oc/devices/61cd1d97078a93029b84e7b6_1126626497/sys/properties/report" //發(fā)布
?
?
//保存溫濕度、光照強(qiáng)度
E53_IA1_Data_TypeDef E53_IA1_Data;
?
//顯示文本
char lcd_text_str[50];
?
?
UART_HandleTypeDef at_usart;
?
//低功耗串口初始化
int32_t at_usart_init(void)
{
  at_usart.Instance = LPUART1;
  at_usart.Init.BaudRate = 115200;
?
  at_usart.Init.WordLength = UART_WORDLENGTH_8B;
  at_usart.Init.StopBits = UART_STOPBITS_1;
  at_usart.Init.Parity = UART_PARITY_NONE;
  at_usart.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  at_usart.Init.Mode = UART_MODE_RX | UART_MODE_TX;
  
  if(HAL_UART_Init(&at_usart) != HAL_OK)
   {
    _Error_Handler(__FILE__, __LINE__);
   }
  // __HAL_UART_CLEAR_FLAG(usart, UART_FLAG_TC);
  __HAL_UART_ENABLE_IT(&at_usart, UART_IT_IDLE);
  __HAL_UART_ENABLE_IT(&at_usart, UART_IT_RXNE);
  HAL_NVIC_EnableIRQ(LPUART1_IRQn);                   //使能USART1中斷通道
  HAL_NVIC_SetPriority(LPUART1_IRQn, 3, 3);               //搶占優(yōu)先級3,子優(yōu)先級3
  return 0;
}
?
unsigned char ESP8266_RecvBuf[MAX_RECV_CNT];
unsigned int ESP8266_Recv_cnt=0;
unsigned int ESP8266_Recv_flag=0;
void LPUART1_IRQHandler()
{
  //接收到數(shù)據(jù)
  if(__HAL_UART_GET_FLAG(&at_usart, UART_FLAG_RXNE) != RESET)
   {
    if(ESP8266_Recv_cntRDR & 0x00FF);
     } 
    else
     {
       ESP8266_Recv_flag=1;
     }
   } 
  else if (__HAL_UART_GET_FLAG(&at_usart, UART_FLAG_IDLE) != RESET)
   {
    __HAL_UART_CLEAR_IDLEFLAG(&at_usart);
    
     ESP8266_Recv_flag=1;
   }
}
?
?
void AT_SendData(unsigned char *p,unsigned int len)
{
  int i=0;
  for(i=0;iISR & 0X40) == 0); //循環(huán)發(fā)送,直到發(fā)送完畢
    LPUART1->TDR = p[i];
   }
}
?
?
char mqtt_message[200];
int main(void)
{
  int i=0;
  int cnt=0;
  int motor_state=0;
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_I2C1_Init();
  MX_SPI2_Init();
  MX_USART1_UART_Init();
  at_usart_init();
  
  //初始化硬件
  Init_E53_IA1();
?
  LCD_Init();                 
  LCD_Clear(BLACK);//清屏為黑色
  LCD_ShowString(0, 00, 240, 32, 32, "Init ESP8266");//顯示字符串,字體大小32*32
?
  if(ESP8266_Init())
  {
   printf("ESP8266硬件檢測錯誤.\n");
   LCD_Clear(BLACK);//清屏為黑色
   LCD_ShowString(0, 00, 240, 32, 32, "ESP8266 ERROR");//顯示字符串,字體大小32*32
  }
  else
  {
    LCD_Clear(BLACK);//清屏為黑色
    LCD_ShowString(0, 00, 240, 32, 32, "ESP8266 OK");//顯示字符串,字體大小32*32
    printf("準(zhǔn)備連接到指定的服務(wù)器.\n");
   //非加密端口
   printf("WIFI:%d\r\n",ESP8266_STA_TCP_Client_Mode(ESP8266_WIFI_AP_SSID,ESP8266_AP_PASSWORD,"106.55.124.154",1883,1));
  }
  
  //2. MQTT協(xié)議初始化  
  MQTT_Init(); 
  
  //3. 連接華為云IOT服務(wù)器    
  while(MQTT_Connect(MQTT_ClientID,MQTT_UserName,MQTT_PassWord))
   {
    printf("服務(wù)器連接失敗,正在重試...\n");
    HAL_Delay(500);
   }
  printf("服務(wù)器連接成功.\n");
  
  //3. 訂閱主題
  if(MQTT_SubscribeTopic(SET_TOPIC,0,1))
   {
    printf("主題訂閱失敗.\n");
   }
  else
   {
    printf("主題訂閱成功.\n");
   }    
  
   while (1)
    {
      if(HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin)==GPIO_PIN_RESET)//查詢按鍵KEY1低電平
       {
        HAL_Delay(10);//消抖
        if(HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin)==GPIO_PIN_RESET)//查詢按鍵KEY1低電平
         {
          HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);//亮
          
          //補(bǔ)光燈亮
          HAL_GPIO_WritePin(IA1_Light_GPIO_Port, IA1_Light_Pin, GPIO_PIN_SET);
          
          //電機(jī)轉(zhuǎn)
          HAL_GPIO_WritePin(IA1_Motor_GPIO_Port, IA1_Motor_Pin, GPIO_PIN_SET);
          
          motor_state=1;
         }
       }
        
      if(HAL_GPIO_ReadPin(KEY2_GPIO_Port,KEY2_Pin)==GPIO_PIN_RESET)//查詢按鍵KEY2低電平
       {
        HAL_Delay(10);//消抖
        if(HAL_GPIO_ReadPin(KEY2_GPIO_Port,KEY2_Pin)==GPIO_PIN_RESET)//查詢按鍵KEY2低電平
         {
          HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET);//滅
          
           //補(bǔ)光燈滅
          HAL_GPIO_WritePin(IA1_Light_GPIO_Port, IA1_Light_Pin, GPIO_PIN_RESET);
          
           //電機(jī)停
          HAL_GPIO_WritePin(IA1_Motor_GPIO_Port, IA1_Motor_Pin, GPIO_PIN_RESET);
          
          motor_state=0;
         }
       }
   
     cnt++;
     HAL_Delay(10);  
     
     if(cnt>=100)
     {
      cnt=0;
      E53_IA1_Read_Data();
      printf("光照強(qiáng)度:%d %%\r\n", (int)E53_IA1_Data.Lux);
      printf("濕度:%d %%\r\n",(int)E53_IA1_Data.Humidity);
      printf("溫度:%d ℃\r\n", (int)E53_IA1_Data.Temperature);
?
?
      sprintf(lcd_text_str,"L: %d %%",(int)E53_IA1_Data.Lux);
      LCD_ShowString(40, 50+10+32*1, 240, 32, 32,lcd_text_str);
?
?
      sprintf(lcd_text_str,"H: %d %%",(int)E53_IA1_Data.Humidity);
      LCD_ShowString(40, 50+10+32*2, 240, 32, 32,lcd_text_str);
       
?
      sprintf(lcd_text_str,"T: %d C",(int)E53_IA1_Data.Temperature);
      LCD_ShowString(40, 50+10+32*3, 240, 32, 32,lcd_text_str);
?
      //切換引腳的狀態(tài)
      HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
       
        //上傳數(shù)據(jù)
      sprintf(mqtt_message,"{"services": [{"service_id": "motor","properties":{"motor":%d}},"
      "{"service_id": "motor","properties":{"SHT30_H":%d}},{"service_id": "motor","properties":"
      "{"SHT30_L":%d}},{"service_id": "motor","properties":{"BH1750":%d}}]}",
      motor_state,(int)E53_IA1_Data.Humidity,(int)E53_IA1_Data.Temperature,(int)E53_IA1_Data.Lux);
      
      MQTT_PublishData(POST_TOPIC,mqtt_message,0);
      
      //根據(jù)濕度自動灌溉
      if((int)E53_IA1_Data.Humidity<50) ?//小于50自動灌溉
 ? ? ? ? ?  {
 ? ? ? ? ? ? ? ? printf("自動灌溉....\n");
 ? ? ? ? ? ? ? ? motor_state=1; //電機(jī)狀態(tài)更新
 ? ? ? ? ? ? ? ? //電機(jī)轉(zhuǎn)
 ? ? ? ? ? ? ? ? HAL_GPIO_WritePin(IA1_Motor_GPIO_Port, IA1_Motor_Pin, GPIO_PIN_SET);
 ? ? ? ? ?  } ?
 ? ? ? ? }
?
 ? ? ? ? ?//接收到數(shù)據(jù)
 ? ? ? ? ?if(ESP8266_Recv_flag)
 ? ? ? ?  {
 ? ? ? ? ? ? ? //如果是下發(fā)了屬性,判斷是開鎖還是關(guān)鎖
 ? ? ? ? ? ? ? ?if(ESP8266_Recv_cnt>5)
         {
          ESP8266_RecvBuf[ESP8266_Recv_cnt]='\0';
       
          //使用字符串查找函數(shù)
          if(strstr((char*)&ESP8266_RecvBuf[5],""machine":1"))
           {
             motor_state=1; //電機(jī)狀態(tài)更新
             //電機(jī)轉(zhuǎn)
             HAL_GPIO_WritePin(IA1_Motor_GPIO_Port, IA1_Motor_Pin, GPIO_PIN_SET); 
             printf("開啟電機(jī)...\n");
           }
          else if(strstr((char*)&ESP8266_RecvBuf[5],""machine":0"))
           {
            //電機(jī)停
            HAL_GPIO_WritePin(IA1_Motor_GPIO_Port, IA1_Motor_Pin, GPIO_PIN_RESET);
          
            motor_state=0;
            printf("關(guān)閉電機(jī)...\n");
           }
          
          for(i=0;i;i++)printf("%c",esp8266_recvbuf[i]);>;i++)>)>
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?審核編輯:湯梓紅

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

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355744
  • 意法半導(dǎo)體
    +關(guān)注

    關(guān)注

    31

    文章

    3126

    瀏覽量

    108594
  • 管理系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    2485

    瀏覽量

    35903
  • 華為云
    +關(guān)注

    關(guān)注

    3

    文章

    2445

    瀏覽量

    17410
收藏 人收藏

    評論

    相關(guān)推薦

    基于STM32+ESP8266+華為IoT設(shè)計的健康管理系統(tǒng)并完成應(yīng)用側(cè)開發(fā)

    這篇文章就利用STM32加上各種外設(shè)傳感器配合華為IOT物聯(lián)網(wǎng)平臺設(shè)計一個健康管理設(shè)備,通過ESP8266+MQTT協(xié)議將數(shù)據(jù)傳輸導(dǎo)致
    的頭像 發(fā)表于 07-11 09:09 ?2719次閱讀
    基于<b class='flag-5'>STM32</b>+ESP8266+<b class='flag-5'>華為</b><b class='flag-5'>云</b><b class='flag-5'>IoT</b>設(shè)計的健康<b class='flag-5'>管理</b><b class='flag-5'>系統(tǒng)</b>并完成應(yīng)用側(cè)開發(fā)

    基于STM32+NBIOT+華為IOT設(shè)計的智能井蓋

    智能井蓋是一種通過物聯(lián)網(wǎng)技術(shù)實現(xiàn)對井蓋狀態(tài)監(jiān)測和管理的設(shè)備。當(dāng)前介紹基于STM32微控制器,BC26 NBIOT模組以及華為IOT平臺設(shè)計
    的頭像 發(fā)表于 04-26 11:06 ?3839次閱讀
    基于<b class='flag-5'>STM32</b>+NBIOT+<b class='flag-5'>華為</b><b class='flag-5'>云</b><b class='flag-5'>IOT</b>設(shè)計的智能井蓋

    基于STM32+華為設(shè)計的智慧煙感系統(tǒng)

    當(dāng)前基于STM32華為,設(shè)計了一種智慧煙感系統(tǒng),該系統(tǒng)可以檢測煙霧,同時將檢測到的數(shù)據(jù)上傳到云端
    的頭像 發(fā)表于 04-26 11:16 ?7749次閱讀
    基于<b class='flag-5'>STM32+</b><b class='flag-5'>華為</b><b class='flag-5'>云</b>設(shè)計的智慧煙感<b class='flag-5'>系統(tǒng)</b>

    基于STM32L4小熊派設(shè)計的云端綠化管理系統(tǒng)(華為IOT)

    本項目利用STM32L4小熊派設(shè)計基于華為IoT物聯(lián)網(wǎng)平臺的云端綠化
    的頭像 發(fā)表于 07-12 09:39 ?2061次閱讀
    基于<b class='flag-5'>STM32</b>L4小熊派設(shè)計的<b class='flag-5'>云端</b><b class='flag-5'>綠化</b><b class='flag-5'>管理</b><b class='flag-5'>系統(tǒng)</b>(<b class='flag-5'>華為</b><b class='flag-5'>云</b><b class='flag-5'>IOT</b>)

    STM32參考設(shè)計之 Cloud & NB-IoT應(yīng)用

    LiteOS 物聯(lián)網(wǎng)操作系統(tǒng) 華為技術(shù)有限公司 Huawei LiteOS 是華為面向IoT領(lǐng)域構(gòu)建的“統(tǒng)一物聯(lián)網(wǎng)操作系統(tǒng)和中間件軟件平臺
    發(fā)表于 02-05 13:44

    使用pahomqtt連接阿里IOT完成云端和設(shè)備端的通訊

    概述上一部分成功連接阿里,完成了阿里的連接與ping操作。下面介紹使用pahomqtt連接阿里IOT,完成消息的發(fā)布和訂閱。完成云端
    發(fā)表于 08-05 08:16

    設(shè)計基于STM32+機(jī)智的手機(jī)APP點燈遇到哪些問題

    設(shè)計基于STM32+機(jī)智的手機(jī)APP點燈遇到哪些問題?怎樣去解決?
    發(fā)表于 10-14 07:55

    使用MQTT方式對接華為IoT平臺的具體過程

    摘要:本文主要講述使用MQTT方式對接華為IoT平臺的具體過程。使用的方案:目標(biāo)板為STM32L431BearPI(帶E53擴(kuò)展板); TCPIP功能由開發(fā)板的ESP8266提供;M
    發(fā)表于 01-27 07:13

    如何實現(xiàn)基于STM32L431的云端綠化管理系統(tǒng)的設(shè)計?

    如何實現(xiàn)基于STM32L431的云端綠化管理系統(tǒng)的設(shè)計?
    發(fā)表于 02-09 07:22

    基于OpenHarmony的華為IoT智慧路燈實現(xiàn)

    。前面的文章介紹了基于OpenHarmony的智慧路燈實現(xiàn),本文將在前面文章的基礎(chǔ)上,添加華為IoT功能,實現(xiàn)基于OpenHarmony系統(tǒng)Io
    發(fā)表于 05-10 09:36

    基于OpenHarmony的華為IoT智慧路燈

    。前面的文章介紹了基于OpenHarmony的智慧路燈實現(xiàn),本文將在前面文章的基礎(chǔ)上,添加華為IoT功能,實現(xiàn)基于OpenHarmony系統(tǒng)Io
    發(fā)表于 05-11 10:06

    基于STM32L431設(shè)計的云端綠化管理系統(tǒng)(ESP8266+阿里物聯(lián)網(wǎng)平臺)

    基于STM32L431設(shè)計的云端綠化管理系統(tǒng)(ESP8266+阿里物聯(lián)網(wǎng)平臺)
    發(fā)表于 12-06 10:06 ?23次下載
    基于<b class='flag-5'>STM32</b>L431設(shè)計的<b class='flag-5'>云端</b><b class='flag-5'>綠化</b><b class='flag-5'>管理</b><b class='flag-5'>系統(tǒng)</b>(ESP8266+阿里<b class='flag-5'>云</b>物聯(lián)網(wǎng)平臺)

    基于STM32L431設(shè)計的云端綠化管理系統(tǒng)

    這是采用STM32L431 + ES8266設(shè)計的云端綠化管理系統(tǒng),可以通過ESP8266 WIFI連接阿里
    的頭像 發(fā)表于 02-28 13:51 ?3778次閱讀
    基于<b class='flag-5'>STM32</b>L431設(shè)計的<b class='flag-5'>云端</b><b class='flag-5'>綠化</b><b class='flag-5'>管理</b><b class='flag-5'>系統(tǒng)</b>

    基于小熊派開發(fā)板+華為IoT設(shè)計的云端綠化管理系統(tǒng)

    綠化管理系統(tǒng)在現(xiàn)實生活、生產(chǎn)中的應(yīng)用十分廣泛,它是集環(huán)境感知、規(guī)劃決策、自動管理等功能于一體的綜合系統(tǒng)。目前,在城市道路兩旁的區(qū)域
    的頭像 發(fā)表于 05-27 11:10 ?3298次閱讀

    IoT畢業(yè)設(shè)計 | STM32+機(jī)智AIoT平臺實現(xiàn)智能鴿籠控制

    摘要本智能鴿籠控制系統(tǒng)由貴州大學(xué)電氣工程專業(yè)的劉磊、王民慧設(shè)計開發(fā)完成,基于STM32+機(jī)智AIoT平臺設(shè)計專為賽鴿進(jìn)籠檢測的裝置,利用機(jī)智
    的頭像 發(fā)表于 06-23 14:30 ?1002次閱讀
    <b class='flag-5'>IoT</b>畢業(yè)設(shè)計 | <b class='flag-5'>STM32+</b>機(jī)智<b class='flag-5'>云</b>AIoT<b class='flag-5'>云</b>平臺實現(xiàn)智能鴿籠控制
    主站蜘蛛池模板: 俄罗斯美幼| 亚洲 欧美 国产 在线 日韩| 久欠热视频精品首页| 免费精品美女久久久久久久久| 最近日本免费观看MV免费| 欧美激情精品久久久久久不卡| 高清国产在线观看| 亚洲人视频在线| 免费国产麻豆传| 精品国产乱码久久久久久下载| 性色香蕉AV久久久天天网| 久久免费高清| 成年AV动漫| 亚洲粉嫩美白在线| 蜜芽手机在线观看| 国产 精品 亚洲 欧美 高清| 亚洲伊人久久一次| 欧美另类一区| 国产午夜精品鲁丝片| 51国产偷自视频在线视频播放 | 免费伦理片网站| 成人国产在线视频| 亚洲成人三级| 男女XX00上下抽搐动态图| 国产精品999| 最近中文字幕MV高清在线视频 | 老师在讲桌下边h边讲课| 穿着丝袜被男生强行啪啪| 亚洲视频在线看| 秋霞电影院兔费理论84MB| 国产又粗又猛又爽黄老大爷| 99免费视频观看| 亚洲精品m在线观看| 欧美6O老妪与小伙交| 国产在线精品亚洲第1页| 99久久久免费精品国产| 亚洲AV成人无码网天堂| 女性私密五月天| 国拍自产精品福利区| 扒开她的黑森林让我添动态图 | AV国产乱码一区二区三视频|