සුභ දවසක් යාලුවේ. අද අපි කරන්නේ program එකක් ලියන්න කලින් මේකේ භාවිතා වන විශේෂ දේවල් ටිකක් ගැන සදහන් කරන්න. programming දන්නෙ නැති අයට වගේම arduino වලට අලුත් අයට මේක ගොඩක් වැදගත් වෙයි.

void setup()

ඕනම project එකක තියන ප්‍රධානම සහ පලමුවෙන්ම run වන තැන තමයි මේ setup() කියන method එක. හරියට C language එකේ main() method එක වගේ. මෙහි අප විසින් ලියන සියලු දේ එක සැරයක් පමණක් run වෙයි. ඒ කියන්නේ මෙතන ලියල ඕනම එකක් run වෙන්නේ එක සැරයයි. ඒ නිසා අපි ඒකේ ලියන්නේ wifi connection හෝ modules වලට අදාල connection එක විතරයි. මොකද ඒක අපිට ඕන එකපාරයි. wifi එකට connect උනාම අපිට ආයෙත් ඒකට connect වෙන්න ඕන නෑනේ. ඒ නිසා ඒ වගේ දේවල් අපි ලියන්න ගන්නේ මේ setup() method එක ඇතුලේ.

void setup(void) { }

void loop()

මේක ඉතාම වැදගත් එකක්. මොකද මේකේ ලියන code එක නොනවත්වාම run වෙනවා. උදාහරණයක් විදියට serial monitor එකේ Hello කියලා print වෙන්න කියලා ලියලා ඒක board එකට upload කරහම board එකට power ලබා දුන් තැන ඉදන් එය නතර කරන තෙක්ම serial monitor එකේ Hello කියලා print වෙනවා අපිට බලාගන්න පුලුවන්.

void loop()  { }

#include

මේකෙන් කරන්නේ අපිට ඕන වෙන විවිධ libraries, code එකේ සදහන් කීරීමයි. මේ libraries වල තමයි sensors වලින් values ගන්න පුලුවන් method ටික තියෙන්නේ. #include එකෙන් අපිට පුලුවන් ඒ libraries සදහන් කරලා ඒවයින් අදාල values ලේසියෙන්ම ගන්න. අසාමාන්‍යන් ඒක අපි කෝඩ් එකේ setup() method එකට උඩින් සදහන් කරනවා. මොකද අපිට ඒක මුලු project එකටම ගන්න ලේසි වෙන්න.

include <ESP8266WiFi.h>

include <FirebaseArduino.h>

#define

මේකෙන් තමයි අපි මොනවහරි variable එකක් හදාගන්නේ. අපගේ Board එකෙහි ඇති PIN හදුන්වාදීමට මූලික වශයෙන් මෙම #define යොදාගනී. තවද WiFi connection එකට අදාල username, password සහ firebase key වගේ වගේ ඒවා variable එකකට දාගන්නේ මේ #define එක හරහා.
define WIFI_SSID "Wifi"

define WIFI_PASSWORD "password"

delay();

මේකනම් ගොඩක් වැදගත් එකක්. මොකද මේකෙන් පුලුවන් program එක නවත්වලා තියාගන්න. උදාහරණයක් ගත්තොත් නිවි නිවි පත්තුවෙන්න බල්බ් එකක් පත්තු වෙලා ටිකක් තියන්න වගේම නිවලා කෙටි වෙලාවක් තියන්න කියල එක අපි ලියන්නේ මේ delay එකෙන්. මේ delay එකේ සංඛ්‍යාවක් දුන්නම ඒ අදාල වෙලාවේ programme එක එතනම නැවැතිලා තියනවා. ඉතින් මේකට සංඛ්‍යාවක් දෙනකොට අපි 1000 එක තත්පරයක් ලෙස ගන්නවා. තත්පර දෙකක් නවත්වන්න ඕන නම් 2000 කියලා දෙනවා.
delay(1000);   තත්පර 1
delay(2000);   තත්පර 2
delay(10000);   තත්පර 10

delay(500);

Variables

අපි Arduino වලින් වැඩ කරද්දි sensor සහ modules වලින් එන values ගබඩා කරන්න විවිධ වර්ගයේ variables ඕන වෙනවා. ඉලක්කම් වලට Int, අකුරු වලට String, දශම සංඛ්‍යා එක්ක තියනවනම් float වගේ මේ variable අපිට හදාගන්න පුලුවන්. පහත දැක්වෙන්නේ එවැනි variables සාදාගන්නා ආකාරයයි.

Create Variables in Arduino

Project board සහ Breadboard

මේ board දෙක ඇත්තටම වෙනස් දෙකක්. ගොඩක් අය පටලවාගෙන තමයි තියෙන්නේ. වෙනස තමයි project board එකේ දෙපැත්තෙහි ඇති + සහ - තීරු දෙක හරි මැදින් වෙන් වී තිබීමයි. මේ බෝඩ් දෙකේම architecture එක දැනගැනීම මෙම ආඩුඊනෝ භාවිතයේදී ඉතාමත් වැදගත් වෙනවා.

BreadBoard

නිවැරිව project එකක් Open කරගමු.

මේකනම් එච්චර වැදගත් වෙන්නේ නෑ. ඒත් මේක දැනගෙන ඉන්න එක වටිනවා. මෙහිදී අප ටිකක් විශාල project code එකක් ලියනවිට අප එකම file එකතුල සම්පූරණ කෝඩ් එක ලියන්නෙ නෑ. ඒකට වෙන වෙනම files add කරගෙන ඒවයි ඇතුලේ method විදියට ලියලා අපේ setup() එක හෝ loop() එක ඇතුලේ ඉදන් ඒ method වලට call කරලා ඒවා ඇතුලේ තියන දේවල් compile කරගන්නවා. එහිදී අපි මේ files save කරද්දි වෙනම folder එකක් හැදිලා තමයි මේ සේරම files ඒකේ ඇතුලේ save වෙන්නේ. එතැනදී අපි බලන්න ඕන අපේ setup() සහ loop() තියන file එකේ නම මොකක්ද කියලා. අන්න ඒ නමින් තමයි save කරද්දී මේ folder එක හැදීලා save වෙන්නේ. එතකොට අපි මේ project එක ආයේ ඔන් කරද්දි අපි යන්න ඕන අර folder name එක තියන .ino file එකට. ඒක open කරොත් විතරයි ඔයාට අනෙක් file ටිකත් බලාගන්න පුලුවන් වෙන්නේ.

ඒනම් අපි ඊලග post එකේ කෙලින්ම Code එකට ගිහින් වැඩ පටන් ගමු. ඔයාලගේ යෝජනා, ඉල්ලීම් සහ අඩුපාඩු සේරම comment section එකේ කතා කරමු. සුභ දවසක්.