라즈베리파이 GPIO를 웹으로 제어하는 테스트.

파이썬으로 웹서버를 만들고, 그 서버에서 웹 요청에 따라 GPIO포트를 ON/OFF

SSH로 서버 모니터링하는 스크립트 작성하는 데...

좋은 모듈이 있어 설치하려다가 python 2.7버전 윈도우용 모듈이 없어 귀찮게 빌드해야 하나 생각하는데

어떤 외쿡분이 고맙게도 미리 빌드해줘서 백업용으로 블로그에 올림.

 

paramiko라는 모듈인데 pycrypto하고도 의존성이 있음.

 

pycrypto-2.4.1.win32-py2.7.exe 

paramiko-1.7.7.1.win32_Jaraco_patch.exe

윈도우 시스템에서 WMI 인터페이스에 WQL(SQL for WMI)문을 통해 질의하여, 시스템의 각종 정보들을 아주 쉽게 얻어올 수 있다.
In the Windows system, the WMI interface is queried via the WQL (SQL for WMI) statement, so it is very easy to get various information of the system.

WQL은 이름에서 유추할 수 있듯 일반적인 SQL문과 유사하다.
WQL is similar to a regular SQL statement, as you can guess from the name.

간단한 스크립트를 예로 들어보겠다.
Let's take a simple script as an example.


아래는 python코드이다.
Below is the python code.

import win32com.client

strComputer = "."

objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")

"""
Example Queries:

SELECT * FROM Win32_OperatingSystem
SELECT * FROM Win32_NetworkAdapter WHERE ConfigManagerErrorCode = 0
SELECT Name, Model, InterfaceType, MediaType, Size from Win32_DiskDrive
SELECT Name, Description, DriveType, FileSystem, FreeSpace, Size, VolumeSerialNumber from Win32_LogicalDisk
SELECT Description, IPAddress, IPSubnet, IPConnectionMetric, MACAddress, DefaultIPGateway FROM Win32_NetworkAdapterConfiguration WHERE DefaultTTL > 1
SELECT Name, MACAddress, ConfigManagerErrorCode, NetConnectionID FROM Win32_NetworkAdapter WHERE AdapterType = 'Ethernet 802.3'
"""

objResult = objSWbemServices.ExecQuery("""
SELECT Description, IPAddress, IPSubnet, IPConnectionMetric, MACAddress, DefaultIPGateway
FROM Win32_NetworkAdapterConfiguration
WHERE DefaultTTL > 1
""")

for itemResult in objResult:
print itemResult


다음은 javascript코드이다.
Here is the javascript code:

function GetInformation() {
      var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
      var service = locator.ConnectServer(".");
      var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapter");
      var e = new Enumerator (properties);
      document.write("<style type='text/css'> * { font-size: 12px; } </style><table border=0 cellspacing=1 cellpadding=5 bgcolor=0 width=100%>");
      dispHeading();
      for (;!e.atEnd();e.moveNext ())
      {
            var p = e.item ();
if (p.NetConnectionStatus != null) {
document.write("<tr bgcolor=#ffffff>");
document.write("<td>" + p.Name + " / " + p.NetConnectionID + "</td>");
document.write("<td>" + p.NetConnectionStatus + "</td>");
document.write("<td>" + p.PermanentAddress   + "</td>");
document.write("<td>" + p.MACAddress + "</td>");
document.write("</tr>");
}
      }
      document.write("</table>");
}

function dispHeading()
{
      document.write("<thead bgcolor=#efefef>");
      document.write("<td>Name</td>");
      document.write("<td>x</td>");
      document.write("<td>Status</td>");
      document.write("<td>MACAddress</td>");
      document.write("</thead>");
}

GetInformation();


델파이에서는 이렇게..
In Delphi ...
http://www.magsys.co.uk/delphi/magwmi.asp

가져오고 싶은 정보를 어디서 가져와야 할 지 모르겠다면,
If you do not know where to fetch the information you want to import,

WMI Explorer라는 프로그램을 첨부하니 다운받아서 실행해보기 바란다.
Attach a program called WMI Explorer and download and run it.

wmi_explorer.zip


어제 약소하게 질렀다고 하는 놈이.. 이놈이다.
가격은 얼마 안되지만, 두둥… 무려 4개월 할부(무이자로;;)로 질렀다.
왜냐면 할부로 지른놈들이 4개월 후에 모두 할부가 끝나기 때문..
한꺼번에 할부가 다 떨어져 버리면 기분도 더 좋겠지...

이놈 이름이 큐비랩에서 만든, Location Plus A1이라고 하더라….

 
요렇게 생겼는데, 한손에 잡히는정도의 크기다. 사진을 찍다 보니.. 남는것은 사진밖에 없다는 생각이 들어..
'사진에 더 많은 의미를 부여하기위해' 라는 변명으로 구입했다. 이놈으로 사진에 찍은 위치 정보를 추가할 수 있다.

이놈을 PC에 USB로 연결해 외장 GPS수신기로 사용할 수도 있지만 주로 GPS데이터를 그대로 로깅하는 기능을 한다.(저 회사에서 내세우는, 사진에 위치 추가하는 기능은 포함된 SW의 역할이다.)

로깅되는 GPS데이터에는 시간정보도 포함되어 있으므로.. 사진을 찍은 시간과 GPS데이터를 이용하면 그 사진이 어디서 찍혔는지 파악할 수 있다. 그 점을 저 회사에서 착안하여 만든 것 같다.

저놈 설명서를 보니, 외장 GPS수신기로 사용 가능하다고 해서 VisualGPS라는 GPS테스트 프로그램으로 체크해봤더니.. 방안 창문가에서 GPS위성이 8개가 잡힐 정도로 수신률이 괜찮았다.

사용자 삽입 이미지

이놈의 주요 사용법은.. 전원을 켠 후 그냥 가지고 다니면 된다.. 그러면 GPS데이터가 파일로 저장되고..
PC에 연결하면 그 파일을 보고 조작할 수 있다.(대용량저장장치)

어떤 사람들을 보니, 이런 데이터로 구글어스에 이동궤적을 표시했던데.. 어떤 프로그램을 쓰는지는 모르겠고..
그냥 간단하게 구글어스용 KML생성기를 만들어서 적용해 보았다.

GPS데이터를 이용해, 궤적을 그려주는 KML파일로 생성해 준다.

언어는 외계어(-_-..)가 아니고 python이니, 알아서 이해하기 바란다.




- 추가: 다른 사람들은 GPSBabel이라는 프로그램 쓰나보네.. NMEA 파일 -> 구글어스(keyhole)로 변환 되네..
- 또 추가: 기본제공하는 (이미지에 위치정보 넣는) 프로그램에도 kml로 내보내기 기능이 있네 -_-...
   나 왠 쓸데없는 삽질을 한거지?

'Windows & WM' 카테고리의 다른 글

베틀필드3 에러...  (0) 2011.11.18
EarthGPS (?)  (2) 2008.05.22
큐비랩의 Location Plus A1  (0) 2008.05.15
[COM] MS Agent in python  (0) 2008.05.01
기상청 위성사진 보는 프로그램  (1) 2007.10.07
16비트 Windows 프로그램을 실행할 수 없습니다.  (2) 2007.10.01

'Windows & WM' 카테고리의 다른 글

EarthGPS (?)  (2) 2008.05.22
큐비랩의 Location Plus A1  (0) 2008.05.15
[COM] MS Agent in python  (0) 2008.05.01
기상청 위성사진 보는 프로그램  (1) 2007.10.07
16비트 Windows 프로그램을 실행할 수 없습니다.  (2) 2007.10.01
아스키아트 TV  (1) 2006.06.25

+ Recent posts