ماژول HC-12 یک Transmission مخابراتی با فرکان 433MHz می باشد . ماژول های Transmission به ماژول های مخابراتی با امکان ارسال و دریافت دیتا گفته می شود . بر خلاف ماژول های ASK معمولی که فرستنده و گیرنده به صورت جدا می باشند ، هر ماژول HC-12 امکان ارتباط به صورت دو طرفه را دارد . یکی از مزیت های خوب این ماژول رابط UART آن است که راه اندازی و پیکربندی آن را راحت تر می کند . از ماژول های HC-12 می توان در ریموت کنترلر ها و… استفاده نمود . حتی می توانید از آن ها در شبکه های مبتنی بر IoT استفاده کنید . در این حالت گره های کم هزینه ای را خواهید داشت که در نقاط مختلف و دور از هم قادر به مخابره دیتا هستند . HC-12 مانند مودم های GSM ، بلوتوث و… از فریمور هایس پشتیبانی می کند . می توانید با استفاده از فرمان های موسوم به AT-Command ماژول ها را پیکر بندی کنید . HC-12 از ارتباط رمز گزاری شده پشتیبانی می کند لذا وجود چندین ماژول HC-12 دریک شبکه ، اختلالی ایجاد خواهد کرد . در حالت عادی و با استفاده از آنتن خود ماژول ( یک آنتن 433MHz فنری ) می توانید تا فواصل 100 متر دیتا را مخابره کنید . برای دریافت داده های ارسالی ماژول ، نیاز به یک HC-12 دیگر دارید . در واقع در هر ارتباط باید از دو ماژول HC-12 استفاده کنید .
در تصویر زیر پین های این ماژول نشان داده شده است :
1)پین SET جهت رفتن به مود At+Command باید صفر شود
2)پین Vcc پین تغذیه ماژول
3)پین GND زمین ماژول
4)پین های Rx و Tx جهت ارتباط سریال با ماژول
5)پین ANT جهت اتصال به انتن(علاوه بر این پین یک سوکت IPX بر روی ماژول موجود است)
راه اندازی ماژول HC-12 با آردوینو :
راه اندازی این ماژول ها بسیار ساده بوده و حتی می توان بدون ایجاد تغییر در تنظیمات اولیه ، آن را راه اندازی کرد ( تنظیمات اولیه کلیه ماژول ها یکی بوده و به همیت سبب دو ماژول بدون تغییر در تنظیمات اولیه ، توانایی ارتباط با همدیگر را دارند ).
این ماژول دارای دو مد عملکرد عادی و حالت At+Command می باشد . در مد At+Command می توان ماژول را تنظیم کرد و در حالت عادی با قرار گیری هر دیتایی در پبن های RX و TX همان دیتا عینا ارسال می شود . در حالت عادی باید پین SET به جایی متصل نباشد . برای حالت At+Command باید پین SET را قبل از روشن کردن ماژول صفر کنید .
در مثال زیر با استفاده از ماژول HC-12 بین دو عدد آردوینو ارتباط برقرار می شود .
#include <SoftwareSerial.h> SoftwareSerial hc12(6, 5); void setup() { pinMode(7,OUTPUT); digitalWrite(7,LOW); // enter AT command mode Serial.begin(9600); hc12.begin(9600); hc12.print(F("AT+C001")); // set to channel 1 delay(100); digitalWrite(7,HIGH);// enter transparent mode } void loop() { if(Serial.available()) hc12.write(Serial.read()); if(hc12.available()) Serial.write(hc12.read()); }