HC-12 with Arduino
Present by :- Yasas Sadeepa
ඔයාලත් කැමතිද 1.8km යන ඩ්රෝන් එකක් හදන්න.... 1.8km යන කාර් එකක් හදන්න.... ඔන්න එහෙනම් ඔයාට use කරන්නට පුලුවන් HC-12 Module එක.(2 රූපය)
HC-12 කියපු ගමන් කට්ටියගෙම ඔලුවට එන්නෙ Blootooth..... Blootooth වලින් 1.8km?? ඒක කරන්න බෑනෙ. මේ Module එක Blootooth නම් නෙවේ Blootooth වලින් ක්රියා කරන උපාංග ක්රියා කරන්නෙ GHz පරාසයේ සංඛ්යාතයකින්. ඒත් HC-12 වලදී භාවිතා වෙන්නෙ MHz පරාසයේ සංඛ්යාතයන්.
Half - Duplex ( අර්ධ ද්වීපථ ) Wireless Serial Communication Module එකක් තමා මේ HC-12 කියන්නෙ. මේ මොඩියුල් එක ක්රියා කරන්නෙ 433.4 - 473.0 MHz පරාසයේයි. HC-12 යොදාගෙන 1.8km පමණ දුරකට සන්නිවේදනය කිරීමේ හැකියාවක් පවතිනව. නමුත් ඒ මේ මොඩියුල් එකත් එක්කම එන ස්ප්රින්ග් ඇන්ටනා එකෙන් නම් නෙවෙයි. මේ default එන ස්ප්රින්ග් ඇන්ටනා එක මගින් 600 - 700 m පමණ දුරකට තමා සන්නිවේදනය කරන්න පුලුවන් වෙන්න්නෙ. 1.8km පමණ දුරකට සම්ප්රේෂණය සිදුකරනව නම් External Antenna එකක් use කරන්න සිද්ධ වෙනව.
මේ HC-12 Module එක නිර්මාණය වෙලා තියෙන්නෙ STM85003F3 කියන Microcontroller එක සහ Si4463 කියන Transceiver එක එකතුවෙලා. අපි බලමු මොනවද මේ කියල.
Si4463 Transceiver :-
Module දෙක අතර Wireless Communication එක සිදුකිරීම සදහා අවස්ථාව සපයලා දෙනු ලබන්නේ මෙම Transceiver එක මගින්. මෙහි උපරිම Transmit Power එක 20dBm (100mW) ක් වෙනව. Receive Sensitive එක -129dBm වෙනව. 64 byte Rx and Tx FIFO Memories 2ක් මෙම Chip එක තුල අන්තර්ගත වෙනව.
Module දෙක අතර Wireless Communication එක සිදුකිරීම සදහා අවස්ථාව සපයලා දෙනු ලබන්නේ මෙම Transceiver එක මගින්. මෙහි උපරිම Transmit Power එක 20dBm (100mW) ක් වෙනව. Receive Sensitive එක -129dBm වෙනව. 64 byte Rx and Tx FIFO Memories 2ක් මෙම Chip එක තුල අන්තර්ගත වෙනව.
STM85003F3 Microcontroller :-
8 bit Microcontroller එකක් වන මෙහි 8KB Flash Memory එකක්, 128 bytes EEPROM එකක් අන්තර්ගත වෙනව. මෙම Microcontroller එක Program කරල තියෙන්නෙ Si4463 Transceiver එක හරහා තවත් HC-12 Module එකක් UART Communication එක මගින් සම්බන්ධ කිරීම සදහායි.
8 bit Microcontroller එකක් වන මෙහි 8KB Flash Memory එකක්, 128 bytes EEPROM එකක් අන්තර්ගත වෙනව. මෙම Microcontroller එක Program කරල තියෙන්නෙ Si4463 Transceiver එක හරහා තවත් HC-12 Module එකක් UART Communication එක මගින් සම්බන්ධ කිරීම සදහායි.
මෙම HC-12 Module එකෙහි Pin 5 ක් පිහිටලා තියනව. (3 රූපය)
VCC Pin - Module එක සදහා විදුලිය ලබා දීමට.
GND - Ground සම්බන්ධතාව ලබා දීමට.
RXD Pin - Module එකට අවශ්ය Input ලබා දීම සදහා.
TXD Pin - Module එකෙන් Data Out කිරීම සදහා.
SET Pin - Module එකේ Configuration වෙනස් කිරීම සදහා.
අපි දැන් බලමු මේ HC-12 Module එක Arduino සමග භාවිතා කරන්නෙ කොහොමද කියල. Module එක කිව්වට අපිට මේ වැඩේ කරන්න එක Module එකක් නම් මදි. Communication එක සිද්ධ කරන්න HC-12 Module 2 ක් ඕනෙ.
අපිට මේ දේ කරන්න මුලින්ම ඕනෙ වෙන්නෙ,
1) HC-12 Module × 2
2) Arduino board × 2
3) 100 uf Capacitors × 2
4) Jumper Wires
2) Arduino board × 2
3) 100 uf Capacitors × 2
4) Jumper Wires
දැන් 4 රූපයේ ආකාරයට උපාංග සකසාගෙන පහත කෝඩ් එක Upload කරන්න. ආඩුඊනෝ බෝඩ් 2 ටම එකම කෝඩ් එක Upload කල යුතුයි.
( විශේශ:- ආඩුඊනෝ බෝඩ් 2ක Computers 2කට සම්බන්ධ කල යුතුයි.)
/*
***** YS Presents *****
***** YS Presents *****
#First Time In Sri Lanka#
~HC-12 Coding Tutorial~
~HC-12 Coding Tutorial~
>Test Code<
*/
*/
#include <SoftwareSerial.h>
const byte HC12RxdPin = 11;
const byte HC12TxdPin = 10;
SoftwareSerial HC12(10, 11);
const byte HC12RxdPin = 11;
const byte HC12TxdPin = 10;
SoftwareSerial HC12(10, 11);
void setup() {
Serial.begin(9600);
HC12.begin(9600);
}
Serial.begin(9600);
HC12.begin(9600);
}
void loop() {
if (HC12.available()) {
Serial.write(HC12.read());
}
if (HC12.available()) {
Serial.write(HC12.read());
}
if (Serial.available()) {
HC12.write(Serial.read());
}
}
HC12.write(Serial.read());
}
}
මෙහිදී HC-12 Module එකෙහි RX Pin එක Arduino එකෙහි 11 වන Pin එක සදහාද, TX Pin එක සදහා Arduino එකෙහි 10 වන Pin එකද සම්බන්ධ කරන්න.
මෙම කෝඩ් එක මගින් සිදු කරන්නේ එක් පරිගණක Serial Monitor එකේ Type කරන ඕනෑම දෙයක් අනෙත් පරිගණකයේ Serial Monitor එක තුල Print කිරීමයි.
දැන් අපි බලමු මේ HC-12 Module 2ක් යොදාගෙන Push Button එකක් යොදාගෙන LED එකක් දැල්වීම සහ නිවීම සිදුකරන්නෙ කොහොමද කියල. මේ මගින් ඔබට 1.8km දුරක සිට LED එක කන්ට්රෝල් කිරීම හැකියාව තිබෙනවා. මේ සදහා කලින් කී උපාංගවලට අමතරව,
5) 4 Pin Push Button × 1
6) LED × 1
7) 220 Ohms Resistor × 1
8) 10 K Resistor × 1
6) LED × 1
7) 220 Ohms Resistor × 1
8) 10 K Resistor × 1
දැන් 5 රූපයේ ආකරයට උපාංග සකසාගෙන පහත කෝඩ් 2 Upload කරන්න. පලමු කෝඩ් එක රිමෝට් එක එනම් Push Button එක සම්බන්ධ කර ඇති Arduino Board එක සදහාද දෙවන කෝඩ් එක Receiver එක සදහාද යොදා ගනියි.
Code For Remort :-
/*
***** YS Presents *****
#First Time In Sri Lanka#
~HC-12 Coding Tutorial~
***** YS Presents *****
#First Time In Sri Lanka#
~HC-12 Coding Tutorial~
>Remort Code<
*/
*/
#include <SoftwareSerial.h>
const byte HC12RxdPin=11;
const byte HC12TxdPin=10;
SoftwareSerial HC12(10,11);
const byte HC12RxdPin=11;
const byte HC12TxdPin=10;
SoftwareSerial HC12(10,11);
int button=2;
boolean old=LOW;
boolean news=LOW;
boolean ledstate=LOW;
void setup() {
Serial.begin(9600);
HC12.begin(9600);
boolean old=LOW;
boolean news=LOW;
boolean ledstate=LOW;
void setup() {
Serial.begin(9600);
HC12.begin(9600);
pinMode(button,INPUT);
}
void loop() {
news=digitalRead(button);
if(news!=old){
if(news==HIGH){
if(ledstate==LOW){
HC12.write('1');
ledstate=HIGH;
}
else{
HC12.write('0');
ledstate=LOW;
}
}
old=news;
}
}
if(news==HIGH){
if(ledstate==LOW){
HC12.write('1');
ledstate=HIGH;
}
else{
HC12.write('0');
ledstate=LOW;
}
}
old=news;
}
}
මෙහිදී Push Button එකට සම්බන්ධ වන්නෙ Arduino එකෙහි 2 වන Pin එකයි.
මෙහිදී Push Button එක එක් වරක් Press කල විට HC-12 Module එක වෙත 1 යන අගය write කිරීමද, තව වරක් Press කල විට 0 යන අගය Module එක වෙත write කිරීමද සිදු කරයි.
Code for Receiver :-
/*
***** YS Presents *****
#First Time In Sri Lanka#
~HC-12 Coding Tutorial~
***** YS Presents *****
#First Time In Sri Lanka#
~HC-12 Coding Tutorial~
>Reseiver Code<
*/
*/
#include <SoftwareSerial.h>
const byte HC12RxdPin = 11;
const byte HC12TxdPin = 10;
SoftwareSerial HC12(10, 11);
const byte HC12RxdPin = 11;
const byte HC12TxdPin = 10;
SoftwareSerial HC12(10, 11);
int led = 6;
int state = 0;
int state = 0;
void setup() {
Serial.begin(9600);
HC12.begin(9600);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
}
Serial.begin(9600);
HC12.begin(9600);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
}
void loop() {
if (HC12.available() > 0) {
state = HC12.read();
}
if (HC12.available() > 0) {
state = HC12.read();
}
if (state == '1') {
digitalWrite(led, HIGH);
state = 0;
} else if (state == '0') {
digitalWrite(led, LOW);
state = 0;
}
delay(10);
}
digitalWrite(led, HIGH);
state = 0;
} else if (state == '0') {
digitalWrite(led, LOW);
state = 0;
}
delay(10);
}
මෙහිදී Arduino එකෙහි 6 වන පින් එකට LED එකක් සම්බන්ධ කර තිබේ. මෙහිදී සිදුවන්නේ කලින් සදහන් කල කෝඩ් එකේදී Module එකට write කල Values Read කිරීමයි. මෙහිදී 1 යන අගය read වුවහොත් LED එක දැල්වීම සදහාද, 0 යන අගය Read වුවහොත් LED එක නිවීමද සිදි කරයි.
මෙම HC-12 මොඩියුල් 2 භාවිතයෙන් 1.8km Range එකක ක්රියා කරන Drone එකක්.... ඒ වගේම හැමෝම මෙච්චර කල් හැදුවෙ Mobile Phone එකෙන් Control කරන Toy Car නේ... ඔන්න දැන් ඔයාලට පුලුවන් 1800m දුර යන කාර් එකක් හදාගන්න.
ඉතින් තව එක දෙයක් කියන්නම් මගෙන් ගොඩක් දෙනෙක් Comment වලින් වගේම inbox ඇවිල්ලත් අහල තිබ්බ කොළඹින් පිට ඉන්න අයට මේ Arduino Parts ගන්න තැනක් නැද්ද කියල. ඉතින් මන් හිතුව මන් බඩු ගන්න තැන ගැන ඔයාලට කිව්ව නම් ඒක ඔයගොල්ලන්ට පහසුවක් වෙයි කියල.
"Scion Electronics" ( සයන් ඉලෙක්ට්රොනික්ස් ) ඔයාලට Arduino සම්බන්ධ ඕනෙම item එකක් Warranty එකක් සහිතව ගන්න පුලුවන් මේ ශොප් එකෙන්. මාලබේ ස්ලිට් කැම්පස් එක ඉස්සරහ වගේම මොරටුව කැම්පස් එක ඉස්සරහත් මෙයාලගෙ shop තියනව. ඔයගොල්ලො පිට පලාතක ඉන්නව නම් ඔයාලට පුලුවන් ගෙදරටම මේ භාණ්ඩ ගෙන්න ගන්න. මෙයාලගෙ Web Site එකේ සියලුම Item ගැන විස්තර තියනව. ( http://scionelectronics.com/ ) වගකීමක් සහිතවම ඔයාලට ඕනෙ කරන Arduino Parts ගන්න පුලුවන්.
ආඩුඊනෝ ප්රෝග්රෑමිං Part 16 තුළින් නැවත හමු වෙමු.
Ratings
HTML Comment Box is loading comments...
aiye mata denaganna dewal tikak thiyenawa namber eka ewnna puluwanda.my namber 0769296651
ReplyDelete