Arduino+php+mysql--用開源硬體和軟體進行能源領域內的數據記錄

2022-01-05 arduino

概述

由於發電技術目前正向使用更清潔、更智能的原料的方向發展,因此小規模的光電板陣列如雨後春筍般湧現。其中有些安裝很複雜,涉及到高度的監控和自調節功能;有些則沒有自我感知 (self-awareness) 功能。在後一種情況下,對於所有者而言,若能有一種好的、經濟的渠道來獲得基本的運行數據,則很有幫助。

您可能想知道,在給定條件下,光電板能否有效工作。光和溫度,外加風速和其他因素都能影響面板的輸出。光越多產生的電就越多,但是發電越多,單元就會受熱,會導致降低效率。氣流有助於散熱。理論而言,最理想的是明光低溫的條件,外加涼風或其他的人工冷卻方式。

Arduino 可充當傳感器和數據存儲器之間的媒介。製作永久性記錄以及根據需要顯示數據是再直白不過的事情了。本文將研究如何使用 TMP36 溫度傳感器記錄溫度數據,如何用一個簡單的發光二極體 (LED) 進行發光。

回頁首

Arduino

Arduino 是一種經濟的、可調節和可編程的開源微處理器,可讀取其模擬插腳處的電壓形式的數據輸入。請參考 參考資料 部分,以獲得有關此單元的基本信息,以及對遊戲環境下的該單元的 developerWorks 簡介。傳感器連接到特定的輸入插腳後,此單元便可通過編程的方式讀取這些插腳處的數據。而它處理該信息的方式則取決於硬體的配置。

從 Arduino 獲得數據最簡單的方式是讓此單元直接連接到主機計算機的 Universal Serial Bus (USB) 接口,像串行連接那樣讀取數據。不過,如果給定供電電源和一個備用通信信道,Arduino 也可以獨立於計算機工作。可以向 Arduino 添加擴展板(即 "shields"),將數據直接存儲到一個 microSD 內存卡內,通過 mini Web 伺服器在一個 cat5e 的網絡電纜上傳遞數據,甚至可以將數據無線傳輸到一個兼容的接收器中。

圖 1 顯示了一個裝了 Ethernet shield、cat5 Ethernet 及電源電纜的 Arduino 微處理器,此圖可讓您對此單元的規模有一個大致的了解。

圖 1. 具有 Ethernet shield 的 Arduino

某些傳感器自身就具有數據平滑內部電路。而有些較簡單的傳感器則不具備。因此,這裡就會有問題出現,比如 Arduino 應該在存儲或傳輸之前進行所有必需的處理,還是應該簡單地按原始觀測的數據那樣報告數據,以便日後在另一臺機器上處理這些數據。這兩種方式都是完全可以接受的。本項目選擇了只簡單報告原始的觀測數據供日後處理。這就提供了根據需要對算法進行更改的可能性。在應用平滑過程之後,就會固定該過程,且該過程可能是不可逆的。在實際的數據情況下,如果已經知道平滑的要求,那麼讓 Arduino 來做平滑處理就更為有意義了。

回頁首

傳感器

可用於 Arduino 的傳感器種類繁多。在這裡,TMP36 和 LED 的使用展示了一種簡單、經濟且容易重複的方式。

TMP36 是一個特殊構造的電晶體。給它一個電壓,它會返回根據不同組合連接器上的外界溫度而不斷改變的另一個電壓。只需記錄輸出電壓並執行一些簡單的計算,就能找到以攝氏度或華氏度為單位的溫度。參見 參考資料 部分,以獲得有關此晶片以及如何將其連接到 Arduino 的幫助。

在一個太陽能發電的環境中記錄溫度數據看起來再簡單不過了,但還是有一些困難需要克服。第一個問題與外界溫度有關,即決定將傳感器放到哪裡。為了避免錯誤的讀數,一般要將其放置於直射陽光之外、不受天氣影響且通風很好的一個地方。第二,太陽能板是由一些非同單元組成的,在相同的外界條件下,每個單元各自的運行溫度不同。在理想條件下,可以測試所有的單元,然後採用平均數。另一種方式是試驗一系列單元,以確定一個具有代表性的平均單元,然後再單獨監測這個單元。

一個 LED 既可以在給定了電壓且電流合適時亮起來,又可以在光照下生成電壓(請參見 參考資料 部分給出的 Mike Cook 的文章)。光照越強,Arduino 在連接插腳處讀取的電壓越多。設計為可對應於某個特定溫標的溫度傳感器有所不同,您必須通過試驗來了解如何將 LED 的輸出轉變成數值範圍已知的光強。

實用設置

假設您太陽能陣列的位置有電源,沒有 Ethernet 的區域網 (LAN) 插口,但是處於無線接入點的範圍之內。本地的電源可支撐這個無線接入點和 Arduino 的用電,且 Arduino 及 Ethernet shield 插入到中繼器。模擬的插腳 3 到 6 可供傳感器輸入使用;假設插腳 1 和 2 保留給 Ethernet shield 使用(查看 參考資料,以了解有關插腳使用的更多信息)。四個插腳意味著可以有四個傳感器,比如兩個溫度傳感器(一個用於外界溫度,一個用於面板溫度)、一個光傳感器和一個風速傳感器。對於一個被動面板設置而言,這已經是一組豐富的數據集了。

Arduino 和傳感器之間的短距離連接可以用常規的 cat3 電話線(兩對未屏蔽的 24 美國線標的電線)就可以實現。這意味著您將能夠使用現成可用的電話適配器和布線。

與只有 USB/串行連接的 Arduino 相比,Arduino 與 Ethernet shield 的組合使用並不那麼容易。以下是一些需要特別考慮的細節:

通常您無需輪詢沒有連接傳感器的插腳處的電壓。

通過一個圓柱式連接器,Arduino 能夠接受一定電壓範圍內的電源(有關更多細節,請參閱 參考資料)。模擬管腳電壓讀數緊密取決於 Arduino 的供電電壓。請確保您進行傳感器校準所用的供電單元與將來在現場使用的供電單元是相同的。高級用戶一般還會使用 Analog Reference (AREF) 管腳來提供參考電壓。

請將溫度傳感器放在太陽能單元的背後。管帶 (duct tape) 完全可以將該傳感器固定在單元背後,在短時間溫暖較高的情況下也沒有問題,但需要確保所有裸露的電線和連接器都用良好的絕緣膠帶保護好和絕緣好。在外界溫度為 20 攝氏度(69 華氏度)、有亮光照射並且有穩定的微風吹動下,單元的正常運行單元溫度 (NOCT) 上升到 50 攝氏度(124 華氏度)的情況並不罕見。

附帶 Ethernet shield 的 Arduino 對電源需求很大。如果您使用的是一組全充的 AA 電池來提供電壓和電流,那麼它們只能支撐幾個小時。高級用戶一般會用睡眠模式來控制用電。

圖 2 顯示了連接到太陽能架和面板的 TMP36 傳感器。在右側的黑色絕緣膠帶下,是一個感應金屬杆的外界溫度的傳感器。左側是用布基膠帶連接到太陽能單元背後的第二個傳感器。與普通的絕緣膠帶相比,布基膠帶的粘性要更好一些,至少短期內如此。

圖 2. 面板上的傳感器

圖 3 顯示了位於一個倒轉試管(用來做防雨保護)內的一個綠色 LED。

圖 3. 光傳感器

用來訪問所收集數據的 Arduino 程序(或 sketch,Arduino 對它的稱謂)是一個簡單的 Web 伺服器,可通過一個瀏覽器或其他腳本(參見 清單 1)訪問它。基本代碼由 Arduino 作為示例集合的一部分提供,並需要根據您自身的需求做一些修改(參見 參考資料)。

清單 1. Arduino web 伺服器

// based on example web server sketch from http://arduino.cc/#include <SPI.h>#include <Ethernet.h>//byte mac[] = { 0x!!, 0x!!, 0x!!, 0x!!, 0x!!, 0x!! };byte ip[] = { 192,168,0,xxx };Server server(80);//void setup(){ // start the Ethernet connection and the server: delay(10000); Ethernet.begin(mac, ip); server.begin();}//void loop(){ // listen for incoming clients Client client = server.available(); if (client) { // an http request ends with a blank line boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); // if you've gotten to the end of the line (received a newline // character) and the line is blank, the http request has ended, // so you can send a reply if (c == '\n' && currentLineIsBlank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); // // output the value of each analog input pin for (int analogChannel = 3; analogChannel < 7; analogChannel++) { //client.print("analog input "); client.print(analogChannel); client.print(" : "); client.print(analogRead(analogChannel)); client.println("<br />"); } break; } if (c == '\n') { // you're starting a new line currentLineIsBlank = true; } else if (c != '\r') { // you've gotten a character on the current line currentLineIsBlank = false; } } } // give the web browser time to receive the data delay(1); // close the connection: client.stop(); }}

清單 1 首先指定所需的 header 庫、Ethernet shield 的 Media Access Control (MAC) 地址以及 Internet Protocol (IP) 地址(通過該地址標識 Arduino)。它還設置了一個伺服器對象和一個變量來存儲可能以後會丟棄的值。setup() 子例程只在啟動時運行一次,以便初始化伺服器。loop() 子例程無限循環,等待一個 Hypertext Transfer Protocol (HTTP) 請求,然後用所需數據進行回答。為了響應此請求,它發送一個標準的 HTTP 響應頭、從相關管腳收集讀數並以文本格式發送數據包。在本例中,所提供的數據是該請求瞬間在模擬管腳 3、4、5 和 6 上所經歷的電壓值。沒有針對管腳 1 和 2 發送數據,因為這兩個管腳由 Arduino 板和 Ethernet shield 之間的接口使用。可更改通道的範圍來只讀取使用中的管腳的值。

響應應該類似於 清單 2 所示的輸出。

清單 2. Arduino 響應

3 : 2924 : 2885 : 2866 : 280

上述代碼給出了管腳的編號以及 0 至 1023 範圍內的數值,兩個數字之間以冒號分隔。輸出也可能比僅指定模擬管腳編號更為具體,但是本機編號靈活性更好,因為它不會將任何一個管腳束縛到某一項作業上。

回頁首

數據存儲

接下來要考慮的事情是數據如何存儲。在本例中,將使用 MySQL 作為後端,如 清單 3 所示。

清單 3. 後端表

CREATE TABLE IF NOT EXISTS `readings` ( `readid` int(11) NOT NULL AUTO_INCREMENT, `tstamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `pin` int(11) NOT NULL, `value` float NOT NULL, PRIMARY KEY (`readid`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

此代碼會創建一個表,其中包含 ID 欄位、默認為此項的系統時間的時間戳、讀數所對應的管腳以及實際讀數所對應的一個欄位,在本例中,存儲用一個浮點數表示。

回頁首

數據收集和整理

定義好後端之後,現在就可以使用 PHP 來查詢此 Arduino、分析響應以及在後端存儲觀察結果,如 清單 4 內所示。

清單 4. PHP 數據記錄腳本

<?php// reader for panel monitors$fp = fopen("http://192.168.0.xxx","r");$mysqli = new mysqli("$server",$username,$password,$mysolar);while ($line = fgets($fp,32)) { $line = str_replace("
","",trim($line)); $key = substr($line,0,1); switch ($key) { case 3: // things to do break; case 4: // things to do break; case 5: // this is light from LED recorded as is $val = (int) substr($line,4); $sql = "insert into readings values(NULL,NULL,$key,$val)"; $result = $mysqli->query($sql); //echo "val = $val\n"; break; case 6: // temperature from a TMP36 attached to back of solar cell $val = (int) substr($line,4); $tmp = degc($val); // convert to Celsius/Centigrade $tmp -= 5; // calibration $sql = "insert into readings values(NULL,NULL,$key,$tmp)"; $result = $mysqli->query($sql); break; default: //echo "Found strange key $key!\n"; break; }}function degc($v) { $t = $v * (5/1024); $t -= 0.5; $t *= 100; return round($t,1);}?>

腳本首先在一個文件指針內打開對 Arduino 的連接,以便讀取它。然後打開對 MySQL 後端的連接,以便處理數據輸出。之後它會等待來自 Arduino 的響應,並進入某個循環來讀取所報告的行。這四個預期行中的任何一行都會包含一個 Hypertext Markup Language (HTML) 回車標記,這使得在測試的同時在瀏覽器中讀取輸出變得更為簡單。本腳本會刪除這個回車。結果行以管腳編號開始,後跟所找到的電壓。以管腳編號為中心,然後再進入到一個 switch 結構,根據連接到此管腳的傳感器來採取不同的措施。

校準也是在這一步中進行。也就是說,如果您發現某個傳感器總是偏高於某個特定數值,那麼就可以減去該數值後再報告最終的數值。有一個特定的函數可以將從 TMP36 測得的毫伏數轉變為攝氏度,範圍也將從 0-1023 轉改為從 1-5,找到零點後即可將結果縮放 100。最後,它將處理好結果,並將四捨五入後的數值存儲在資料庫內。那麼如何才能知道傳感器是否需要校正呢?其中的一個方法是測量行為類似於針對某個點的單元,並記錄輻射率溫度讀取器。

insert SQL 語句以兩個 NULL 值開頭,允許後端用第一個 NULL 值替代自增量的 ID 號,用第二個 NULL 值替換當前的時間戳,然後插入此管腳的編號以及該管腳處的讀數。您從 crontab 列表使用此腳本進行常規的處理,也可以根據需要從命令行運行該腳本。

回頁首

圖表顯示

後端填充好數據後,下一個任務就是讓讀者很容易讀懂這些數據。可用的圖表庫有很多,各自有各自的優缺點。Flotr(參見 參考資料)是使用 JavaScript 在瀏覽器窗口中顯示圖表的一個例子。清單 5 中所示的代碼可以讀取存儲在讀數表中的數據,然後以不同的圖表顯示溫度和光數據。

清單 5. 使用 Flotr 的 PHP 圖表生成程序

<?php// read solar data and display in flotr chart$doctype = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'><head><title>LOG reader</title><meta http-equiv='Content-Type' content='text/html;charset=UTF-8' /><script language=\"javascript\" type=\"text/javascript\" src=\"../flotr/lib/prototype.js\"></script><script language=\"javascript\" type=\"text/javascript\" src=\"../flotr/lib/base64.js\"></script><script language=\"javascript\" type=\"text/javascript\" src=\"../flotr/lib/canvas2image.js\"></script><script language=\"javascript\" type=\"text/javascript\" src=\"../flotr/lib/canvastext.js\"></script><script language=\"javascript\" type=\"text/javascript\" src=\"../flotr/flotr.js\"></script></head><body>";$mysqli = new mysqli($server,$username,$password,$dbname);// get temp and light data and chart it$sensors = array('Temp'=>6,"Light"=>5);foreach ($sensors as $label=>$sensor) { $sql = "select tstamp,value from readings where pin=$sensor order by tstamp asc"; $result = $mysqli->query($sql) or die($mysqli->error); $mydata1 = "[ "; while ($row = $result->fetch_array()) { $cfdoy = $row[0]; $cfdoy = (strtotime($cfdoy)-(5*60*60))*1000; $cfamt = $row[1]; $mydata1 .= "[ $cfdoy , $cfamt ] ,"; } $mydata1 = substr($mydata1,0,-2)." ]"; $leg = ($sensor == 18) ? "dC" : "mV"; $title = ($sensor == 18) ? "Cell Temperature" : "Light"; $conth .= "<div>$label</div>\n <div id=\"container$sensor\" style='width:600px; height:250px;'> <script type='text/javascript'> var f = Flotr.draw( $('container$sensor'), [ { // => first series data: ".$mydata1.", label: '$leg', htmlText: false, lines: {show: true} }], { xaxis: { title: 'Time', mode:'time', noTicks: 10, labelsAngle:45 }, yaxis: { title: '$leg', noTicks: 8 }, title: '$title', selection: { mode: 'x', color: '#B6D9FF', fps: 20 }, mouse: { track: true, relative: true, margin: 5, trackFormatter: function(obj) { var dd = parseInt(obj.x); var d = new Date(dd); return (d.getHours()+4) + ':' + d.getMinutes() + ' | ' + obj.y; }, position: 'sw', lineColor: '#FF3F19', trackDecimals: 1, sensibility: 2, fillOpacity: 0.4 } } ); </script></div>";}echo "$doctype"."<html><body>".$conth."</body></html>";?>

清單 5 內的代碼從定義一個字符串作為 Extensible Hypertext Markup Language (XHTML) 輸出的開始,其中包括對 JavaScript Flotr 庫的引用。然後它打開對數據存儲於的 MySQL 伺服器的連接,設置一個數組來包含所使用的管腳編號,遍歷這些數組元素以獲取相關傳感器的數據,並將其代入 JavaScript 腳本。

腳本被設置成將兩個圖表中的 X 軸數據視為 24 小時的時間值,其中包含滑鼠指導,允許您將滑鼠懸停在所生成的線上並顯示相關坐標。

在顯示階段,您可能會考慮到平滑。這可以是使用一個移動平均量或者使用其他基於權重的模式來中和極端值。

使用根據此設置生成的真實數據,每隔五分鐘進行一次取樣,此圖表腳本生成了如 圖 4 所示的未平滑化的輸出。在安大略省的五月,天氣晴朗,偶爾有風。您可以從 下載 部分獲得此數據的一個副本。

圖 4. 示例輸出

請注意光級和單元溫度之間的緊密校正,這也是預期進行的操作。

結束語

開源 Arduino 可以作為太陽能發電環境中的傳感器數據的一個簡單且可調整的處理器,它非常有用。如今可供使用的傳感器很多,只要傳感器能生成合適的輸出電壓,或是一個可由 Arduino 明確登記的數字輸出,它就能夠收集並報告該數據。TMP36 和 LED 是您可以獲得的最基本的傳感器,高級用戶將需要從這些傳感器進行升級。

對變化條件下的面板的行為進行良好的編碼,這對光電單元的管理者會很有幫助,因為就給定的數據記錄而言,它們可以形成觀察的基線。管理者以後可以根據推斷和建議進行相應的更改,然後再評估面板操控是否已經產生了積極的效果。

相關焦點

  • 教你從DIY開始玩arduino開源硬體
    arduino mblock scratch mind+ 創客 stem steam 聖菲小學 張子紅 機器人隨著教育部將STEAM寫入《義務教育小學科學課程標準》,國務院關於印發《新一代人工智慧發展規劃》的通知等文件的發布,STEAM教育已駛往發展的快車道
  • 樂創物聯物聯網架構之硬體層中間件Arduino簡介
    我叫樂創物聯,我主要是做工業自動化方面和物聯網方面的。了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大,後續也會自主去學習一下。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學樂創物聯物聯網架構的學習。
  • 用Arduino開發物聯網設備之初識Arduino
    這個問題其實是有一點混亂的,因為arduino既可以指硬體,也可以指軟體。它其實是指的即是硬體又是軟體,我們平時所說的多數指的是它的軟體開發平臺,也就是軟體部分。硬體部分:最初Arduino硬體只有那麼幾種,uno、mini等,但是現在經過這麼多年的發展,越來越多的硬體支持了arduino開發環境,所以現在也很難去界定什麼是血統純正的arduino硬體了。
  • 【蘑菇雲課堂】Arduino入門教程01 -- 驅動安裝及下載Blink程序
    Arduino包含硬體和軟體,能通過各種各樣的傳感器來感知環境,通過控制燈光、馬達和其他的裝置來反饋、影響環境。
  • 一個用 Arduino 實現的完整項目
    用戶(我的女兒)可以用鍵盤從菜單上選擇一種算數運算來學習。會有一些難度級別:在選擇運算後,難度級別會顯示出來。根據選擇的難度級別,會隨機顯示出一些問題,用戶可以用鍵盤迴答這些問題。用戶可以在確認前修改自己的答案。在確認答案後,根據正確與否會顯示出一條信息。如果三次答錯,將會顯示出正確答案。
  • 開源軟體之Arduino:用它你可以自己編程製作機器人
    這是開源系列文章的編程類,不過說起Arduino,雖然這個項目本身的確是開源的,不過你要說它只是開源軟體,顯然太局限太不專業了。其實Arduino是包含硬體開發板和軟體IDE的方便靈活、易於上手的開源電子原型平臺。
  • 一文解密,php短視頻源碼是什麼
    所謂的php短視頻源碼,大多是指管理後臺開發語言為php的短視頻源碼,實際上,「php短視頻源碼」是個偽命題,沒有完全由php開發語言寫的短視頻源碼,在安卓端、IOS端以及管理後端的軟體源碼,都是由不同的開發語言組合而成的。
  • Greenplum 一體機硬體配置正式開源 - OSCHINA - 中文開源技術交流...
    如今,DELL將Greenplum資料庫一體機的硬體配置也開放給了Greenplum社區。Greenplum成為了全球首個MPP數據倉庫的軟體和硬體同時開源的平臺。我們堅信開放是未來的趨勢。在過去的兩年中,Greenplum團隊持續地幫助客戶設計、測試高級通用硬體平臺。
  • 匯總PHP核心技術經典面試題
    mysql_fetch_row () 和 mysql_fetch_array () 有什麼分別?mysql_fetch_row () 把資料庫的一列儲存在一個以零為基數的數組中,第一欄在數組的索引 0,第二欄在索引 1,依此類推。
  • 什麼是ETL,如何使用spark,mysql,python構建大數據平臺
    1.數據提取-從類似或者不同的源中檢索數據來進行進一步的數據處理和數據存儲的過程。2.數據轉換-在數據處理過程中,將清除數據,並修改或刪除不正確或不正確的記錄。3.數據加載-將處理後的數據加載到目標系統中,例如數據倉庫或NoSQL或RDBMS。
  • 你也能用Arduino製作開源呼吸機,這家義大利醫院還用3D列印閥門
    【新智元導讀】國外達人手把手教你自己製作低成本開源呼吸機,只需網購面罩、管子和一些必要零件,接上arduino開發板,就能DIY一個重症呼吸機,危難時候絕對救命!而義大利重災區醫院利用3D列印的呼吸機閥門成功解救了10名重症患者。
  • 媒體評熱門開源軟體Top100 17173技術大俠上榜
    做開源中國六年有餘,這六年時間國內的開源蓬勃發展,從一開始的使用到貢獻,到推出自己很多的開源軟體,而且還有很多軟體被國外的認可。中國是開源不可忽視的力量。而我們這個榜單也是從這些國人開發、主要參與開發或者基於國外開源軟體進行改進並形成獨立版本的軟體中,根據該軟體的訪問、收藏、下載等多個角度, 從而得出前 100 名最受歡迎的開源軟體。
  • 軟體時代|開源,希冀還是噩夢?
    而整車廠軟體部門在過去數十年內的工作重點反而是事務性的,例如為一級供應商制定軟體架構標準和通信標準,以及在整車層面上對來自不同供應商電子設備的適配和整合。越來越多的整車企業甚至將軟硬體的整合適配工作也外包給工程諮詢公司。
  • Linux內核貢獻全球第二,開源四大基礎軟體,為什麼華為要啃下這塊...
    華為鯤鵬計算領域副總裁江大勇告訴CSDN,在硬體方面,ARM這樣的主流處理器從百核甚至到千核的多核方向發展,但問題在於,核數的線性增長並不意味著算力的效能會隨之增長,因為算力的分配和調度複雜度的增加反而會消耗一部分算力的效能。與此同時,端邊雲協同的趨勢對ARM計算架構也提出了相應需求,而X86、ARM和xPU的異構計算框架的趨勢也正在形成。
  • Arduino在嵌入式開發中應用案例之arduino點亮LED
    Arduino是一款便捷靈活、方便上手的開源電子原型平臺。     包含硬體(各種型號的Arduino板)和軟體(Arduino IDE)。由一個歐洲開發團隊於2005年冬季開發。其成員包括Massimo Banzi、David CuarTIelles、Tom Igoe、Gianluca MarTIno、David Mellis和Nicholas ZambetTI等。     本分享一個通過arduino點亮LED的案例。
  • 如何讓自己的軟體變現?開源提供了成功的路線圖
    開源+大數據+搜索在企業領域,搜索與雲計算、大數據、物聯網等技術,以及開源商業模式的結合,誕生了Elastic。在荷蘭誕生在美國成長的Elastic,就是一手抓住搜索,一手抓住開源,利用創新的搜尋引擎技術和開源軟體,被全球被數以百萬計的開發人員和成千上萬的客戶所信賴,成為大數據搜索和數據實時處理領域的頭部企業。
  • arduino和樹莓派
    Arduino是一款便捷靈活、方便上手的開源電子原型平臺,包含硬體(各種型號的Arduino板)和軟體(ArduinoIDE)。
  • 國產信息基礎軟硬體行業深度報告:開源、遷移、上雲、生態
    在過去的數十年間,國產基礎軟硬體的多種技術架 構和路線並存,上層應用需要面臨較為複雜的底層基礎。而且從底層硬體的性能角度,短期內也難 以全方位趕超國際巨頭廠商。另外,雖然國產軟硬體的兼容體系已經基本建立,但兼容並不等同於 「好用」。通過上雲,可以一定程度地屏蔽底層硬體的複雜度,可以有效地提升用戶體驗度。
  • Hadoop和大數據:60款頂級開源工具
    IBM更是非常看好開源大數據工具,派出了3500名研究人員開發Apache Spark,這個工具是Hadoop生態系統的一部分。這回我們推出了最新的頂級開源大數據工具排行榜。這個領域最近方興未艾,許多新項目紛紛啟動。許多最知名的項目由Apache基金會管理,與Hadoop密切相關。請注意:本文不是要搞什麼排名;相反,項目按類別加以介紹。
  • 乾貨:機器人開源作業系統ROS
    導讀前不久,John 為大家介紹過物聯網開源作業系統,或許大家還記憶猶新。今天,要介紹的是一款機器人領域的開源作業系統:ROS。簡介ROS,英文全稱Robot Operating System,即機器人作業系統。它的目標是為機器人軟體開發者的提供了一個靈活的框架,其中包含一些列的工具、庫和約定。