فهرست
مقدمه
امروزه ردیاب خودرو(Car tracker) جزء لاینفکی از خودروهای مدرن میباشد و کمتر خودرویی را میتوان یافت که از این قابلیت بیبهره باشد. اگر خودرو شما هم مثل خودرو من از این قابلیت بیبهره است با من همراه باشید تا یک ردیاب خودرو بسازید.
در این مقاله با مقداری خلاقیت و استفاده از کیتهای ProMake به سادگی و با صرفه هزینه قابل قبول، یک ردیاب خودرو میسازیم که قابلیت ها و امکانات دلخواه ما را خواهد داشت. در انتها خواهیم دید که با استفاده از کیتهای ProMake میتوانیم فراتر رفته و خودرو خود را به یک خودرو متصل تبدیل کنیم و قابلیتها دلخواه و ایدههای خود را در آن پیادهسازی کنیم.
اقلام مورد نیاز برای ساخت ردیاب خودرو
برای این که یک ردیاب خودرو ساده داشته باشید نیاز به اقلام زیر داریم:
- برد آردوینو اونو(Arduino UNO) + کابل USB مناسب برای پروگرم کردن آن
- شیلد ماژولار آردوینو پرومیک(ProMake Arduino Shield)
- ماژول ProMake GSM M66 (برای ارسال اطلاعات مکانی از طریق پیامک(SMS) یا شبکه دیتا همراه(GPRS))+سیم کارت
- ماژول ProMake GPS L80 (برای دریافت اطلاعات مکانی از شبکه جهانی ماهواره ای)
- آنتن GSM (بسته محلی نصب ردیاب می توانید از آنتن های معمولی و یا خودرویی استفاده کنید)
- آنتن GPS خودرویی ( البته الزامی نیست، اگر در محل نصب و هنگام استفاده عملی مشکل جدی وجود داشت میتوانید از آن استفاده کنید)
- کابل مبدل UFL به SMA (برای متصل کردن آنتن ها)
- کابل شارژ USB Type-C
- شارژر فندکی یا پاوربانک (برای تامین تغذیه بردها)
- یک جعبه با سایز مناسب (من از جعبه گوش پاکن استفاده کردم!! خیلی اندازش خوب بود)
من از ماژول GSM استفاده کردم چون پوشش شبکه نسل دوم تلفن همراه بسیار وسیع هست و تقریبا میتونم از در دسترس بودن ردیاب خودرو در همه جا اطمینان حاصل کنم. ماژول ProMake GSM M66 از زیر ماژول Quectel M66 بهره می برد که ماژولی بسیار قدرتمند و سریع است و آنتن دهی خوبی از خود به نمایش می گذارد.
برای آشنایی بیشتر با محصولات به کار رفته در این کیت برروی آنها کلیک کنید
GSM M66
قدرتمندترین ماژول برای اتصال به شبکه تلفن همراه (2G)
Arduino Shield
شيلدی منعطف و ماژولار برای آردينو
سرهم کردن کیت
ابتدا “ProMake Arduino Shield” بر روی برد آردوینو اونو(Arduino UNO) قرار دهید سپس خیلی ساده مطابق شکل :
- یک عدد سیم کار فعال و معتبر را محل مربوطه در پشت ماژول ProMake GSM M66 قرار دهید
- ماژول ProMake GSM M66 را در محل 1
- ماژول ProMake GPS L80 را در محل 2
برروی شیلد وارد کنید.
توجه: در هنگام وارد کردن ماژول های پرومیک به جهت آنها که از بریدگی گوشه آنها قابل تشخیص است دقت کنید.
حال باید کیت شما مطابق شکل روبرو باشد.
هم اکنون می توانید آنتن GSM و در صورت نیاز آنتن GPS را متصل کنید.
با توجه به مصرف جریان به نسیت زیاد ماژول GSM هنگام ارسال (TX) نیاز است که تغذیه شیلد از طریق کانکتور USB Type-C تعبیه شده برروی شیلد تامین شود. برای این کار می توانید از یک شارژر موبایل و یک کابل Type-C معمولی استفاده کنید. (هنگام تست برروی خودرو می توانید از شارژر فندکی یا پاور بانک نیز استفاده کنید)
برنامه نویسی و بارگزاری(Upload) روی برد
برای برنامه نویسی از محیط معروف و دوست داشتنی Arduino IDE استفاده میکنیم. پس اگر آن را برروی رایانه شخصیتون نصب ندارید، سریع نصبش کنید تا بریم سراغ مرحله بعد…
نصب کتابخانه TinyGPSPlus
برای اینکه بتونیم با ماژول GPS ارتباط برقرار کنیم باید کتابخانه TinyGPSPlus را در Arduino IDE نصب نمایید.
برای اینکار کافی است از منو Sketch وارد زیر منو Include Library شوید و آیتم Manage Libraries را انتخاب نمایید و در پنجره ظاهر شده مطابق تصویر رو به رو، عبارت TinyGPSPlus را جستجو نمایید. بعد از ظاهر شدن نتایج برروی دکمه Install کلیک نمایید تا کتابخانه نصب شود.
آیتم Manage Libraries از منو Tools نیز قابل دسترس است و البته با استفاده از کلید ترکیبی Ctrl+Shift+I نیز ظاهر می شود.
نصب کتابخانه FastLED
برای کنترل RGB LED های روی شیلد، کتابخانه Fast LED را در Arduino IDE نصب نمایید.
برای اینکار کافی است از منو Sketch وارد زیر منو Include Library شوید و آیتم Manage Libraries را انتخاب نمایید و در پنجره ظاهر شده مطابق تصویر رو به رو عبارت FastLED را جستجو نمایید. بعد از ظاهر شدن نتایج برروی دکمه Install کلیک نمایید تا کتابخانه نصب شود.
ایجاد حساب کاربری Ubidots
برای اینکه بتوانید مسیرها و محل تردد خودرو خود را برروی نقشه مشاهده کنید می بایست برروی یک سرویس دهند اینترنتی پلتفورم IoT یک حساب کاربری داشته باشید. در این پروژه ما سرویس ubidots را به عنوان یک نمونه که به صورت رایگان در اختیار همه قرار دارد انتخاب کردیم.
پس به سایت https://ubidots.com مراجعه نمایید و برای خود یک حساب کاربری رایگان ایجاد نمایید.
آشنایی با کد
حال که کتابخانه های پیش نیاز را نصب کردید و حساب کاربری ubidots را ساخته اید، آماده هستید تا وارد نوشتن برنامه اصلی شوید.
عجله نکنید!! ابتدا نیاز است تغییراتی در کد زیر بدهید و بعد از آن استفاده کنید، لذا لطفا گام به گام با من همراه شوید تا هم کد را برایتان شرح دهم و هم تغییرات را باهم اعمال کنیم
- در خطوط 5 تا 12 پین های مربوط به ماژول های GSM و GPS و LED ها را با دقت از روی مارکاژهای شیلد و ماژول های ProMake استخراج و تعریف کردیم.
- در خطوط 14 تا 19 اشیاء مربوط به GPS و ارتباط سریال با ماژول GSM و LEDهای RGB را تعریف کردیم.
- در تابع setup :
- ماژول GSM را با تحریک پین PWR روشن کردیم.
- LEDهای RGB را نیز در وضعیت ابتدایی سفید رنگ قرار دادیم. تا فعال بودن هر سه رنگ به صورت بصری نیز تست شود.
- ارتباط سریال نرم افزاری بین ماژول GSM و آردوینو و ارتباط سریال سخت افزاری بین ماژول GPS و آردوینو را با سرعت 9600 راه اندازی کردیم.
- یک دستور AT برای ماژول GSM ارسال کردیم. که 10 ثانیه تاخیر در این میان باعث می شود زمان کافی برای بالا آمدن و ستاپ شدن ماژول های GSM و GPS فراهم شود.
- در صورتی که سیم کارت شما دارای PIN میباشد در این بخش میبایست AT Command های لازم را اضافه نمایید. در اینجا به جهت جلوگیری از پیچیده شدن کار از آن دستورات صرفه نظر شده است.
- در انتها LEDهای RGB را خاموش کردیم تا آماده ورود به تابع loop شویم.
- در تابع loop:
- ابتدا در یک حلقه در صورتی که داده از ماژول GPS برروی Serial دریافت کرده باشیم اقدام به خواندن و تحلیل آنها مینماییم.
- در صورتی که اطلاعات دریافتی به درستی پردازش شود و شامل موقعیت جغرافیایی معتبری باشد (که به معنی lock شدن GPS است) LED دوم را سبز رنگ میکنیم.
- سپس اگر از آخرین زمان ارسال یک دقیقه گذشته باشد، براساس طول وعرض جغرافیایی دریافتی یک عبارت JSON میسازیم و از طریق GSM برای سرور ارسال میکنیم.
- در صورتی که اطلاعات دریافتی به درستی پردازش شود اما شامل موقعیت جغرافیای معتبری نباشد (که به معنی lock نشدن GPS است)، LED دوم را آبی رنگ میکنیم.
- سپس در صورتی که بیش از 15 ثانیه از روشن شدن برد گذشته باشد و کمتر از 10 کاراکتر از ماژول GPS دریافت شده باشد به نشانه خراب بودن ماژول GPS یا عدم ارتباط با آن، هر دو چراغ LED را قرمز میکنیم و وارد یک حلقه بی نهایت شده و متوقف می شویم.
- در تابع gsm_http_post اقدام به ارسال موقعیت جغرافیایی در قالب یک پیام با فرمت JSON به سرور ارسال میکنیم.
- در این تابع با توجه به اینکه پروتکل HTTP پشتیبانی شده توسط ماژول GSM تمام قابلیتهای مورد نیاز مارا ندارد؛ تصمیم گرفتیم که درخواست HTTP را خودمان توسط یک اتصال TCP برای سرور ارسال کنیم.
- برای اینکه دادههای جغرافیایی دریافتی توسط GPS برای حساب کاربری شما ارسال شود میبایست Default token حساب خود را در بخشی از کد که عبارت REPLACE_YOUR_TOKEN نوشته شده جایگزین کنید. در ادامه در باره این که چگونه این توکن را از سایت دریافت کنید توضیح خواهم داد.
#include
#include
#include
#define GSM_TX_PIN 4
#define GSM_RX_PIN 7
#define GSM_PWR_PIN 9
#define GPS_RST_PIN 8
#define LED_PIN 16
#define NUM_LEDS 2
// The TinyGPS++ object
TinyGPSPlus gps;
//Create software serial object to communicate with SIM800
SoftwareSerial serialGSM(GSM_TX_PIN,GSM_RX_PIN);
CRGB leds[NUM_LEDS];
void setup() {
// Powering Up ...
pinMode(GSM_PWR_PIN,OUTPUT);
pinMode(GPS_RST_PIN,OUTPUT);
//GPS reset
digitalWrite(GPS_RST_PIN,LOW);
//GSM Power ON
digitalWrite(GSM_PWR_PIN,LOW);
delay(1000);
digitalWrite(GPS_RST_PIN,HIGH);
digitalWrite(GSM_PWR_PIN,HIGH);
FastLED.addLeds(leds, NUM_LEDS);
leds[0] = CRGB(255, 255, 255);
leds[1] = CRGB(255, 255, 255);
FastLED.show();
//Begin serial communication with Arduino and GPS
Serial.begin(9600);
//Begin serial communication with Arduino and GSM
serialGSM.begin(9600);
delay(5000);
serialGSM.println("AT"); //Once the handshake test is successful, it will back to OK
delay(5000);
leds[0] = CRGB(0, 0, 0);
leds[1] = CRGB(0, 0, 0);
FastLED.show();
}
long lastSendTime = 0;
void loop() {
// reading GPS data from UART
while (Serial.available() > 0){
if (gps.encode(Serial.read())){
if (gps.location.isValid()){
leds[1] = CRGB(0, 255, 0);
FastLED.show();
if(lastSendTime + 60000 < millis()){
lastSendTime = millis();
leds[0] = CRGB(0, 0, 255);
FastLED.show();
// sending location
gsm_http_post(String("{\"position\":{\"lat\":")+String(gps.location.lat(),6)+String(",\"lng\":")+String(gps.location.lng(),6)+String("}}"));
leds[0] = CRGB(0, 255, 0);
FastLED.show();
}
}else{
// location is not valid
leds[0] = CRGB(0, 0, 0);
leds[1] = CRGB(0, 0, 255);
FastLED.show();
}
}
}
if (millis() > 15000 && gps.charsProcessed() < 10)
{
leds[0] = CRGB(255, 0, 0);
leds[1] = CRGB(255, 0, 0);
FastLED.show();
// No GPS detected: check wiring.
while(true);
}
}
void gsm_http_post( String postdata) {
/* Use AT+QIDNSIP=0 to use the IP address to establish TCP/UDP session, while AT+QIDNSIP=1 is use the domain name to establish TCP/UDP session */
gsm_send_serial(F("AT+QIDNSIP=1"), 3000);
/* Use AT+QIOPEN="TCP","industrial.api.ubidots.com","80" to connect to a TCP server. If return "CONNECT OK" means successfully connected to the remote server */
gsm_send_serial(F("AT+QIOPEN=\"TCP\",\"industrial.api.ubidots.com\",\"80\""), 10000);// Start the connection to Ubidots
/* AT+QISEND, send data to server, ">" from the UART indicates the following input data is considered as data to be send. After receiving ">", input data (TEST),
the maximum length of the data is 1460, the data beyond 1460 will be omitted. Then use to send data. When receive SEND OK means the data has been sent */
gsm_send_serial(F("AT+QISEND"), 1000);// Start to send data to remote server
gsm_send_serial(F("POST /api/v1.6/devices/tracker/ HTTP/1.1"), 100);
gsm_send_serial(F("Host: industrial.api.ubidots.com"), 100);
gsm_send_serial(F("X-Auth-Token: REPLACE_YOUR_TOKEN"), 100);
gsm_send_serial(F("Content-Type: application/json"), 100);
gsm_send_serial("Content-Length: "+String(postdata.length()), 100);
gsm_send_serial(F("Connection: close"), 100);
serialGSM.println();
gsm_send_serial(postdata, 100);
serialGSM.println();
serialGSM.println((char)26); // Sending the HTTP request
/* Use AT+QISACK to query whether all the data has been sent out */
gsm_send_serial(F("AT+QISACK"), 3000);
delay(7000); // Waiting for a reply. Important! tweak this time depending on the latency of your mobile Internet connection
gsm_send_serial(F("AT+QICLOSE"), 1000);
}
void gsm_send_serial(String command, long to) {
serialGSM.println(command);
long wtimer = millis();
while (wtimer + to > millis()) {
while (serialGSM.available()) {
serialGSM.read();
}
}
}
دریافت Default token از Ubidots
برای ارسال هر درخواست به ubidots نیاز مند TOKEN است. ساده ترین راه برای دریافت توکن ، انتخاب گزینه “API Credentials” از منو کاربر در گوشه راست بالای سایت است. برای این کار:
- وارد حساب کاربری خود در سایت Ubidots شوید.
- وارد منو کاربر در گوشه سمت راست بالا شوید و برروی گزینه “API Credentials” کلیک کنید.
- حال در فرمی کنه نمایش داده می شود از بخش Tokens مقدار Default token را با استفاده از دکمه مقابل آن کپی کنید. مراقب باشید که توکن را با API Key اشتباه نگیرید!!
بارگذاری کد برروی برد
حال در محیط Arduino IDE :
- یک Sketch جدید ایجاد نماید و برنامه فوق را داخل آن کپی نماید.
- عبارت REPLACE_YOUR_TOKEN را با Default token دریافتی از سایت جایگزین نمایید.
- حال Sketch را با نامی دلخواه مثل gsm-tracker ذخیره نمایید.
- بررسی کنید که کلید S1 روی شیلد در وضعیت PROG قرار داشته باشد.
- حال می توانید برنامه را برروی برد آردوینو اونو بارگذاری(Upload) نمایید.
تست اولیه
برای اینکه قبل از انجام تست میدانی از عملکرد درست مدار اطمینان حاصل کنید:
- ابتدا کلید S1 روی شیلد را در وضعیت UART قرار دهید تا ارتباط ماژول GPS با آردوینو برقرار شود.
- یک فضای غیر سر پوشید مناسب را جهت تست انتخاب کنید.
- از قرار داشتن سیم کارت در ماژول GSM اطمینان حاصل کنید و آنتن GSM مناسب را به آن متصل نمایید.
- با توجه به اینکه ماژول GPS دارای آنتن سرخود است در تست اولیه نیاز به آنتن GPS ندارید.
- با استفاده از یک شارژر موبایل یا پاور بانک و یک کابل USB Type-C و اتصال آنها به کانکتور USB Type-C روی شیلد تغذیه شیلد، ماژول ها و آردوینو را تامین کنید.
- دقت کنید که تغذیه مدار از طریق پورت USB رایانه شخصی به علت محدودیت جریان دهی این پورت ها باعث ریست شدن ماژول GSM هنگام رجیستر شدن در شبکه خواهد شد و مدار شما کار نخواهد کرد.
با برقرار شدن تغذیه علایم زیر مشاهده می شود:
- چراغ های پاور ماژول ها و شیلد می بایست همگی روشن شوند و دو چراغ RGB به رنگ سفید برای مدت 10 ثانبه روشن میمانند.
- چراغ Net روی ماژول GSM ابتدا شروع به چشمک زدن پیاپی می کند و پس از لحظاتی (با رجیستر شدن برروی شبکه تلفن همراه) سرعت چشمک زدن آن پایین می آید.
- چراغ RGB شماره 2 روی شیلد به رنگ آبی روشن میشود که نشانه دریافت اطلاعات از ماژول GPS و نا معتبر بودن مختصات جغرافیایی فعلی ماژول است.
- اگر پس از خاموش شدن دو چراغ RGB روی شیلد، این دو چراغ به رنگ قرمز به صورت ممتد روشن ماند ابتدا بررسی کنید که کلید S1 در وضعیت UART قرار داشته باشد. اگر وضعیت این کلید درست بود احتمالا ماژول GPS مشکل سخت افزاری پیدا کرده است.
- پس از گذشت حدود 20 ثانیه تا چند دقیقه(بسته به قدرت سیگنال های GPS دریافتی در محل تست) ماژول GPS در وضعیت Lock قرار می گیرد و چراغ RGB شماره 2 روی شیلد به رنگ سبز روشن میشود. همچنین چراغ PPS روی ماژول GPS نیز شروع به چشمک زدن با سرعت یک بار در ثانیه میکند.
- سپس هر یک دقیقه یک بار چراغ RGB شماره 1 به رنگ آبی در آماده و مختصات جغرافیایی برای سرور ارسال می شود، سپس به رنگ سبز در می آید.
- در سایت Ubidots یک دستگاه به نام tracker برای شما ثبت می شود که دارای یک متغییر به نام Position است که داده های طول و عرض جغرافیایی در آن قابل مشاهده است.
مشاهده موقعیت خودرو روی نقشه
حالا برای مشاهده موقعیت خودرو برروی نقشه کافی هست مراحل زیر را طی کنید:
- وارد حساب کاربری خود در سایت Ubidots بشوید.
- از منوی Data آیتم Dashboards را انتخاب کنید.
- یک داشبرد جدید با نام دلخواه ایجاد کنید.
- به این داشبرد یک ویجت از نوع نقشه مطابق شکل رو برو اضافه نمایید.
- در بخش Settings این ویجت، فیلد Select Devices دستگاه tracker را انتخاب نمایید.
قرار دادن در جعبه و تست میدانی
حال که ردیاب ما تست اولیه را با موفقیت گذرانده می توانیم برای آن یک جعبه مناسب بسازیم و آن را در خودرو تست کنیم.
می توانید از جعبه های آماده در بازار و یا جعبه های محصولات مصرفی دیگر (مثل گوش پاک کن) که اندازه مناسبی برای بردهای ما دارند جهت قرار دادن کیت در محیط های غیر آزمایشگاهی استفاده کنید.
کافی است برای اتصال آنتن های مورد نیاز و اتصال کابل USB Type-C تغذیه شیلد سوراخ های لازم را در محل های مناسب برروی جعبه ایجاد نمایید.
همان طور که در شکل مشاهده می کنید ردیاب ما آماده تست میدانی است، فقط کافی است آن را روی داشبرد خودرو قرار دهید و اتصال شارژر فندکی را برقرار کنید و محل خودرو خود را روی نقشه مشاهده کنید. حال دوری با خودرو خود بزنید تا مسیر حر کت شما برروی نقشه نمایش داده شود.
برای استفاده های عملیاتی تر می بایست ردیاب را در یک محل مخفی در خودرو نصب کنید و در صورتی که آنتن دهی آن محل مناسب نیست از آنتن های بهتر جهت برقرار ارتباط مطمئن و دقیق استفاده کنید. تامین تغذیه از باتری خودرو نیز یک اقدام مهم است که نیاز مند تخصص و مهارت در زمینه برق خودرو می باشد.
مشاهده مسیر حرکت برروی نقشه
برای مشاهده مسیر طی شده توسط خودرو برروی نقشه، از بخش تنظیمات ویجت نقشه گزینه Map Traces را (مطابق شکل) انتخاب کنید.
بهبودهای نرم افزاری
همان طور که شاید تاکنون متوجه شده باشید این برنامه تا تبدیل شدن به یک ردیاب ایده آل خودرو فاصله زیادی دارد. در ادامه به برخی بهبود های نرم افزاری که می شود در این برنامه لحاظ نمود اشاره خواهیم داشت:
- بهبود زمان ارسال موقعیت جغرافیایی: احتمالا در تست میدانی خود مشاهده کرده باشید که ارسال موقعیت هر یک دقیقه یکبار شاید مسیر حرکت خودرو را به دقت مشخص نکند. یا زمانی که خودرو متوقف است ارسال مدوام یک مکان تکراری داده جذابی به شمار نمی آید!! برای رفع این مشکل می توانید به جای مشخص نمودن فاصله زمانی بین ارسال ها، از فاصله اقلیدسی بین نقطه های ارسال استفاده کنید.
- درخواست موقعیت از طریق پیامک: ممکن است خودرو شما در موقعیت قرار گیرد که دسترسی به شبکه داده همراه نداشته باشد، اما بتواند از طریق پیامک با شما ارتباط برقرار کند. می توانید برنامه را طور تغییر دهید که در صورت موفق نبود ارسال موقعیت به سرور ، آن را برای شما پیامک کند. یا اینکه هر گاه شما پیامک خاصی برای ردیاب ارسال کردید دستگاه موقعیت خودرو را برای شما پیامک کند.
- بررسی موفق بودن دستورات AT: همانگونه که در کد مشاهده نمودید، پاسخ ماژول GSM به AT Command های ارسالی بررسی نمی شود و فرض شده که ماژول در شرایط نرمال قرار دارد و همواره دستورات ارسالی را به درستی انجام می دهد. اما همه ما می دانیم که در کاربردهای دنیای واقعی همیشه شرایط ایده آل نیست. لذا بهتر است برنامه را طوری تغییر دهید که پاسخ های ماژول GSM به دستورات AT بررسی شود و در صورت موفق نبودن دستورات، اقدامات اصلاحی اتخاذ شود.
بهبودهای سخت افزاری
اگر بخواهیم امکانات این ردیاب خودرو را بیشتر کنیم و آن را به نمونه های تجاری موجود در بازار نزدیک تر کنیم، می بایست از یکی از دو محصول کیت آردوینو نانو یا کیت رزبری پیکو استفاده کنیم. چون:
- امکان اتصال تغذیه از باتری خودرو را دارند.
- دارابودن امکان استفاده از سه ماژول ProMake که امکان استفاده از یک ماژول بیشتر را نیز فراهم می کند.
- امکان بهره مندی از فضای حافظه و سرعت بیشتر در صورت استفاده از ماژول STM32 Nano یا Raspberry Pico
- قابل استفاده بودن ماژول های GPS و GSM فعلی برروی این کیت ها
- هشدار سرقت: با اضافه کردن یک ماژول رله دو کاناله می توانید در صورتی که خودرو از محدوده جغرافیایی تعیین شده خارج شد، یا شما پیامک به سرقت رفتن را برای ردیاب ارسال کردید، بوق و فلاشر خود را فعال نماید.
- روشن و خاموش کردن موتور از راه دور: با استفاده از یک ماژول رله دو کاناله می توانید در صورتی که خودرو از محدوده جغرافیایی تعیین شده خارج شد، یا شما پیامک به سرقت رفتن را برای ردیاب ارسال کردید، با قطع برق، موتور را از کار بیاندازد. (هشدار: این قابلیت می تواند خطرناک باشد موجب خطرات جانی و مالی شدید و حتی مرگ برای رانندهی خودرو و دیگر رانندگان و عابرین پیاده شود) برای روشن شدن موتور نیز می توانید از این ماژول استفاده کنید(البته اگر خودرو شما ایموبالایزر داشته باشد باید به طریقی آن را دور بزنید).
- دیاگ برخط: با استفاده از یک ماژول CAN BUS می توانید با کانکتور Diag خودرو ارتباط برقرار کرده و از طریق پروتکل OBD II پارامترهای مهم موتور و دیگر تجهیزات را دریافت کنید و آنها را تحلیل کرده و یا برای سرور ارسال کنید.
Relay 2CH
ماژول رله دو کاناله
STM32 NANO
استفاده از قدرت STM32 در محیط Arduino IDE
Raspberry Pico Pro
ترکيبی از قدرت پردازش و تنوع اينترفيس
Arduino Nano Pro
کریری با ابعاد کوچک و قابليتهای متنوع