国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于STM32、OV2640及ESP8266的無線圖傳

這篇具有很好參考價值的文章主要介紹了基于STM32、OV2640及ESP8266的無線圖傳。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、簡介:

????????本文利用STM32F407單片機(jī)、OV2640攝像機(jī)模塊以及ESP8266 WIFI模塊,并基于C#編寫的TCP上位機(jī)服務(wù),來實現(xiàn)圖像的無線傳輸。

????????本文受啟發(fā)于博客:ESP8266+STM32F407+OV7670實現(xiàn)圖片傳輸,在此感謝該文作者。與該文不同的是,本文采用的攝像機(jī)模塊是0V2640,傳輸?shù)臄?shù)據(jù)是壓縮之后的jpeg格式的圖像數(shù)據(jù),而不是像上文博主那樣,將RGB565數(shù)據(jù)直接傳輸?shù)缴衔粰C(jī)。此外,本文存在和上文博主同樣的問題,即采用串口傳輸方式,數(shù)據(jù)傳輸速率過低,實際應(yīng)用中,發(fā)現(xiàn)3秒左右才能夠傳出一幀320*240的圖片。本文接下來對整個圖傳功能中使用到的模塊一一進(jìn)行詳細(xì)介紹。

二、DCMI+OV2640攝像頭

? ? ? ? 在整個圖傳項目中,使用到的最核心的模塊就是OV2640模塊,?關(guān)于該模塊的介紹以及詳細(xì)的驅(qū)動,可以參考文章:STM32F4驅(qū)動OV2640攝像頭,該文詳細(xì)介紹了OV2640模塊、DMCI接口及整個OV2640的驅(qū)動。此處進(jìn)行簡要介紹:

? ? ? ? STM32F4驅(qū)動OV2640采用的是DCMI接口及DMA直接存儲器訪問對于DMA的相關(guān)介紹可以參考文章:STM32:DMA。整個驅(qū)動流程是:STM32單片機(jī)通過DCMI接口,獲取OV2640攝像頭采集到的圖像數(shù)據(jù),并通過提前配置好的DMA數(shù)據(jù)流,將數(shù)據(jù)傳輸?shù)絃CD或內(nèi)部數(shù)組。如下圖所示,是通過DMA配置,將DCMI采集到的圖像數(shù)據(jù)傳輸?shù)絃CD顯示屏的效果:

基于hal庫stm32f407zgt6+ov2640+esp8266,STM32,stm32,ESP8266,OV2640,無線圖傳

? ? ? ? 關(guān)于LCD顯示屏的介紹及詳細(xì)驅(qū)動,可以參考博文:??STM32: LCD顯示。這樣,首先通過OV2640及LCD屏幕,將攝像頭模塊采集到的數(shù)據(jù)顯示在屏幕上。

?????????該部分的源碼:?OV2640驅(qū)動,雖然我們將OV2640采集到的圖像成功顯示在了LCD屏幕之上,但是,我們最終的目的是將圖像數(shù)據(jù)利用ESP8266模塊通過WIFI傳輸?shù)缴衔粰C(jī)或網(wǎng)頁中,因此,我們還需要ESP8266模塊。

三、ESP8266

?????????ESP8266是比較常見的WIFI模塊,該模塊有三種不同的工作模式,即softAP 模式,station 模式softAP + station 共存模式。(SoftAP:即無線接入點,是一個無線網(wǎng)絡(luò)的中心節(jié)點,通常使用的無線路由器就是一個無線接入點;Station:即無線終端,是一個無線網(wǎng)絡(luò)的終端端。)

基于hal庫stm32f407zgt6+ov2640+esp8266,STM32,stm32,ESP8266,OV2640,無線圖傳

????????本文我們將ESP8266作為客戶端,并將其傳輸模式設(shè)置為透傳,讓其連接位于電腦的TCP上位機(jī)服務(wù)器,然后將OV2640采集的圖像數(shù)據(jù)通過單片機(jī)傳輸給ESP8266模塊,并采用WIFI發(fā)送給上位機(jī)。ESP8266的配置過程如下:

  • AT+RESTORE? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #恢復(fù)出廠設(shè)置
  • AT+CWMODE=1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #設(shè)置ESP8266工作模式為STA
  • AT+RST? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #復(fù)位
  • AT+CWJAP="路由器賬號","密碼"? ? ? ? ? ? ? ? ? ? ? ? ?#連接路由器
  • AT+CIPMODE=1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #設(shè)置透傳模式
  • AT+CIPSTART="TCP","192.168.6.117",8266 ? ? ?#連接TCP服務(wù)器(上位機(jī))
  • AT+CIPSEND? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#開啟透傳

? ? ? ? 此處要注意,本文的ESP8266是通過AT指令進(jìn)行配置的,因此要保證ESP8266已經(jīng)燒錄了AT固件庫,一般網(wǎng)上買的ESP8266模塊默認(rèn)會燒錄AT固件庫,如若沒有,可以自行進(jìn)行燒錄。

四、工作原理

? ? ? ? 基本的模塊介紹已經(jīng)完成,通過模塊介紹,我們也可以發(fā)現(xiàn),無線圖傳模塊的工作原理是:首先我們利用STM32和OV2640模塊,采集圖像數(shù)據(jù),然后,我們配置好ESP8266,讓其連接上位機(jī)服務(wù)器,然后,我們通過串口,將STM32采集到的圖像數(shù)據(jù)傳輸給ESP8266,由于ESP8266配置的是透傳模式,因此其會將STM32通過串口發(fā)送過來的數(shù)據(jù)原封不動的通過WIFI發(fā)送給上位機(jī),上位機(jī)在將這些圖像數(shù)據(jù)解析為圖像顯示出來就可以了,如下圖所示:

基于hal庫stm32f407zgt6+ov2640+esp8266,STM32,stm32,ESP8266,OV2640,無線圖傳

? ? ? ? ?上文中,我們介紹OV2640模塊時,將圖像顯示在LCD屏幕上,但是,我們真正的目的,是將數(shù)據(jù)通過ESP8266模塊傳輸給上位機(jī)。其實這兩者本質(zhì)上是一樣的,一個是將數(shù)據(jù)通過DMA傳輸給LCD屏幕,而另外一個則是將數(shù)據(jù)傳輸給串口(因為ESP8266和STM32是通過串口連接的)。

核心傳輸代碼如下:

//處理JPEG數(shù)據(jù)
//當(dāng)采集完一幀JPEG數(shù)據(jù)后,調(diào)用此函數(shù),切換JPEG BUF.開始下一幀采集.
void jpeg_data_process(void)
{
	if(ov2640_mode)//只有在JPEG格式下,才需要做處理.
	{
		if(jpeg_data_ok==0)	//jpeg數(shù)據(jù)還未采集完?
		{	
			DMA_Cmd(DMA2_Stream1, DISABLE);//停止當(dāng)前傳輸 
			while (DMA_GetCmdStatus(DMA2_Stream1) != DISABLE){}// 等待DMA2_Stream1可配置  
			jpeg_data_len=jpeg_buf_size-DMA_GetCurrDataCounter(DMA2_Stream1);// 得到此次數(shù)據(jù)傳輸?shù)拈L度
      
			jpeg_data_ok = 1;    // 數(shù)據(jù)已經(jīng)采集完成,等待被處理
		}
		if(jpeg_data_ok==2)	//上一次的jpeg數(shù)據(jù)已經(jīng)被處理了
		{			
			DMA2_Stream1->NDTR=jpeg_buf_size;	
			DMA_SetCurrDataCounter(DMA2_Stream1,jpeg_buf_size);//傳輸長度為jpeg_buf_size*4字節(jié)
			DMA_Cmd(DMA2_Stream1, ENABLE); //重新傳輸
			jpeg_data_ok=0;						//標(biāo)記數(shù)據(jù)未采集
		}
	}
} 

//jpeg模式
void jpeg_test(void)
{ 
  u32 i,jpgstart,jpglen;
  u8 headok=0;	
	u8 *p;
	u8 effect=0,saturation=2,contrast=2;
	u8 size=3;		  
	u8 msgbuf[15];	//消息緩存區(qū) 
	
	//uart4初始化
	LTE_uart3_init(115200);
	LCD_Clear(WHITE);
    POINT_COLOR=RED; 
	LCD_DisplayString(30,60,24,"ALIENTEK STM32F4");
	LCD_DisplayString(30,90,24,"OV2640 JPEG Mode");
	
    OV2640_JPEG_Mode(); // JPEG模式
	
	My_DCMI_Init();			//DCMI配置
	DCMI_DMA_Init((u32)&jpeg_buf,jpeg_buf_size,DMA_MemoryDataSize_Word,DMA_MemoryInc_Enable);//DCMI配置 輸出到數(shù)組
 	OV2640_OutSize_Set(jpeg_img_size_tbl[size][0], jpeg_img_size_tbl[size][1]); 
	DCMI_Start(); 		//啟動傳輸  
	delay_ms(500);
	while(1)
	{
		  if(jpeg_data_ok==1)  // 已經(jīng)采集完成一幀圖像,開始處理數(shù)據(jù)
		  {
					p=(u8*)jpeg_buf; 
					LCD_DisplayString(30,150,24,"Sending JPEG data...");
                    jpglen=0;	//設(shè)置jpg文件大小為0
					headok=0;	//清除jpg頭標(biāo)記				
		  for(i=0; i<jpeg_data_len*4; i++)
          {
						//查找OXFF,OXD8和0XFF,0XD9,獲取jpg文件大小
						if((p[i]==0XFF)&&(p[i+1]==0XD8)){ 
							  jpgstart=i;
							  headok=1;	//標(biāo)記找到j(luò)pg頭(FF D8)
						}
						if((p[i]==0XFF)&&(p[i+1]==0XD9)&&headok)//找到頭以后,再找FF D9
						{
							  jpglen=i-jpgstart+2;
								break;
						}
          } 
					
					if(jpglen) // 正常的jpeg數(shù)據(jù)
					{
						 p+=jpgstart;
						 for(i=0;i<jpglen;i++)	//發(fā)送整個jpg文件
						 {
								while(USART_GetFlagStatus(USART3, USART_FLAG_TC) == RESET);	//循環(huán)發(fā)送,直到發(fā)送完畢  		
                                USART_SendData(USART3, p[i]); 
						 }

					}
					jpeg_data_ok = 2;	//標(biāo)記jpeg數(shù)據(jù)處理完了,可以讓DMA去采集下一幀了.
					delay_ms(2000);
	   	}
	}
}

? ? ? ? 上述核心代碼其實是兩個函數(shù),函數(shù)jpeg_data_process()在幀中斷中被調(diào)用,也就是說,每次采集完一幀圖像,該函數(shù)都會被調(diào)用。在該函數(shù)中,主要是修改標(biāo)志jpeg_data_ok 為1,以便另外一個函數(shù)jpeg_test()可以對這一幀數(shù)據(jù)進(jìn)行處理,所謂的處理在此處其實就是將數(shù)據(jù)通過串口發(fā)送給ESP8266,ESP8266模塊會將數(shù)據(jù)發(fā)送給上位機(jī),并由上位機(jī)解析然后顯示。

五、TCP服務(wù)上位機(jī)

? ? ? ? ESP8266在拿到STM32通過串口傳輸?shù)膱D像數(shù)據(jù)之后,會將其發(fā)送給上位機(jī),那么ESP8266和上位機(jī)之間是如何通訊的呢?是通過TCP/IP協(xié)議。

? ? ? ? 本文使用C#語言,基于TCP/IP協(xié)議,寫了一個簡單的上位機(jī)服務(wù),該服務(wù)接受ESP8266的連接,并將其發(fā)送過來的數(shù)據(jù)編碼為圖像進(jìn)行顯示。由于軟件寫的很簡單,因此很多功能并沒有進(jìn)行擴(kuò)充實現(xiàn),如其只支持一個設(shè)備的圖傳,后續(xù)可以進(jìn)行升級改進(jìn)。軟件界面如下所示:

基于hal庫stm32f407zgt6+ov2640+esp8266,STM32,stm32,ESP8266,OV2640,無線圖傳

? ? ? ? 該軟件的實現(xiàn)思路非常簡單,因此其功能也比較粗狂,bug較多。

? ? ? ? 軟件整體包含兩條主要的線程以及一個數(shù)據(jù)緩沖容器(生產(chǎn)者消費者模式)。在服務(wù)器啟動之后,軟件開啟監(jiān)聽服務(wù),監(jiān)聽ESP8266的連接請求,并開啟一個消費線程,用于從緩沖容器中獲取圖像數(shù)據(jù)(此時應(yīng)該沒有數(shù)據(jù)),在服務(wù)與ESP8266建立連接之后,就開始接收來自ESP8266的圖像數(shù)據(jù),此時,創(chuàng)建一個數(shù)據(jù)生產(chǎn)線程,將服務(wù)器接收到的數(shù)據(jù)存放到緩沖容器中,這樣,這兩個線程一個專門負(fù)責(zé)將接收到的數(shù)據(jù)放到緩沖容器中,一個專門負(fù)責(zé)從緩沖容器中獲取數(shù)據(jù)并將其解碼為圖像在界面顯示。

上位機(jī)核心代碼:

        /// <summary>
        /// 接收客戶端發(fā)送的圖像數(shù)據(jù),并放到緩沖容器中。
        /// </summary>
        /// <param name="proxsocket"></param>
        public void ReceiveClientMessage(object socket)
        {
            int imageCount = 0;
            //服務(wù)器端與客戶端之間用于通訊的socket
            Socket proxSocket = socket as Socket;

            //開辟用來存儲客戶端發(fā)送來的數(shù)據(jù)的控件
            byte[] dataClient = new byte[640 * 240];
            proxSocket.ReceiveTimeout = 1000 * 300;   // 設(shè)置接收數(shù)據(jù)時的阻塞時間為15秒鐘
            //接收客戶端數(shù)據(jù)
            while (serverStart)    
            {
                StringBuilder imageData = new StringBuilder();
                try
                {
                    while (imageCount < 5)
                    {
                        int countRev = proxSocket.Receive(dataClient, 0, dataClient.Length, SocketFlags.None);
                        string revDate = StringUtils.ToHexStrFromByte(dataClient, countRev);
                        if (revDate.Length>0)
                        {
                            imageData.Append(revDate);
                            imageCount++;
                            AppendToMessage(revDate);
                        }
                    }
                    jpegQueue.Add(imageData.ToString());
                    imageCount = 0;
                }
                catch (SocketException e)
                {
                    if (e.ErrorCode == 10060)
                    {
                        continue;
                    }
                    else
                    {
                        //客戶端非正常退出。
                        AppendToMessage(string.Format("客戶端:{0}非正常退出。", proxSocket.RemoteEndPoint.ToString()));
                        return; //線程終結(jié)
                    }
                }

            }
        }

        /// <summary>
        /// 從容器中獲取圖形數(shù)據(jù),并解析為圖像顯示
        /// </summary>
        private void createImg()
        {
            string imgData = "";
            while (serverStart)
            {
                string imgListData = jpegQueue.Take();
                imgData = imgData + imgListData;
                while (imgData.IndexOf("FF D8")!=-1)
                {
                    int startIndex = imgData.IndexOf("FF D8");
                    int endIndex = imgData.IndexOf("FF D9");
                    if (endIndex != -1)
                    {
                        string jpeg = imgData.Substring(startIndex,endIndex+5-startIndex);
                        imgData = imgData.Substring(endIndex+5);
                        Bitmap imageBitmap = StringUtils.GetJpegImage(jpeg.Replace(" ", ""));
                        if (imageBitmap != null)
                        {
                            Image img = Image.FromHbitmap(imageBitmap.GetHbitmap());
                            if (this.JpgImage.InvokeRequired)
                            {
                                JpgImage.Invoke(new Action<Image>(s =>
                                {
                                    JpgImage.Image = s;
                                }), img);
                            }
                            else
                            {
                                this.JpgImage.Image = img;
                            }
                        }
                        else
                        {
                            continue;
                        }
                    }
                    else
                    {
                        break;
                    }

                }
            }
        }

? ? ? ? 圖像數(shù)據(jù)的解析也非常簡單,根據(jù)JPEG圖像的特點,其開頭為FFD8,結(jié)尾為FFD9,我們通過查找這兩個標(biāo)志位,其中間的數(shù)據(jù)就是整幀的圖像數(shù)據(jù),我們將其這些數(shù)據(jù)轉(zhuǎn)化位Bitmap位圖進(jìn)行顯示就可以了。顯示效果如下圖:

基于hal庫stm32f407zgt6+ov2640+esp8266,STM32,stm32,ESP8266,OV2640,無線圖傳

? ? ? ? ?上圖中可以看出,OV2640采集到的圖像數(shù)據(jù),最終經(jīng)過ESP8266發(fā)送到了上位機(jī),并成功顯示出來,只是受限于串口速率,大概3秒才會傳輸完一幀數(shù)據(jù),在實際使用時,也可以發(fā)現(xiàn),上位機(jī)數(shù)據(jù)緩沖容器時常都是空的,數(shù)據(jù)生產(chǎn)線程受限于串口速率,導(dǎo)致數(shù)據(jù)的生產(chǎn)遠(yuǎn)遠(yuǎn)小于數(shù)據(jù)的消耗,表現(xiàn)出來就是幾秒才會刷新一幀數(shù)據(jù)。

六、結(jié)束:

? ? ? ? 本文主要基于STM32、OV2640以及ESP8266完成圖像的網(wǎng)絡(luò)傳輸,本文受啟發(fā)并參考了博文:ESP8266+STM32F407+OV7670實現(xiàn)圖片傳輸,在此對該文作者表示深深的感謝。

? ? ? ? 本文下位機(jī)圖像數(shù)據(jù)采集以及上位機(jī)圖像數(shù)據(jù)解析源碼如下:

無線圖傳下位機(jī)源碼:https://download.csdn.net/download/sssxlxwbwz/85251144

無線圖傳上位機(jī)源碼:?https://download.csdn.net/download/sssxlxwbwz/85251105

????????文章來源地址http://www.zghlxwxcb.cn/news/detail-801644.html

????????

到了這里,關(guān)于基于STM32、OV2640及ESP8266的無線圖傳的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • STM32 HAL庫+ESP8266+華為云物聯(lián)網(wǎng)平臺

    STM32 HAL庫+ESP8266+華為云物聯(lián)網(wǎng)平臺

    文章內(nèi)容: ??? STM32 HAL庫通過串口發(fā)送AT指令完成與ESP8266的控制實現(xiàn)接入華為云物聯(lián)網(wǎng)平臺,并完成基本通信與控制,包括設(shè)備屬性上報和命令下發(fā)解析與響應(yīng)。 ????文末獲取 “STM32 HAL庫+ESP8266+華為云物聯(lián)網(wǎng)平臺keil工程 ”下載的鏈接。 一、華為云物聯(lián)網(wǎng)平臺 創(chuàng)建 產(chǎn)品

    2024年02月14日
    瀏覽(37)
  • 【HAL庫】STM32+ESP8266+Onenet+MQTT,極簡工程,hal庫移植。

    【HAL庫】STM32+ESP8266+Onenet+MQTT,極簡工程,hal庫移植。

    ESP8266通過MQTT協(xié)議連接Onenet。從標(biāo)準(zhǔn)庫移到了HAL庫,過程有點麻煩,整了一天。做完后整理了一下,這個極簡的工程,方便以后開發(fā),也希望能幫助到大家,節(jié)約時間。 代碼工程: https://github.com/wyfroom/ESP8266-Onenet-MQTT 該份代碼硬件配置: 板子:STM32F103C8T6最小系統(tǒng)板。 外設(shè):

    2024年02月03日
    瀏覽(65)
  • 入門小白:STM32hal庫實現(xiàn)ESP8266與手機(jī)通信(不定長數(shù)據(jù)收發(fā)和ESP8266使用的一些問題)

    入門小白:STM32hal庫實現(xiàn)ESP8266與手機(jī)通信(不定長數(shù)據(jù)收發(fā)和ESP8266使用的一些問題)

    目錄 前言 一、stm32cubeMX的串口配置 二、空閑中斷+dma接收 三、ESP8266.c和ESP8266.h ESP8266.h ESP8266.c 注意事項 四、與手機(jī)通信例程 步驟: ?例程代碼main.c 運行結(jié)果 五、相關(guān)問題 總結(jié) 相關(guān)的app和源碼 ? ? ? ? 前提: 1.掌握串口通信和ESP8266的使用方法 串口通信:單片機(jī)串口通信

    2024年02月07日
    瀏覽(25)
  • 【STM32HAL庫(智能家居)+DHT11傳感器+ESP8266+Things Cloud云平臺+手機(jī)APP】

    【STM32HAL庫(智能家居)+DHT11傳感器+ESP8266+Things Cloud云平臺+手機(jī)APP】

    ?嗶哩嗶哩視頻效果鏈接:http://【畢業(yè)設(shè)計——STM32溫濕度采集系統(tǒng)】 https://www.bilibili.com/video/BV1Hy421i7sk/?share_source=copy_webvd_source=d711fa8bef565aeec8a4d279df8b85aa?~~大家可以給個關(guān)注,記得一鍵三連哦~~ 設(shè)計是一種基于STM32的無線溫濕度檢測系統(tǒng)以智能化、自動化、高效化為出發(fā)點,

    2024年04月09日
    瀏覽(27)
  • STM32系列(HAL庫)——使用ESP8266-01S物聯(lián)網(wǎng)模塊連接Onenet云平臺上報DHT11溫濕度

    STM32系列(HAL庫)——使用ESP8266-01S物聯(lián)網(wǎng)模塊連接Onenet云平臺上報DHT11溫濕度

    本篇主要講解如何使用ESP8266-01S物聯(lián)網(wǎng)模塊連接Onenet云平臺,并上報DHT11模塊的溫濕度數(shù)據(jù)。本文單片機(jī)主控采用STM32F405RGT6,使用其他主控的話基本要求有2個串口,一個串口用于調(diào)試使用,另一個用于ESP模塊通訊。 1.軟件 CubeMX Keil5 串口調(diào)試助手 Onenet云平臺賬戶 2.硬件 STM32開

    2024年02月02日
    瀏覽(54)
  • 基于stm32 ESP8266WiFi模塊的基本通信

    基于stm32 ESP8266WiFi模塊的基本通信

    本篇涉及到的模塊與工具為: 1. ATK-ESP8266wifi模塊 2. USB-UART模塊 3. 串口調(diào)試助手 提取鏈接:https://pan.baidu.com/s/17xRlpnjp8j-VvyD2VDxNXw?pwd=ufms 提取碼:ufms 4. 網(wǎng)絡(luò)調(diào)試助手 提取鏈接:https://pan.baidu.com/s/10spxZmwMGI70USlzkOzdxg?pwd=fmxe 提取碼:fmxe 程序源碼提取連接放置文章底部,需者自提

    2024年02月02日
    瀏覽(29)
  • STM32連接OV2640攝像頭串口方式在PyQt5界面上展示視頻界面 以及使用MQTT方式進(jìn)行展示

    STM32連接OV2640 視頻源接入到PyQt5界面中 作為AI模型的輸入,視頻流是非常重要的。在本文中,我們將介紹如何將STM32連接到OV2640攝像頭,并將視頻流接入到PyQt5界面中。 硬件連接 首先,我們需要將OV2640攝像頭連接到STM32上。我們可以使用以下連接方式: OV2640 | STM32 ------|------

    2024年02月06日
    瀏覽(25)
  • 基于STM32+FreeRtos+ESP8266+MQTT連接阿里云

    基于STM32+FreeRtos+ESP8266+MQTT連接阿里云

    實現(xiàn)通過stm32f103c8t6+操作系統(tǒng)(freertos)讀取dht12溫濕度傳感器的數(shù)據(jù),采用ESP8266連接網(wǎng)絡(luò),經(jīng)過MQTT協(xié)議連接阿里云IOT,進(jìn)行數(shù)據(jù)的傳輸,以及服務(wù)器發(fā)送數(shù)據(jù)控制LED的亮滅,包括消息的發(fā)布和訂閱等操作,完成云端和設(shè)備端的通訊。 首先,我們使用MQTT.fx模擬器,通過模擬的

    2024年02月06日
    瀏覽(19)
  • 【EPS32S3學(xué)習(xí)筆記】ESP32+OPENCV+OV2640+LVGL

    【EPS32S3學(xué)習(xí)筆記】ESP32+OPENCV+OV2640+LVGL

    提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加 例如:第一章 Python 機(jī)器學(xué)習(xí)入門之pandas的使用 提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 提示:這里可以添加本文要記錄的大概內(nèi)容: 前面已經(jīng)完成了ESP32S3+LVGL+OV2640的工

    2024年02月06日
    瀏覽(27)
  • ESP8266與手機(jī)相互通信 透傳模式(STM32F103C8T6 HAL庫)有APP和完整代碼

    ESP8266與手機(jī)相互通信 透傳模式(STM32F103C8T6 HAL庫)有APP和完整代碼

    一、目標(biāo) ? ? ? ? stm32f103c8t6用串口發(fā)送AT指令控制esp8266發(fā)送數(shù)據(jù)到手機(jī)APP上,同時手機(jī)也可以發(fā)送數(shù)據(jù)到stm32f103c8t6主控,控制LED的亮滅。 ? ? ? ? ?將esp8266模塊的GND、VCC、TXD、RXD、CH-PD與單片機(jī)對應(yīng)引腳連接,其中TXD與RXD要反接,模塊在工作時CH-PD要處于高電平狀態(tài)。 二、

    2024年02月16日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包