발전이 더 깨끗하고 스마트한 원천으로 이동하면서 소형 태양광 패널 배열은 지붕과 뒤뜰에서 나타나고 있다. 이러한 일부 설치는 모니터링과 자동 조정으로 정교화되며, 또 다른 일부는 자기 인식이 없다. 후자의 경우에 소유자가 기본 운영 데이터의 우수하고 저렴한 원본을 보유하는 데 여전히 유용하다.
독자는 전지판이 주어진 조건에서 최적으로 작동하고 있는지 알고 싶어한다. 일광과 온도 모두 풍속과 다른 요인들과 함께 전지판 출력에 영향을 줄 수 있다. 일광이 더 많으면 전력을 더 많이 발생시키지만 전력이 더 많으면 셀이 뜨겁게 되어, 셀의 효율성이 줄어든다. 기류는 열이 사라지는 데 도움을 준다. 이상적으로는 밝은 일광과 냉각 조건, 훌륭한 바람 또는 다른 인공적인 냉각을 원한다.
Arduino는 센서와 데이터 스토리지 사이에 중개자로서 역할을 한다. 이는 영구적인 레코드를 만들고 데이터를 필요한 대로 표시하기 위해 간단한 문제이다. 이 기사는 TMP36 온도 센서와 일광에 대한 간단한 발광 다이오드(LED)를 사용하여 온도의 데이터 로깅을 조사한다.
Arduino는 아날로그 핀에서 전압의 형태로 데이터 입력을 읽을 수 있는 저렴하고 적응력이 높은 프로그래밍 가능한 오픈 소스 마이크로프로세서이다. 해당 유닛에 대한 기본적인 정보와 게임 컨텍스트에서 이러한 유닛에 대한 훌륭한 developerWorks 소개글은 참고자료를 참조한다. 특정 입력 핀에 연결된 센서를 통해 해당 유닛은 프로그래밍 방식으로 이러한 핀에서 데이터를 읽는다. 이러한 정보와 관련되어 수행하는 것은 하드웨어를 구성하는 방법에 달려있다.
Arduino에서 데이터를 얻는 가장 간단한 방법은 직렬 연결인 것처럼 데이터를 읽는 호스트 컴퓨터 범용 직렬 버스(USB)로 직접 연결된 유닛을 사용하는 것이다. 하지만 Arduino는 전력 공급 및 대체 통신 채널이 주어지면 컴퓨터에 독립적으로 작동할 수도 있다. 확장 보드("실드")를 Arduino에 추가하여 데이터를 마이크로SD 메모리 카드에 직접 저장하고, 미니 웹 서버를 통해 cat5e 네트워크 케이블에 대해 데이터를 전송하거나 호환 가능한 수신기로 데이터를 무선으로 전송할 수도 있다.
그림 1은 이더넷 실드가 마운트되고 cat5 이더넷 및 전원 공급 케이블이 연결된 Arduino 마이크로프로세서를 보여주며, 이는 독자에게 유닛의 크기에 대한 개념을 제공한다.
그림 1. 이더넷 실드가 있는 Arduino
일부 센서는 내부 회로를 원활하게 하는 자체 데이터가 있다. 더 간단한 것은 없다. 그러므로, Arduino가 스토리지 또는 전송 이전에 필수적인 처리를 수행해야 하는지 여부 또는 데이터가 다른 머신에서 향후 처리를 위해 관찰되는 대로 원시로 보고되어야 하는지 여부에 대한 질문을 하게 된다. 둘 중 어느 것이나 완전히 받아들일 수 있다. 이 프로젝트는 향후 처리를 위해 원시 관찰을 보고하기만 하면 된다. 이는 필요한 경우 언제나 원활히 하기 위해 알고리즘을 변경하는 옵션을 제공한다. 원활하게 하는 프로세스가 적용될 때, 이는 굳혀져서 거의 되돌릴 수 없다. 원활화 요구사항이 올바르게 이해되는 실시간 데이터 상황에서 Arduino가 원활하게 만드는 것이 더 합리적이 된다.
Arduino로 작업하기 위해 광범위한 센서를 얻을 수 있다. 여기에서 TMP36 및 LED는 간단하고 저렴하며 간편하게 반복 가능한 대안을 제공한다.
TMP36은 특별하게 구성된 트랜지스터이다. 전압을 할당하면 커넥터의 다른 조합에서 주변 온도에 따라 일관되게 변화하는 또 다른 전압을 리턴한다. 출력 전압을 기록하고 환경 설정에 따라 섭씨 또는 화씨 단위로 온도를 찾는 일부 간단한 산수를 수행한다. 칩에 대한 도움말과 Arduino에 이를 연결하는 방법은 참고자료를 참조한다.
태양열 발생 맥락에서 온도 데이터를 로그하는 것이 매우 간단한 것처럼 보이지만 극복해야 하는 몇 가지 장애물이 있다. 첫 번째 문제점은 주변 온도와 관련되어 센서를 찾는 위치를 식별하는 것이다. 잘못된 읽기를 방지하기 위해 독자는 직접적인 햇빛에서부터 충분한 환기를 제공하는 비바람에 견디는 위치에 이를 놓으려고 한다. 두 번째로, 태양 전지판은 같지 않은 많은 셀들로 이루어져 있으며, 각각은 동일한 주변 조건에서 자체적인 온도로 실행한다. 이상적인 상황에서 독자는 셀을 모두 측정하고 평균을 취한다. 대안은 대표 평균 셀을 식별하고 이를 단독으로 모니터하기 위해 많은 셀들을 시도하는 것이다.
LED는 적절한 전압으로 전류가 할당될 때 빛을 밝히고 일광에 노출될 때 전압을 생성할 수 있다(참고자료에서 Mike Cook의 기사 참조). 일광이 더 훌륭하게 집약되면 될수록 Arduino가 연결된 핀에서 확인하는 전압이 더 많아진다. 온도 센서와는 달리, 이는 특정 온도 규모로 맵핑 가능하게 설계되었다. 독자가 LED로부터 나온 출력이 알려진 규모에서 일광 집약도를 어떻게 변환하는지 확인하기 위해 실험해야 한다.
독자의 태양열 배열 위치에 전력이 있고 연결할 이더넷 근거리 통신망(LAN) 잭은 없지만 무선 액세스 지점 범위 내에 있다고 가정한다. 그러면 로컬 전력은 액세스 지점과 Arduino 둘 다를 Arduino와 함께 반복기에 연결된 이더넷 실드로 실행할 수 있다. 그러면 센서 입력에 사용 가능한 아날로그 핀 3에서 6까지를 보유한다. 핀 1과 2는 이더넷 실드가 사용하도록 예약되었다고 가정한다(핀 사용에 대한 자세한 내용은 참고자료 참조). 네 개의 핀은 네 개의 센서를 보유할 수 있음을 의미하며, 두 개가 온도 센서라고 하면, 하나는 주변에 대한 것이고 나머지는 전지판 온도, 일광 센서 및 풍속 센서에 대한 것이다. 이는 수동적 패널 설정을 위한 풍부한 데이터 세트이다.
정규 cat3 전화 케이블로 단거리에 대해 Arduino와 센서 사이에 실제 연결을 달성할 수 있으며, 이는 24 미국 전선 규격(AWG) 선의 두 가지 쌍의 비 차폐(unshielded) 번들이다. 이는 바로 사용 가능한 전화기 어댑터와 케이블링을 사용하는 옵션도 제공한다.
Arduino와 이더넷 실드 조합으로 작업하는 것은 단독으로 USB/직렬 연결된 Arduino만큼 간단하지 않다. 여기서는 다음 사항을 자세히 고려해보자.
- 정상적으로는 연결할 센서가 없는 핀으로 전압을 폴(poll)하지 않는다.
- 배럴 커넥터를 통해 Arduino는 다른 전압의 범위에서 전력을 허용할 수 있다(세부사항은 참고자료 참조). 아날로그 핀 전압 읽기는 Arduino로의 전력 공급의 전압에 상당 부분 의존하는 것처럼 보인다. 현장에서 사용하려는 것과 동일한 전력 공급 단위로 센서의 교정을 수행하도록 한다. 고급 사용자는 AREF(Analog Reference) 핀을 사용하여 참조 전압을 제공한다.
- 온도 센서를 태양열 셀의 뒤쪽에 연결한다. 덕트 테이프는 단기간 동안 따뜻한 조건에서도 셀에 대해 센서를 보유하는 데 매우 효과적으로 보이지만, 노출된 선 또는 커넥터가 우수한 전기 테이프로 보호되고 단열되도록 한다. 주변 온도가 섭씨 20도(화씨 69도)이고 안정된 바람이 분다면 밝은 일광에서 섭씨 50도(화씨 124도)의 정상 운영 셀 온도(NOCT)로 셀이 올라가는 것이 일반적이다.
- 이더넷 실드가 있는 Arduino는 매우 전력이 부족한 상태이다. 완전히 충전된 AA 크기 배터리 세트를 사용하여 전압과 전류를 공급한다면 겨우 몇 시간 동안만 유지된다. 고급 사용자는 전력 사용을 제어하는 데 사용할 수 있는 절전 모드를 살펴본다.
그림 2는 태양열 랙과 전지판에 연결된 TMP36 센서를 보여준다. 오른쪽에 검은색 전기 테이프 아래 금속 기둥에서부터 나온 주변 온도에 대한 센서가 있다. 왼쪽에 덕트 테이프로 태양열 셀의 뒤쪽에 연결된 두 번째 센서가 있다. 덕트 테이프는 최소한 단기간 동안에는 소비자 등급 전기 테이프보다 훨씬 더 나은 접착을 유지한다.
그림 2. 전지판에서 센서
그림 3은 비로부터 보호하기 위한 전도된 테스트 튜브 안에 있는 녹색 LED를 보여준다.
그림 3. 일광 센서
수집된 데이터로 액세스를 허용하는 Arduino 프로그램(또는 Arduino는 sketch라고 함)은 브라우저 또는 다른 스크립트로 액세스하는 간단한 웹 서버이다(목록 1 참조). 기본 코드는 예제 콜렉션의 일부로 Arduino로 제공되고 자체 요구사항에 적응하기 위해 어느 정도의 편집을 요구한다(참고자료 참조).
리스트 1. Arduino 웹 서버
// 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은 필요한 헤더 라이브러리, 이더넷 실드의 MAC(Media Access Control) 주소 및
해당 Arduino를 알려고 하는 IP(Internet Protocol) 주소를 지정하여 시작한다. 이는 또한 서버 오브젝트와
나중에 버려질 수 있는 값을 저장하는 데 사용되는 변수를 설정한다. setup() 서브루틴은
시작 시 한 번만 실행하고 서버를 초기화한다. 그러면
loop() 서브루틴은 영구적으로 루프하여,
HTTP(Hypertext Transfer Protocol) 요청에 대기한 다음 필요한 데이터로 응답한다. 요청에 응답하기 위해
이는 표준 HTTP 응답 헤더를 전송하고, 관련된 핀으로부터 읽기를 수집하며, 텍스트 형식으로
데이터 패키지를 전송한다. 이 경우에 제공된 데이터는
아날로그 핀 3, 4, 5 및 6에서 요청의 순간에 경험한 전압이다. 핀 1과 2는 Arduino 보드와 이더넷 실드
사이에 인터페이스로 사용되기 때문에 이들에 대한 데이터는 전송되지 않는다. 사용 중인
핀만 읽도록 채널의 범위를 변경한다.
응답은 목록 2에 나타난 출력과 같다.
리스트 2. Arduino 응답
3 : 292 4 : 288 5 : 286 6 : 280 |
이는 핀의 수와 0에서 1023까지의 규모의 값을 제공하며, 여기에서 두 가지 숫자는 콜론으로 구별된다. 출력은 아날로그 핀 숫자를 지정하는 것보다 더 구체적일 수 있지만, 일반 숫자는 어느 하나의 핀을 어느 한 가지 작업으로 제한하지 않기 때문에 유연성을 허용한다.
다음으로 고려할 사항은 데이터가 어떻게 저장되는 가이다. 이 경우에 독자는 목록 3과 같이 백엔드로 MySQL을 사용하는 중이다.
리스트 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 필드, 입력의 시스템 시간으로 기본값 지정한 시간소인, 읽기와 관련된 핀 및 실제 읽기에 대한 필드로 테이블을 작성하며, 이 경우에 이는 부동으로 저장된다.
백엔드를 정의하면 Arduino를 쿼리하고, 응답을 분석하며 백엔드에서 관찰을 저장하기 위해 이제 PHP를 사용할 수 있으며, 이는 목록 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(" |
이 스크립트는 읽기를 위한 파일 포인터에서 Arduino로 연결을 열어 시작한다. 그러면 데이터
출력을 위해 MySQL 백엔드로 연결을 연다. 그 다음에 Arduino에서부터 응답에 대기하고 보고된
행들을 읽기 위해 루프로 들어간다. 네 개의 예상된 행은 각각
HTML(Hypertext Markup Language) 구분 태그가 들어 있으며, 이로 인해 테스트하는 동안 브라우저에서
출력을 읽는 데 더 간편해진다. 스크립트는 이러한 구분을 제거한다. 결과 행은 발견된
전압으로 이어지는 핀의 수로 시작한다. 핀 숫자에 주목하면, 이는 어느 센서가 핀에 연결되는지에
따라 다른 조치를 취하는 switch 구조로 들어간다.
교정은 이 단계에서 수행한다. 다시 말해서, 센서가 특정 값으로 일관적으로 과다 예측하는 것을 발견하면 최종값이 보고되기 전에 해당 값을 뺄 수 있다. TMP36에서 나온 측정된 밀리볼트를 섭씨 온도로 변환하기 위한 특정한 기능이 있다. 이는 0-1023의 범위를 1-5로 변경하고, 영점을 찾으며 100으로 결과를 규모 조정한다. 마지막으로 이는 데이터베이스에서 정리 및 교정된 값을 저장한다. 센서가 정정이 필요한지 어떻게 알까? 한 가지 방법은 점과 유사하게 행동하는 셀을 측정하고 방사율 온도 리더를 발사하는 것이다.
insert SQL문은 두 개의
NULL 값으로 시작하며, 백엔드가 첫 번째 SQL문에 대해 자동 증분
ID 숫자를 대체하고 두 번째 SQL문에 대해 전류 시간소인을 대체하도록 허용한다. 그러면 이는 핀의 수와 해당 핀에 대한
읽기에 연결한다. 정규 처리에 대한 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의 코드는 JavaScript Flotr 라이브러리로 참조를 포함하여 XHTML(Extensible Hypertext Markup Language) 출력의 시작인 문자열을 정의하여 시작한다. 그러면 데이터가 저장되어 사용한 핀의 수가 들어 있는 배열을 설정하는 MySQL 서버로 연결을 열고, 관련된 센서에 대한 데이터를 페치하고 이를 JavaScript 스크립트로 대체하는 배열 요소로 단계별로 안내한다.
스크립트는 차트 둘 다에 대해 24시간 시계에서 시간 값으로 X축 데이터를 처리하기 위해 설정되고, 제작된 행의 위에 갖다 대어 관련된 좌표를 표시하도록 허용하는 마우스 지시사항이 더 많이 들어있다.
표시장치 단계 도중에 원활화(smoothing)에 대해 생각할 수 있다. 이는 이동 평균값 또는 극단적인 값을 알맞게 하는 다른 중량 기반 스킴의 사용이 될 수 있다.
매 5분마다 샘플로 취합되는 이러한 설정에서 생성된 실제 데이터를 사용하면 차팅 스크립트는 원활화 없이 그림 4에 표시된 출력을 작성한다. 조건은 가끔 구름이 끼는 온타리오 주의 맑은 5월이다. 다운로드 섹션에서부터 데이터의 사본을 다운로드할 수 있다.
그림 4. 예제 출력
예상되는 일광 레벨과 셀 온도 사이에 인접한 상관을 참고하자.
오픈 소스 Arduino는 태양열 생성 맥락에서 센서 데이터에 대해 간단하고 적응력이 높은 프로세서로 유용하다. 광범위한 센서가 사용 가능하며, 센서가 적절한 출력 전압 또는 대안으로 Arduino로 깔끔하게 등록될 수 있는 디지털 출력을 제작하는 한, 이는 해당 데이터를 수집하고 보고할 수 있다. 센서로서 TMP36 및 LED는 대략 기본적으로 확보할 수 있는 것이다.—진지한 사용자들은 이러한 대안으로부터 업그레이드할 것이다.
다양한 조건에서 패널의 작동에 대한 우수한 숫자는 광전지 유닛의 관리자에게 유용할 수 있다. 왜냐하면, 데이터 레코드가 주어지면 이는 관찰의 기준선을 형성할 수 있기 때문이다. 그러면 관리자는 추론과 조언에 따라 변경할 수 있으며 그 다음에 향후 패널 조작이 긍정적인 효과가 있는지 없는지 여부를 평가할 수 있다.
| 설명 | 이름 | 크기 | 다운로드 방식 |
|---|---|---|---|
| Data sample | readings.sql.zip | 1KB | HTTP |
교육
- "Building an Arduino-based laser game"(Duane O'Brien,
developerWorks, 2008년 12월): Arduino에 대한 훌륭한 소개글을 읽어보고 일광 감지기로서
LED를 설정하는 방법에 대한 지시사항을 찾아보자.
- LED
Sensing: LED가 일광 센서로서 작동할 수 있는 방법과 이유의 배후에 깔려있는 물리학에 대해
자세히 알아보자.
-
Arduino Forum: 다른 사용자들로부터 Arduino에 대해 자세히 배워보자.
- Arduino
튜토리얼: 외부 전력 공급에 대한 제안이 들어 있는 이 튜토리얼에서부터 Arduino를
설정하는 것에 대해 자세히 배워보자.
-
Arduino Shield List
핀 사용법: 107개의 제조업체에서 나온 244개의 계속 늘어나는 실드에 대한 핀 사용법 세부사항을
확인하자.
-
Arduino and
TMP36: Arduino 및 TMP36을 연결하는 것에 대한 자세한 지시사항을 확인하자.
-
Arduino as a web
server: Arduino 튜토리얼을 따라 이더넷 실드와 Arduino를 사용하여
간단한 웹 서버를 작성하자.
- Flotr: Flotr
JavaScript 차팅 라이브러리와 관련된 정보와 예제를 찾아보자.
- TMP36, voltage output temperature sensor:
센서에 대한 자세한 기술 정보를 확인하자.
- developerWorks PHP content: IBM 사이트에서 PHP 컨텐츠를
찾아보자.
- Twitter의 developerWorks: developerWorks의 트윗(tweet)을 팔로우(follow)하자.
- PHP 프로젝트 자원: PHP 기술을 펼쳐보자.
- 관심 이벤트: IBM 오픈 소스 개발자에게 유익한 컨퍼런스, 기술 박람회, 웹 캐스트 및 기타 행사를 확인하고 참여하자.
- developerWorks
오픈 소스 영역: 오픈 소스 기술로 개발하고 이러한 기술을 IBM 제품과 함께
사용하는 데 도움이 되는 광범위한 사용법 정보, 도구 및 프로젝트 업데이트를 찾아보자.
제품 및 기술
- Arduino: 기본 사이트에 방문하자.
- MySQL community
edition: 이러한 오픈 소스 데이터베이스에 무료로 다운로드 가능한 버전에 액세스하자.
- PHP:
이러한 범용 스크립팅 언어의 최신 릴리스를 확인하자.
- IBM 시험판 소프트웨어: 다운로드하거나 DVD로 이용할 수 있는 IBM 시험판 소프트웨어를 사용하여 차기 오픈 소스 개발 프로젝트를 강화하자.
토론
- developerWorks
커뮤니티: 개발자가 운영하고 있는 블로그, 포럼, 그룹 및 위키를 살펴보면서
다른 developerWorks 사용자와 의견을 나눌 수 있다. developerWorks 커뮤니티에서
Real world open source 그룹을
빌드하는 데 도움을 주자.
Colin Beckingham은 캐나다 온타리오에 거주하는 프리랜서 연구원이자 작가이며 프로그래머이다. 킹스턴의 Queen's University와 University of Windsor에서 학위를 받았고 은행 업무, 원예, 경마, 교육, 공무원 행정 업무, 소매 및 여행과 관광 업종을 포함한 다양한 분야에 종사해왔다. 데이터베이스 애플리케이션과 다양한 신문, 잡지 및 온라인 기사의 저자이며, 관심 연구 분야는 오픈 소스 프로그래밍, VoIP 및 Linux용 음성 제어 애플리케이션이다. Colin의 이메일 주소는 colbec@start.ca이다.