【物聯網實戰項目】STM32C8T6+esp8266/mqtt+dht11+onenet+uniapp

一、實物圖

在這里插入圖片描述
在這里插入圖片描述

前端uniapp效果圖(實現與onenet同步更新數據)

在這里插入圖片描述

首先要確定接線圖和接線順序:
1、stm32c8t6開發板連接stlinkv2下載線

ST-LINK V2STM32
3.3V3.3V
SWDIOSWIO
SWCLKSWCLK
GNDGND

2、ch340串口連接底座(注意RXD和TXD的連接方式)

CH340底座
3.3V3.3V
RXDTXD
TXDRXD
GNDGND

3、https://open.iot.10086.cn/console/device/manage/devs
在onenet官網創建設備,名字地區隨便寫,創建成功后點擊設備詳情頁面
在這里插入圖片描述
4、產品開發欄進行添加屬性
在這里插入圖片描述
附上main.c一部分代碼文件


//單片機頭文件
#include "stm32f10x.h"//網絡協議層
#include "onenet.h"//網絡設備
#include "esp8266.h"//硬件驅動
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "dht11.h"
#include "oled.h"//C庫
#include <string.h>#define ESP8266_ONENET_INFO		"AT+CIPSTART=\"TCP\",\"mqtts.heclouds.com\",1883\r\n"void Hardware_Init(void);
void Display_Init(void);
void Refresh_Data(void);u8 temp,humi;/*
************************************************************
*	函數名稱:	main
*
*	函數功能:	
*
*	入口參數:	無
*
*	返回參數:	0
*
*	說明:		
************************************************************
*/
int main(void)
{unsigned short timeCount = 0;	//發送間隔變量unsigned char *dataPtr = NULL;Hardware_Init();				//初始化外圍硬件ESP8266_Init();					//初始化ESP8266//	UsartPrintf(USART_DEBUG, "Connect MQTTs Server...\r\n");OLED_Clear(); OLED_ShowString(0,0,"Connect MQTTs Server...",16);while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT"))DelayXms(500);
//	UsartPrintf(USART_DEBUG, "Connect MQTT Server Success\r\n");OLED_ShowString(0,4,"Connect MQTT Server Success",16); DelayXms(500);OLED_Clear(); OLED_ShowString(0,0,"Device login ...",16);while(OneNet_DevLink())			//接入OneNET{ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT");DelayXms(500);}OneNET_Subscribe();Display_Init();while(1){if(++timeCount >= 100)									//發送間隔5s{DHT11_Read_Data(&temp,&humi);//			UsartPrintf(USART_DEBUG, "OneNet_SendData\r\n");OneNet_SendData();									//發送數據timeCount = 0;ESP8266_Clear();}dataPtr = ESP8266_GetIPD(0);if(dataPtr != NULL)OneNet_RevPro(dataPtr);Refresh_Data();DelayMs(10);}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17077.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17077.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17077.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NSS題目練習4

[LitCTF 2023]1zjs 打開后是一個游戲&#xff0c;用dirsearch掃描&#xff0c;什么都沒發現 查看源代碼搜索flag&#xff0c;發現沒有什么用 搜索php&#xff0c;訪問 出現一堆符號&#xff0c;看樣子像是jother編碼 解碼得到flag&#xff0c;要刪掉[] [LitCTF 2023]Http pro …

37、Flink 的窗口函數(Window Functions)詳解

窗口函數&#xff08;Window Functions&#xff09; a&#xff09;概述 定義了 window assigner 之后&#xff0c;需要指定當窗口觸發之后&#xff0c;如何計算每個窗口中的數據&#xff0c; 即 window function。 窗口函數有三種&#xff1a;ReduceFunction、AggregateFunc…

嵌入式學習記錄5.27(c++基礎1)

目錄 一.C和C的區別 二.輸入輸出流類 2.1輸出cout 2.2輸入cin 三.命名空間 2.1使用命名空間中的標識符 2.2命名空間中聲明函數 2.3命名沖突問題 2.4匿名空間 2.5命名空間添加&#xff0c;嵌套&#xff0c;重命名 四.字符串的使用 4.1string類 4.2C風格和C風格字符串…

LeetCode27.移除元素

題目鏈接&#xff1a; 27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; 思路分析&#xff1a;同樣屬于經典的雙指針移動問題&#xff0c;要掌握固定的思路即可。 算法分析&#xff1a;這個題目可以這樣處理&#xff0c;我們把所有非val 的元素都向前移動&#xff0c;把…

Java面試八股之線程池是怎么實現的

線程池是怎么實現的 線程池是一種基于池化技術的線程管理方式&#xff0c;通過預先創建一定數量的線程并保持在池中待命&#xff0c;從而在有任務來臨時能夠快速分配線程處理任務&#xff0c;而無需頻繁創建和銷毀線程&#xff0c;以此達到提升系統性能、減少資源消耗的目的。…

推薦《從零開始大模型開發與微調》

大模型是深度學習是當前AI和NLP研究與產業中最重要的方向之一。 本書用PyTorch 2.0作為學習大模型的基本框架&#xff0c;以ChatGLM為例詳細講解大模型的基本理論、算法、程序實現、應用實戰以及微調技術&#xff0c;為讀者揭示大模型開發技術。 《從零開始大模型開發與微調&…

兩個數組的交集-力扣

想到的解法是使用兩個哈希表&#xff0c;s1用來統計nums1中出現過的數字&#xff0c;然后遍歷nums2數組&#xff0c;當能夠在s1中查找到nums2的元素時&#xff0c;將這個元素添加到s2中&#xff0c;最后遍歷s2&#xff0c;將其中的元素添加到返回數組中。 但最開始寫時&#xf…

外星人存在與否......----小話外星人(1)

前一段時間&#xff0c;看了好多關于UFO、外星人、宇宙、遠古外星人的視頻和電子書&#xff0c;最后發現&#xff0c;這樣的東西還是不要看多為好&#xff0c;搞得好像這些是真的似的&#xff0c;有時睡覺會被意外驚醒&#xff0c;想多了...... 1、外星人存在嗎 不管有多少UFO的…

Windows10映射網絡驅動器之后不顯示映射盤

目錄 背景解決步驟1、按 Windows R 打開運行2、打開注冊表編輯器3、 System上新建-- DWORD(32bit)4、對新建的文件重命名5、將EnableLinkedConnections的數值改為16、退出注冊表編輯器&#xff0c;重啟系統。 知識擴展斷開連接備份注冊表 背景 目前有一臺NAS服務器,和一臺lin…

Vuex 頁面刷新數據丟失怎么解決

當Vuex中的數據在頁面刷新后丟失時&#xff0c;這通常是因為Vuex的狀態數據是保存在運行內存中的&#xff0c;頁面刷新會導致Vue實例重新加載&#xff0c;進而Vuex中的數據被重置為初始狀態。為了解決這個問題&#xff0c;可以采取以下幾種方法&#xff1a; 1. 使用瀏覽器的本…

工廠模式的三種實現方式

文章目錄 1.引出工廠模式具體需求 2.傳統模式1.類圖2.目錄結構3.pizzastore 用于設計pizza1.Pizza.java 抽象的Pizza類型2.CheesePizaa.java CheesePizaa3.GreekPizza.java GreekPizza 4.order 用于訂購和制作pizza1.OrderPizza.java 制作pizza2.PizzaStore.java 訂購pizza 5.優…

【Redis】 關于列表類型

文章目錄 &#x1f343;前言&#x1f340;常見操作命令介紹&#x1f6a9;lpush&#x1f6a9;lpushx&#x1f6a9;rpush&#x1f6a9;rpushx&#x1f6a9;lrange&#x1f6a9;lpop&#x1f6a9;rpop&#x1f6a9;lindex&#x1f6a9;linsert&#x1f6a9;llen&#x1f6a9;lrem&…

“按摩”科技?

都說A股股民是特別善于學習的&#xff0c;這不市場又現新概念——“按摩科技”&#xff0c;成立僅6年&#xff0c;把上門按摩干到35億營收也是沒誰了&#xff0c;現在號稱有1000萬用戶&#xff0c;3萬家入駐商戶數的按摩平臺&#xff0c;難道就憑借2.5萬名女技師&#xff0c;活…

【Django】中間件實現鉤子函數預處理和后處理,局部裝飾視圖函數

在app文件夾里新建middleware.py繼承MiddlewareMixin&#xff0c; 編寫中間件類&#xff0c;重寫process_request、process_response鉤子函數 from django.http import HttpRequest, HttpResponse from django.utils.decorators import decorator_from_middleware from django…

關于pytest中用例名稱使用中文亂碼的解決

場景&#xff1a;使用pytest.mark.parametrize裝飾器為用例自定義名稱時&#xff0c;運行顯示亂碼。如下圖所示&#xff1a; 解決方案&#xff1a; 1.在根目錄 pytest.ini中增加一行代碼 [pytest] disable_test_id_escaping_and_forfeit_all_rights_to_community_supportTrue…

NAT 網絡轉換

NAT(Network Address Translation) 網絡地址轉換 0x01 NAT 簡介 為什么要使用 NAT IPv4 網絡地址緊缺&#xff0c;從而出現了私有網段&#xff0c;來補充地址&#xff0c;但私有網段不課訪問 internet 所以出現了 NAT 地址轉換&#xff0c;將私有地址&#xff0c;轉換為公網 I…

一口氣看完es(上)

此系列博客分為上中下3篇&#xff1a;上篇是關于es的概念和對數據的增刪改操作&#xff0c;中篇是對數據的查詢、對搜索結果進行處理操作&#xff0c;下篇是介紹怎么在Java代碼中調用和操作es。 基本概念 1、es是什么&#xff1f;有什么作用&#xff1f; es全名是elasticsea…

關于0成本部署個人博客

分享一個文章關于零成本搭建個人博客 參考&#xff1a;‘關于部署博客hexoshokagithub的流程以及問題’ - 關于博客部署 | XiaoYang Guo Welcome to Guo Xiaoyangs personal blog 歡迎來到郭曉陽的個人博客 (1330303.github.io) 這個博主講的流程很全&#xff0c;而且回答也…

智慧管廊巡檢運維解決方案

一、智慧管廊巡檢行業目前存在的挑戰和難題 智慧管廊巡檢行業面臨著運行環境的客觀影響&#xff0c;如地面施工、液體滲漏、通風不佳、內部空間受限等問題。而管廊巡檢機器人系統的出現卻具有重大意義。它能夠有力地保障管廊安全且可靠地運行&#xff0c;在面對火情、災情等緊…

springboot基礎篇(快速入門+要點總結)

目錄 一、SpringBoot簡介 二、創建SpringBoot&#xff08;通過Idea腳手架搭建項目&#xff09; 三、properties配置文件 properties 配置文件說明 ①. properties 基本語法 ②. 讀取配置?件 ③. properties 缺點 2. yml 配置?件說明 ①. yml 基本語法 ②. yml 使用進…