我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195


繼上篇:ESP32-CAM(ardunio)拍照auto take picture、串流stream及物件辨識object,能拍照並存檔,這次要介紹如何將照片上傳到特定的伺服器,本篇文章使用上傳方式是目前最常用的http post,相當多API都使用這類方式,當然另外有其他方式待以後在介紹。

要完成本篇文章,請依序完成以下主題

完成以上測試後,就可以進行以下內容,以下內容主要分成一、ESP32-CAM端及二、伺服器接收端,ESP32-CAM拍照後,將檔案以HTTP POST方式上傳到伺服器,因此你必須準備一台電腦並安裝web服務,以下分別介紹

一、ESP32-CAM部份

ESP32-CAM主要進行拍照存檔並上傳,拍照可定時拍照,或像「ESP32-CAM(ardunio)拍照auto take picture、串流stream及物件辨識object」以人體感測進行拍照,本範例簡單起見,採用每30秒定時拍照。範例程式放在本篇最後方,請注意,須修改以下內容:

  1. 第66-67,請修改成自己的wifi設定的SSID與密碼
  2. 第68-69,請修改成自己的web server的IP(或DNS)與接收照片的html檔案的URL。
  3. loop(1211-1220)區塊中,目前以30s自動拍照,若有需要可以刪除第1213及1219的if區塊註解。
  4. 本文主要多了一隻副程式「wifisendfile」進行檔案上傳,wifisendfile需要三個參數,分別是檔案位置與名稱、上傳伺服器IP以及接收照片的HTML檔案位置。

二、伺服器接收端

伺服器的實做,有很多選擇,可以用linux+PHP或者windows+IIS+APS.net等等,由於本人比較熟悉.net平台,因此以下介紹如何利用asp.net來接收ARDUINO傳來的檔案。

  1. 首先電腦必須安裝IIS或IIS express,安裝流程可參閱: http://charlesbc.blogspot.com/2011/01/iis-express_16.html
  2. .net安裝開發環境,目前包括VS.net 2017或2019,都有社群免費版可以選擇,下載網址: https://visualstudio.microsoft.com/zh-hant/downloads/?utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=button+cta&utm_content=download+vs2019&rr=https%3A%2F%2Fdocs.microsoft.com%2Fzh-tw%2Fvisualstudio%2Finstall%2Finstall-visual-studio%3Fview%3Dvs-2019

    安裝時,請至少選擇以下幾個模組,其餘您自行斟酌是否需要安裝,VS.net是一個宇宙最肥沒有之一的開發平台,安裝時請注意自己的硬碟空間

    完成安裝後,啟動VS.net主程式,並開啟本地端IIS站,就可進行下一步。



     
  3. ASP檔案接收的程式部份,由於本人已經是old school了,就以最擅長的vb.net寫範例程式。

        Private Sub default_Load(sender As Object, e As EventArgs) Handles Me.Load
            '0檔案上傳處理
            Dim aFile As HttpFileCollection = Request.Files
            If aFile.Count > 0 Then
                Dim relativePath As String = "files\"
                Dim absolutePath As String = Server.MapPath("~/" + relativePath)
                Dim displayFileName As String = Path.GetFileName(aFile(0).FileName)
                Dim filename As String = Int(Now().Ticks) & ".jpg"
                Dim realFileName As String = absolutePath & filename
                aFile(0).SaveAs(realFileName) 
            End If
        End Sub

    4.檔案上傳後,會存在伺服器中,就可以用來做很多的功能,例如轉存到azure做智慧辨識、送到LINE裡面做通知等等。
    不過呢,一次檔案的POST,需要大概5秒鐘時間,因此不適合用來做即時化的服務。

 

arrow
arrow

    夜市 小霸王 發表在 痞客邦 留言(13) 人氣()