HOW TO TAKE A VALUE FROM ARDUINO AND SEND IT TO THE INTERNET WITHOUT ETHERNET (THING SPEAK.COM) USING NODE JS IN UBUNTU:
First you need to download Arduino in your ubuntu to download arduino from ubuntu execute this line
sudo apt-get update && sudo apt-get install arduino arduino-core
For example i took ultrasonic sensor to generate the data you can take whatever you want
connection diagram for ultrasonic and arduino
connect pin
vcc to arduino vcc
ground to arduino ground
trigpin to arduino 9 th port
echo to arduino 10 th
then exec following line of command using Arduino IDE
- /*
- * Ultrasonic Sensor HC-SR04 and Arduino Tutorial
- *
- * Crated by Dejan Nedelkovski,
- * www.HowToMechatronics.com
- *
- */
- // defines pins numbers
- const int trigPin = 9;
- const int echoPin = 10;
- // defines variables
- long duration;
- int distance;
- void setup() {
- pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
- pinMode(echoPin, INPUT); // Sets the echoPin as an Input
- Serial.begin(9600); // Starts the serial communication
- }
- void loop() {
- // Clears the trigPin
- digitalWrite(trigPin, LOW);
- delayMicroseconds(2);
- // Sets the trigPin on HIGH state for 10 micro seconds
- digitalWrite(trigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(trigPin, LOW);
- // Reads the echoPin, returns the sound wave travel time in microseconds
- duration = pulseIn(echoPin, HIGH);
- // Calculating the distance
- distance= duration*0.034/2;
- // Prints the distance on the Serial Monitor
- Serial.print("Distance: ");
- Serial.println(distance);
- }
Then it will produce the Serial out put You can see the out put using serial monitor in arduino IDE
NEXT STEP IOT:
Download node js in your ubuntu system...
it is very easy installation procedure:
Step 1: Add Nodejs PPA
Node.js is available in two versions, first is current (most recent version) and another is LTS. Select which version you need to install on the system. Then use one of following commands to install PPA on your system. Node.js officially provides these PPA’s.
Use Current Release: At te last update of this tutorial, Node.js 8.0 is the current Node.js release available.
Use LTS Release : At te last update of this tutorial, Node.js 6.11 is the LTS release available.
For this tutorials, we are using latest current release and added their PPA to my system.
Step 2: Install Nodejs and NPM
After adding required PPA file lets install Node package. NPM will also be installed with node.js. This command will also install many other dependent packages on your system.
Step 3: Check Node.js and NPM Version
After installing node.js verify and check the installed version. You can find more details about current version on node.js official website.
Also, check the version of installed npm.
thats all for installation about node js
after install node js if you want to look how the node js and all click here...
then you have add two things in your node js that is serialport , thingspeakclient
Before going for node js we have to lok about thingspeak for post all our data and get our data ...
it will give you the free api to see our data in cloud... lets look at that
here you have to create one account ... then make one channel for post your data
click the new channel to create channel
then enter the label name for identification
then click save then your channel will be saved.
lets look at the api
go to the Api-keys to see the api of your channel...
connect the arduino to your laptop using usb
then choose your port in arduino then copy the port name and paste here
var port = new SerialPort('/dev/ttyACM1', { autoOpen: false }); <-- this code is in node js 7th line
look at the write key and channel id for post the data you have to enter your channel id and write key instead of mine...
client.attachChannel(<channel id>, { writeKey:'<writekey>', readKey:'<readkey>'}, function(){
if (i==1){
console.log("connected!!!")
i++;
}
});
client.updateChannel(<channel id>, {<channel field name>: buff}, function(err, resp) {
// console.log(resp)
if (!err && resp > 0) {
console.log('update successfully. Entry number was: ' + resp);
console.log('value is: ' + buff);
}
});
// client.getChannelFeeds(<channel id>,'<channel field name>', function(err, resp) {
// console.log(resp)
// if (!err && resp > 0) {
// console.log('update successfully. Entry number was: ' + resp);
// }
// });
you can see the channel id and write key and read from the same api-key page
Thats all we will see node js to post the data
create ultrasonic.js file in your desktop
var ThingSpeakClient = require('thingspeakclient');
var client = new ThingSpeakClient();
var request = require('request');
var http = require('http');
var http = null;
var SerialPort = require('serialport');
var port = new SerialPort('/dev/ttyACM1', { autoOpen: false });
i=1;
port.open(function (err) {
if (err) {
return console.log('Error opening port: ', err.message);
}
// Because there's no callback to write, write errors will be emitted on the port:
port.write('main screen turn on');
});
// The open event is always emitted
port.on('open', function() {
return console.log('Port opened');
// open logic
});
// Switches the port into "flowing mode"
// port.on('data', function (data) {
// console.log('Data:', data);
// });
// Read data that is available but keep the stream from entering "flowing mode"
port.on('readable', function () {
// console.log('Data:', port.read());
var buff = new Buffer(port.read(), 'utf8'); //no sure about this
// console.log('data received: ' + buff.toString());
// debugger
client.attachChannel(321131, { writeKey:'WNCHK5PZ0E6QLA11', readKey:'XMKWNQW2I7JQJGXS'}, function(){
if (i==1){
console.log("connected!!!")
i++;
}
});
client.updateChannel(321131, {field1: buff}, function(err, resp) {
// console.log(resp)
if (!err && resp > 0) {
console.log('update successfully. Entry number was: ' + resp);
console.log('value is: ' + buff);
}
});
// client.getChannelFeeds(321131,'field1', function(err, resp) {
// console.log(resp)
// if (!err && resp > 0) {
// console.log('update successfully. Entry number was: ' + resp);
// }
// });
});
copy and paste this code in your ultrasonic.js
to run the js execute this line node ultrasonic.js
each and every 15 second the api will get updated in thingspeak.com
here is the example data in thingspeak like this you will get datas
enjoy coding with electronic...







No comments:
Post a Comment