濟生活的富足讓內容創作領域,出現了久違的百家爭鳴之勢,細數近年來內容平臺的種類和數量,以及趨勢,就可以看到內容創作的生命力和影響力不斷在提升。而內容創作的背后,更依賴的是人和工具,是他們聯合創造了時下豐富多彩、百花綻放的內容形態和展現形式。
專職內容創作人——小杰
其中,用于儲存和記錄原生內容,為后期處理提供原始數據的存儲卡產品,是我們最應該關注卻最被忽略的內容工具。為了探尋存儲卡對于內容創作的重要性,我們邀請了一位長期處于一線內容創作的專職創作人——小杰,一同體驗了不久前剛剛發布的三星PRO Plus,通過一周的使用和感受后,我們記錄了小杰對于這款存儲卡的真實初體驗。
三星 PRO Plus
01三星PRO Plus的“不變” 4K下的高性能傳輸
經過一周的使用感受后,小杰對于三星PRO Plus的第一感官便是性能。
小杰工作照
熟悉內容創作流程的朋友應該都知道,存儲卡的功能特效決定了其需要相當的讀寫性能,才能完成相機感光器件記錄光信號轉換成電信號的重要原始數據,快速記錄和安全存儲下來,并以我們熟悉的圖像格式,呈現出來。
假設存儲卡的讀寫性能跟不上相機電信號的轉換效率,就會發生相機成像不完整,相機顯示屏回放出現馬賽克,甚至嚴重的直接無法完成數據和圖像的記錄。
圖源于三星存儲官網
而三星PRO Plus,理論讀取速度達到100MB/S,寫入速度達到90MB/S,經過小杰的實際測試,即使在采集4K級別的原始素材的時候,它依舊能夠完美進行圖像數據的快速記錄,成像效果完整,相機回放清晰高效,讓小杰在創作的過程中,無需擔心數據記錄的問題。
當然除了在相機內部進行原始數據的采集之外,存儲卡另一個重大使命便是在設備和設備之間進行數據的傳遞,也就是將原始數據導入到個人PC之中,進行后期加工。這個過程,也是我們普通用戶較為熟悉的環節,同時也是影響內容創作者效率的重要指標。
三星PRO Plus實際傳輸速度
根據小杰的實操,我們可以看到,在峰值狀態下,三星PRO Plus的傳輸速度甚至一度超過了理論性能,達到夸張的103MB/S,這讓小杰也感到十分吃驚,高效的數據傳輸,穩定的數據記錄,極大的提升了小杰在后期處理上的效率。
02三星PRO Plus的“變” 七重防護、10年有限保修、萬次插拔的硬核體質
高性能是內容創作的基礎,而存儲卡的穩定和耐用程度才是支撐內容創作的靈魂。聊到穩定性和耐久程度的時候,小杰也表示,存儲卡的性能其實大家都差不多,然而在穩定性和耐用程度方面,不同存儲卡的差距卻是十分巨大。
沒錯,目前主流的存儲卡在穩定性和耐用程度上,都進行了探索和補足,常規的存儲卡單品基本都配置3重防護,或是5重防護,用以提升存儲卡的耐用程度。
三星PRO Plus 七重防護概念
而三星PRO Plus這款不久前問世的單品,則破天荒的提出了7重防護的概念,即三星PRO Plus能夠實現防磨損、防水、耐高低溫、防X射線、防磁、防摔、抗沖擊等七種復雜環境,并在這些嚴苛的條件下,安全穩定進行原始數據的采集和記錄。
實際上在小杰的日常體驗中,經常遇到嚴寒酷暑下進行實景拍攝,將存儲卡和手機、電腦、信用卡等強磁產品共存的尷尬局面;回到工作室,時不時也會出現打翻水杯,浸濕存儲卡,或是存儲卡跌落到地面,乃至無意間被踩踏等現象,然而經過一周的體驗后,小杰發覺這款三星PRO Plus依舊能夠正常運轉,高效完成數據傳輸和記錄。
此外,當筆者告訴小杰,此款三星PRO Plus還支持10年有限保修,以及支持10000次插拔不損壞的強硬體質的時候,小杰表示這個卡太硬核太優秀了吧,當下決定為工作室小哥們立即采購一批三星PRO Plus。
03“變與不變” 三星品牌存儲始終在路上
如同標題所言,三星PRO Plus的“變與不變”,對于存儲卡單品而言,受制于設備的通用性和制作標準的一致性,能夠進行產品創新和功能迭代的空間其實并不多,所以我們可以看到大部分的存儲卡在外觀和功能描述方面都大同小異,更多的是在體驗和內置的功能方面進行探索,如同小杰感到驚艷的,7重防護,10年有限保修以及10000次插拔不損壞的體驗提升,這也是三星PRO Plus的“變”;
至于“不變”的部分,自然是三星品牌存儲對于產品性能的持續追求,連續讀取100MB/S,連續寫入90MB/S,實際體驗下來甚至超過峰值的表現,對于極致性能的追求,三星品牌存儲一直在行動。
最后,插播個廣告,三星PRO Plus正在參與三星品牌存儲京東旗艦店的“星存春意處處生機”活動,購買指定存儲單品,即有機會抽獎贏取藍牙音箱,同時曬單還能返E卡。
三星品牌存儲旗艦店直通車:https://mall.jd.com/index-1000075981.html
“品質星品”活動直通車:https://pro.m.jd.com/mall/active/YgPoau1qE891Zs5gWyXYhM4Qx4Z/index.html
(7649748)
過前面的介紹,我們已經學會了如何使用 .NET nanoFramework 為 ESP32 設備連接 Wi-Fi 網絡。然而,在實際的物聯網環境中,我們往往需要使用更便捷的式來滿足配網需求。這篇文章將帶你了解一些常見的配網方案,并以 ESP32 為例,介紹如何使用 .NET nanoFramework 實現為 ESP32 藍牙配網。
經過前面的介紹,我們已經學會了如何 為 ESP32 設備連接 Wi-Fi 網絡,然后這種代碼中硬編碼的方式,雖然簡單,但在實際的物聯網環境中,我們往往需要使用更便捷的方式來滿足配網需求。而且,也不適合于產品化的物聯網設備。今天,我們就來看看如何使用 .NET nanoFramework 實現為 ESP32 藍牙配網。
為了能讓我們的物聯網設備連接到網絡,配網的方式也有很多種,每種方式都有其特定的應用場景和優缺點。在這里我們不再詳細的描述其原理,只是帶大家做一個簡單的了解,如果你感興趣,可以自行搜索。下面是一些常見的配網方式的總結:
雖然方案有很多,但是針對這一款 ESP32-S3-Zero 開發板,其擁有藍牙模塊,刷寫 ESP32_S3_BLE
固件后,我們可以使用藍牙配網的方式來為其配網。
使用藍牙配網我們處理可以自己定義進行私有的實現外,也可以使用開源的協議快速完成開發。除了不用自己造輪子外,配網的工具也不需要自己設計了。Improv 是一個免費且開放的標準,它允許設備通過藍牙進行安全的 Wi-Fi 配網,這個過程可以通過以下步驟完成:
1.打開設備2.客戶端使用Improv協議將Wi-Fi憑據發送到待配網設備3.設備連接到Wi-Fi網絡并返回一個URL。4.客戶端使用該URL連接到設備并繼續設置設備。
Improv協議可以通過藍牙低功耗(Bluetooth Low Energy)或通過串行端口使用。這兩種協議都可以從瀏覽器中使用。不過,串口就需要連線了,我們這里使用的是藍牙低功耗的方式。
關于 Improv 協議的詳細信息,可以參考其官方文檔[1]。
首先我們需要安裝以下三個包:
?nanoFramework.System.Device.Wifi
:用于連接 Wi-Fi 網絡?nanoFramework.Device.Bluetooth
:用于實現藍牙配網?nanoFramework.System.Net.Http
:用于演示聯網后的網絡服務
對于 Improv 協議的實現,沒有依賴包,但是在官方的 Samples 倉庫中有一個ImprovWifi示例[2],我們可以參考其實現,直接使用其 Improv.cs
,然后 using ImprovWifi;
即可。
ImprovWifi
已經實現了 Improv 協議,我們只需要在 Program.cs
中實現一些簡單的代碼。
這里我們在完成配網后,啟動一個簡易的網絡服務,用于演示配網成功后的網絡服務。這里我們使用 HttpListener
來實現一個簡易的網絡服務,當然你也可以使用其他的方式,比如 WebServer
等等。
static Improv _imp;
public static void Main()
{
Console.WriteLine("藍牙配網 Improv 協議示例");
_imp=new Improv();
// 配網完成后的回調
_imp.OnProvisioningComplete +=Imp_OnProvisioningComplete;
// 開始配網服務,設備名稱這里可以自定義,中文也是支持的,在搜索設備時會顯示該名稱
_imp.Start("ESP32 桑榆肖物");
// 純演示,這里直接授權
_imp.Authorise(true);
Console.WriteLine("等待設備配網...");
while (_imp.CurrentState !=Improv.ImprovState.provisioned)
{
Thread.Sleep(500);
}
Console.WriteLine("設備配網完成,IP地址:" + _imp.GetCurrentIPAddress());
// 停止配網服務
_imp.Stop();
_imp=;
Console.WriteLine("啟動一個簡易的網絡服務,用于演示配網成功后的網絡服務");
SimpleWebListener();
Thread.Sleep(Timeout.Infinite);
}
private static void Imp_OnProvisioningComplete(object sender, EventArgs e)
{
SetProvisioningURL();
}
private static void SetProvisioningURL()
{
_imp.RedirectUrl="http://" + _imp.GetCurrentIPAddress() + "/start.htm";
}
private static void SimpleWebListener()
{
string responseString=
"<html><head><meta charset='utf-8'>" +
"<title>Hello from ESP32</title></head>" +
"<body><h2>Hello from ESP32</h2>" +
"<p>It works!</p>" +
"<p>這里可以根據需求繼續進行更多的設備配置信息</p>" +
"</body></html>";
byte[] buffer=System.Text.Encoding.UTF8.GetBytes(responseString);
HttpListener listener=new("http", 80);
listener.Start();
while (true)
{
try
{
HttpListenerContext context=listener.GetContext();
Console.WriteLine("Request received");
HttpListenerResponse response=context.Response;
response.ContentLength64=buffer.Length;
response.OutputStream.Write(buffer, 0, buffer.Length);
context.Response.Close();
Console.WriteLine("Response sent");
context.Close();
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message + "\nSack=" + ex.StackTrace);
}
}
}
注意:以上代碼只是功能的演示,在實際項目中,需要根據自己的需求進行修改,比如我們需要在驗證連接后下次也自動完成連接,再者為了安全性,我們還需要進行驗證等等。后面我會有一個實際的開源項目演示,介紹如何使用近期介紹的相關功能,敬請關注。
編譯并刷寫完成后,通過調試的數據輸出,我們可以看設備成功進入等待配網狀態。這時我們通過網頁打開 Improv 的 web 配網客戶端,也就是之前的 Improv 官方介紹站點[3]。當然,站點和協議都是開源的,你可以自己搭建一個。
這里我們直接使用官方的進行測試使用即可,不過,需要注意的是,因為使用了藍牙配網,所以這里需要你的電腦也支持藍牙,否則無法搜索到設備。如果你的電腦沒有藍牙,也可以使用手機的 Chrome 或 Egde 瀏覽器打開該網頁進行配網。
這里可以看到,設備列表中已經搜索到了我們的設備,點擊配對即可。配對成功后,我們可以會彈出下面的對話框,這里我們可以設置 Wi-Fi 的 SSID 和密碼,然后點擊 Connect
按鈕即可。
連接成功后,我們可以看到設備的狀態已經變成了 Provisioned
,這時我們就可以訪問到設備啟動的網絡服務了。
通過這篇文章,我們學習了如何使用 .NET nanoFramework 為 ESP32 設備進行藍牙配網。雖然這里我們使用的是 Improv 協議,但是其實現原理都是類似的,只是協議不同而已。在實際的項目中,我們可以根據自己的需求,選擇合適的配網方式,或者自己實現一個配網協議,這里就不再贅述了。
對于 Improv 協議的配網客戶端,我們也可以通過微信小程序來實現,或者通過集成SDK到自己的應用中方便的實現配網,有興趣的同學可以自行了解實現。
[1]
官方文檔: https://www.improv-wifi.com/
者:劉小夕
轉發鏈接:https://mp.weixin.qq.com/s/aEbqUt3zSnq8EjdBtkBcpw
*請認真填寫需求信息,我們會在24小時內與您取得聯系。