Difference between revisions of "ECE497 Project: Node.js Weather Station"

From eLinux.org
Jump to: navigation, search
(Work Breakdown)
(Installation Instructions)
Line 16: Line 16:
  
 
== Installation Instructions ==
 
== Installation Instructions ==
 +
* [https://github.com/ github] path: [https://github.com/caoy1/Project https://github.com/caoy1/Project]. 
  
Give step by step instructions on how to install your project on the SPEd2 image. 
+
* Additional packages installed via '''opkg'''.
 
 
* Include your [https://github.com/ github] path as a link like this:  [https://github.com/caoy1/Project https://github.com/caoy1/Project]. 
 
* Include any additional packages installed via '''opkg'''.
 
  
 
0. install nodejs
 
0. install nodejs
Line 47: Line 45:
 
* If there is extra hardware needed, include links to where it can be obtained.
 
* If there is extra hardware needed, include links to where it can be obtained.
 
* Here's the guideline to install Cloud9 easily: [https://github.com/jadonk/cloud9/blob/master/README.md]
 
* Here's the guideline to install Cloud9 easily: [https://github.com/jadonk/cloud9/blob/master/README.md]
 +
 
== User Instructions ==
 
== User Instructions ==
  

Revision as of 14:20, 13 February 2012


Team members: Yuming Cao, Ziyi Zhang

Executive Summary

Our project aims to implement the emerging nodejs technique (the server side javascript) as a lightweight web server on the beagleboard and accomplish a series of remote monitoring and control of hardware pins like gpio/led/i2c on the beagleboard.

Give two sentences telling what works.

Give two sentences telling what isn't working.

End with a two sentence conclusion.

The sentence count is approximate and only to give an idea of the expected length.

Installation Instructions

  • Additional packages installed via opkg.

0. install nodejs

opkg update
opkg install nodejs
opkg install nodejs-dev

1. install node package manager

curl http://npmjs.org/install.sh | sh

2. install socket.io module

npm install socket.io

3. install binary module

npm install binary
  • Include kernel mods.
  • If there is extra hardware needed, include links to where it can be obtained.
  • Here's the guideline to install Cloud9 easily: [1]

User Instructions

Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.

Highlights

Here is where you brag about what your project can do.

Consider including a YouTube demo.

Theory of Operation

Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

Work Breakdown

1. We've already successfully using JavaScript read and write data to the linux gpio file.

fs.writeFileSync("/sys/class/leds/beagleboard::usr0/trigger", "heartbeat");
fs.writeFileSync("/sys/class/gpio/export", ""+5);

2. Even though we can access to the gpio in the above way, we still need to find someway to access to the I2C information. In the I2C exercises, in the C code provided in exercise 5, we still need to find some way in our javaScript instead of using i2c_smbus_write_byte() and i2c_smbus_read_byte(). Now there are two options for us:

a) To translate tons of the C codes into JavaScript...

b) Try to run the ./myi2c excutable file inside script...

  • It seems that the second way is easier... We've already found a ActiveXObject.run method... We're working on this...
  • At last we successfully excuate the ./myi2c file inside our javascript using the following code:
var exec  = require('child_process').exec,
    child;
child = exec('./myi2c',
  function (error, stdout, stderr) {
    console.log('stdout:', stdout);
    console.log('stderr:', stderr);
    if (error !== null) {
      console.log('exec error:', error);
    }
});

And the terminal will show the temperature. Now we are going to working on how to show this temperature information on the website so that we can visit it from any place!!!

Conclusions

Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.