views:

96

answers:

3

Hi folks,

I was recently elected programming team lead for my community college's engineering club. We're going to put a solar panel on a roof. The programming part involves

  1. Controlling servos to adjust the orientation of the panel

  2. Sending data on the electricity collected by the panel to a server (we haven't decided whether we want this to be via a wired or wireless connection.)

Although I know a fair amount about programming in general, I know next to nothing about networking or microcontrollers.

Can you recommend any books I can read to familiarize myself with these topics? Is there an obvious choice of programming language and library for either domain? Any linux man pages I should read? I'm actually not sure whether the computer we'll put on the roof will be running Linux or Windows. So I'd appreciate recommendations for both OS's.

Will Beej's guide to network programming

http://beej.us/guide/bgnet/

be useful, or is it only for internet applications and not local networks? Is there software that operates at a higher level than sockets that I should use instead?

If nothing else, give me some non-obvious keywords I can use to search on Google.

A: 

Maybe this would be of some help. Also this thread brings up some issues and gives links to places where to look for answers.

luvieere
A: 

because that ethernet is popular, so i suggest that design layer 2 as ethernet type. for physical layer and wireless or wired, there're so many datasheet and specification samples and design guides which you could found at http://developer.intel.com and http://software.intel.com, both chips level or drivers level. enjoy that.

EffoStaff Effo
+1  A: 

I'd look at the arduino platform, it's a very simple platform for building things exactly like this on top of it: http://arduino.cc

And from Wikipedia

Arduino is a physical computing platform based on a simple open hardware design for a single-board microcontroller, with embedded I/O support and a standard programming language.[1] The Arduino programming language is based on Wiring and is essentially C/C++ (several simple transformations are performed before passing to avr-gcc).[2] The goal of the Arduino project is to make tools available that are accessible, low-cost, low capital investment, flexible and easy-to-use for artists and hobbyists. Particularly those who might not otherwise have access to more sophisticated controllers that require more complicated tools.[3]

Lee