Saturday, June 20, 2015

Internet of Things(IoT) and Arduino

හුග දවසකට පස්සෙ  අද ගවේෂක ඔයාලට අරන් ආව Electronic සම්බන්ද මේ දවස් වල ජනප්‍රිය #IoT හා සම්බන්ද දෙයක්.

Arduino ගැන අහල ඇතිනෙ කවුරුත් ඒත් දන්නෙ නැත්නම්  #IoT වලට Indtroduction එක්කින්ම පටන් ගන්නම්.

"The Internet of Things (IoT, sometimes Internet of Everything) is the network of physical objects or "things" embedded with electronics, software, sensors and connectivity to enable it to achieve greater value and service by exchanging data with the manufacturer, operator and/or other connected devices based on the infrastructure of International Telecommunication Union's Global Standards Initiative" - WIKI

සරලවම සිංහලෙන් කිව්වොත් electronic උපකරණ භාවිතයෙන් manual දේ automated කිරීමයි.
එමෙන්ම ඒ සදහා යොදාගන්න‍ා Hardware Platform කිහිපයක් නම් ,

  • Arduino


  • Raspberry Pi

  • Banana Pi

  • Intel Galileo



අද වනවිට බොහෝ ව්‍යාපාර IoT පිළිබද විශාල උනන්දුවක් දක්වනවා. 

උදාහරණයක් විදියට කාර්යාලයක කටයුතු ගත් විට බොහෝ සෙයින් එය ස්වයංක්‍රිය පද්ධතියක් බව‍ට පත් වී තිබෙනවා.


ඉහත රූපයේ පරිදි සියලු උපකරනණ එකිනෙක හා සම්බන්ධ වී තිබෙනවා. යම් විටක ගෑස් කාන්කදුවක්,භාහිර පුද්ගලයින් කාර්යාලයට ඇතුලුවීමක් වුවහොත් ඒ බව එසැනින් දැනුම් දීමක් සිදු කරනවා.

ඉතින් මේ වගේ සංකිර්ණ පද්ධති වල අඩිතාලම වෙන්නෙ කුඩා කුඩා circuit වල එකතුවකි. 

 ඒ නිස‍ා ගවේෂක අද Arduino use කරන විදිය මුල සිටම ඔයාලට අරන් එනවා .

අපිට මේ සදහා අවශ්‍යය උපකරණ,
  1. Arduino Borad(Nano/Mega/Uno)
  2. LED Bulb
  3. Resistor 1K
ඉන්පසු LED බල්බය Resistor සමග පහත පරිදි සකසාගන්න. 


(+) අග්‍රය Arduino Borad හි Pin 13 ටත්
(-) GND වෙතත් සම්බන්ද කරගන්න

දැන් USB ‍Cable මගින් Arduino Board එක පරිගනකය හා සම්බන්ද කරගනිමු.

ඉන්පසු Arduino Software එක Open කරගන්න
(To Download Arduino - http://www.arduino.cc/en/Main/Software)

දැන් පහත පරිදි ඔබගේ නිවැරදි Arduino Board එක තෝරාගන්න


දැන් Sample Blink Program එක තෝරාගන්න



පහත පරිදි දැන් ඔබට දිස්වේ 


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}


දැන් ඔබේ program එක ,compile කර upload කරගන්න



ඔබ ඔබගේ .program එක Arduino Board එකට Upload කර ඇත. දැන් LED බල්බය Blink වන ආකාරය ඔබට දැක ගත හැකිය.

Saturday, February 21, 2015

Trigger an email after submitting Google Form

අද ඔයාලට ගවේෂක Google Forms and Triggers ගැන කියන්නයි යන්නෙ..

Event Registrations සදහා වර්තමානයේ ගොඩක්ම ජනප්‍රිය දෙයක් තමයි Google Forms කියන්නෙ. ඔයාල එහෙම Form එකක් submit කරාම ඔයාලගේ mail account එකට email එකක් ඇවිත් එහෙම ඇති නේද ?

ඉතින් අපි බලමු කොහොමද ඒ වැඩේ කරගන්නෙ කියල‍ා.

First you need to goto your google drive and create a form application.



Then give a suitable name for it and add your fields for the form . In this case i added only the email address to enter in the form.


Then goto Tools -> Script editor 


Choose blank project 





 Then add the follow code


var message, means the message you need to send for each registration.It can be manuslly added in your spread sheet.

Also we set a column for email status to check whether email confirmation has been sent or not




So to set the code to be run as a trigger goto Resources->Current Project's triggers





Add it as On Form submit then save it


Then goto your form and enter your email and submit.
After that you can see the following record is there and the email status is changed to "EMAIL_SENT".



Finally chheck your emails :)


I hope you will understand how it was done using triggers .So keep in touch with the explorer. We will meet on next Post .




Wednesday, February 11, 2015

Facebook App- Buddy Cricket

ඔන්න අද World Cup එකට හදපු facebook app එකක තොරතුරු ගවේෂක ඔයාලට ගේනවා 



වසර හතරකට වරක් එළඹෙන 2015 ලෝක කුසලාන ක්‍රිකට් තරගාවලියේ උණුසුමත් සමග අපට දක්නට ලැබෙන නොයෙක් අන්දමේ වැඩසටහන් අතුරින් අන්තරජාලය හා වෙනත් ක්‍රම තුලින් මේ දිනවල අපට නිතරම පාහේ දකින්න අහන්න ලැබෙන ජනප්‍රිය මාතෘකාවක් තමයි Buddy Cricket කියන්නේ. මොකක්ද මේ Buddy Cricket කියන්නේ කියලා තමයි අද අපි මේ ලිපියෙන් කතා කරන්න යන්නේ.

2015 ලෝක කුසලාන Cricket තරඟාවලිය වෙනුවෙන් දක්නට ලැබෙන වැඩසටහන් අතුරින් ඩ්‍රීම් විෂන් ආයතනය මගින් ක්‍රිකට් ක්‍රීඩා වැඩසටහනක් හඳුන්වා දීමට නියමිතය. මේ අපි අද කතා කරන Buddy Cricket කියන්නේ මේ ක්‍රීඩා වැඩසටහනට තමයි. තවද ඩ්‍රීම් විෂන් ආයතනය මගින් පසුගිය කාලය පුරාවට තොරතුරු තාක්ෂණික ක්ෂේත්‍රයේ දැවැන්ත කාර්යයන් කීපයක්ම සිදු කල අතර. එමගින් තොරතුරු තාක්ෂණික ක්ෂේස්ට්‍රයේ ඉහල තැනක් ලබා ගැනීමට ඔවුන්ට හැකියාව ලැබුනා.

Facebook සමාජ වෙබ් අඩවිය ඉලක්ක කර ගනිමින් ක්‍රියාත්මක කරනු ලබන මෙම වැඩසටහන හුදෙක් වැඩසටහනක්ම පමණක් නොව ක්‍රීඩාවක් යනුවෙන් ද හඳුන්වා දිය හැකිය. මෙම නව ආරේ විනෝදකාමී වැඩසටහන මගින් ලංකාවේ ක්‍රීඩා ලෝලීන්ට ඔවුන් සතුව පවතින ක්‍රිකට් ක්‍රීඩාව පිලිම්බන්දව පවතින දැනුම, තරංග මාලාවේ ජයග්‍රාහී කණ්ඩායම් මොනවද යන බව, ඔවුන් රැස් කරන ලකුණු ගණන සහ තරඟයේ වීරයා කව්ද යන්න වැනි තවත් නොයෙකුත් ක්‍රියාකාරකම් මේ වැඩසටහන මගින් පරිශ්ලකයින්ට අත් විඳීමට හැකියාව ලැබේ.








ක්‍රීඩාවේ අතුරු මුහුණත් කීපයක්


ක්‍රීඩාවේ ස්වභාවය ගැන යමක් කියනවනම් නිත්‍ය ඕවරය යටතේ ප්‍රශ්න 06ක් ද, සුපිරි ඕවරය යටතේ ප්‍රශ්න 03ක් ද, තරංග පදනම් කර ගත වීඩියෝ පට අනුසාරයෙන් අනුමාන ප්‍රශ්නයකටද පිළිතුරු සැපයීමටද අවස්ථාව පරිශීලකයින්ට උදාවෙනවා. ආරංචි විදියට මෙම ක්‍රීඩාවේ ජයග්‍රාහකයින්ට  ත්‍යාග පිරි නැමීමට ඩ්‍රීම් විෂන් ආයතනය පියවර අරන් තියෙනවා. 


මෙවැනි වැඩසටහනක් නිර්මාණය කිරීමේ එක් ප්‍රධාන බලාපොරොත්තුවක් නම් ක්‍රිකට් ලෝලිත්වය වැඩි කරමින් මෙවර ලෝක කුසලානය ලංකාවට හිමිකර දීමට ජනතාව උද්යෝගිමත් කිරීමට දායක වීම. කෙසේ වෙතත් Facebook රසිකයින් මෙම වැඩසටහන සමග අත්වැල් බැඳගනු නොඅනු මානයි.

Saturday, February 7, 2015

Create your First Chrome Application


අද අපි ඉතාමත් සරල Chrome එකක් හදාගන්නෙ කොහොමද කියලා බලමු.

ඒ සදහා අපිට පහත file structure එක හදාගන්න වෙනවා

background.js
manifest.json
window.html

මෙහි. window.html මගින් App එකෙහි UI එකට අදාල කොටසත් manifest.json මගින් App එකෙහි තොරතුරුත් background.js මගින් chrome එ‍කෙහි App එක run වීමට අදාල js script එකත් අන්තර් ගත වෙනවා .

ඉස්සෙල්ලම එහෙනම් App එකේ config file එක හදාගමු .

manifest.json

{
  "name": "Hello Explorer!",
  "description": "My first Chrome App",
  "version": "1",
  "manifest_version": 2,
  "app": {
    "background": {
      "scripts": ["background.js"]
    }
  },
  "icons": { "16": "first-16.png", "128": "first-128.png" }

}   

මෙම file එක තුල අදාල js file එ‍කෙහි path එකත් define කරයි .එමෙන්ම icons ලෙස 16*16 සහ 128*128 pixels පරිමාණයේ ඔබ කැමති png images දෙකක්ද ‍‍අදාල folderය තුලට include කරගන්න.

window.html

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <div>Hello, Explorer!</div>
  </body>

</html>

background.js

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create('window.html', {
    'bounds': {
      'width': 400,
      'height': 500
    }
  });

});

දැන් Chrom හි More Tools->Extensions වෙත ගොස් Load unpacked extension මගින් ඔබේ App එකට අදාල folder එකෙහි path එක ලබා දෙන්න .

දැන් ඔබේ App එක Launch කරන්න .ක


Thursday, January 8, 2015

USSD Idea Pro Application Developing (Php) - Part II

අද අපි බලමු කොහොමද USSD Menu එකක් අපිට ඕන විදියට හදාගන්නෙ කියලා

USSD Idea Pro Application Developing (Php) - Part I


Let's say that you are going to implement a system for a shop which needed to have a menu with


  1. Item Category
  2. Purchase Items
  3. Contact Us
  4. Exit

Also there can be sub menu's as you prefered.
eg - In item category there can be sub categories 

දැන් අපි සාමාන්‍යයෙන් මේ වගේ menu එකක් implement කරන්න යනකොට එ් අදාල code එක සදහා වැඩියෙන්ම භාවිතා කරන්නෙ switch cases තමයි . අපිට if else වලිනුත් ඒ විදියටම කරන්න පුලුවන් නමුත් code එක complex වෙන්න වෙන්න වඩාත්ම use කරන්න හොද switch cases.

switch (n) {
    case label1:
        code to be executed if n=label1;
        break;
    case label2:
        code to be executed if n=label2;
        break;
    case label3:
        code to be executed if n=label3;
        break;
    ...
    default:
        code to be executed if n is different from all labels;
}

ඉස්සෙල්ලම අපි main menu එක load කරන විදිය බලමු

$responseMsg කියන variable එකෙ තමයි අපි ඉස්ලේලම menu එකේ එන text එක දාන්‍ නෙ.

$responseMsg = array(
    "main" =>" Welcome To First USSD Tutorial
                    1.Item Category
                    2.Purchase Item
                    3.Contact Us
                    99.Exit",
                   );

මෙහි value parameters වන main ප්‍රථමයෙන්ම main menu එකහි load වී ඉන් පසුව අවශ්‍යය session menu's add කිරීම  මෙම array එකෙහි value parameters වෙනස් කිරීමෙන් ලබාගත හැක.

USSD Operation 'mo-init' and 'mo-cont' ‍ලෙස කොටස් දෙකකට වෙන් කර හැක. මෙහි mo-init යනු USSD Code එක Mobile එකෙන් dial කරන විටදී එන පලමු view එකත් mo-cont යනු User Input ලබාදෙන විටදී කේතය තුල යොදන විධානයකි.




මෙහි mo-init තුල ප්‍රධාන view එකත් ඉන් පසු mo-cont තුල user input වලට ගැලපෙන ආකාරයෙනුත් implement කරනු ලැබේ.

$responseMsg array එකෙහි අදාල value parameters දී අවශ්‍යය වටදී ඒවා session එකකට save කිරීම මගින් නිසිය‍ාකාරව steps පියවරෙන් පියවර Display වීමට යෙදිය හැක.

User Inputs වලට අදාලව menu එක සැකසීම





ඉහත පරිදි ප්‍රධාන menu ව වෙත පිවිසීමෙන් අනතුරුව User Input No 1 නම් itemCategory ලෙස session එක නමි කර ඊට අදාල implementation කොටස වෙනත් case එකක් තුල implement කරනු ලැබේ .

මෙලෙස ප්‍රධාන categories දැමීමෙන් අනතුරුව No : 99 input කරවිට පවතින menu වෙන් වනලෙස සැකසිය යුතුයි.එය පහත පරිදි වේ.




මෙම පැහැදිලි කිරීම් අනුව සුදුසු ලෙස. USSD එකට අදාල ලෙස implementation කිරීම සිදුකරගතහැකි ආකාර පිලිබද මනා අවබෝධයක්ක ඇති වේ යැයි ගවේෂක බලාපොරොත්තු වෙයි.

දැන් ඔබට අව්‍යය ලෙස ඔබේ USSD Application එක සාදා ගැනීමට උත්සාහ කරන්න. ප්‍රශ්න ඇතොත් එවා පහතින් comment කරන්න. 
.