جستجو برای:
سبد خرید 0
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع ثبت نام دوره تابستانی آوات روبو
فرصت تکرار نشدنی ثبت نام در دوره های حضوری با 20% تخفیف!
ساعت
دقیقه
ثانیه
مشاهده دوره های آموزشی
رباتیک و هوافضا
ورود
با ایمیل با شماره موبایل
گذرواژه خود را فراموش کرده اید؟
عضویت
با ایمیل با شماره موبایل
  • 09152556924
  • sup@avatrobo.ir
رباتیک و هوافضا
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

رباتیک و هوافضا > مقالات > پروژه > ساخت چت روم خصوصی بوسیله آردینو, ماژول nRF24L0 و Processing

ساخت چت روم خصوصی بوسیله آردینو, ماژول nRF24L0 و Processing

اسفند 6, 1396
ارسال شده توسط mjavad
پروژه، پروژه های آردوینو، پروژه های رایگان
ساخت چت روم خصوصی بوسیله آردینو و ماژول nRF24L0

به نام خدا

ساخت چت روم خصوصی بوسیله آردینو, ماژول nRF24L0 و Processing

ساخت چت روم خصوصی بوسیله آردینو و ماژول nRF24L0

برای مردم معمولی در دنیای مدرن امروزی, ساخت شبکه محلی که بتوان در آن اطلاعات شخصی و محرمانه را به اشتراک گذاشت تقریبا غیر ممکن است. دلیل آن این است که اکثر مردم برای انجام این چنین کاری از واتساپ، فیس بوک، تلگرام و… استفاده می کنند و بستر اصلی همه آن ها اینترنت است.اگر بخواهیم از اینترنت برای اینکار استفاده نکنیم باید چه کنیم؟ اینکار با استفاده از میکروکنترلر و مخابره گر بی سیم امکان پذیر است.

ساخت چت روم خصوصی بوسیله آردینو و ماژول nRF24L0

طرز کار پروژه ساخت چت روم خصوصی بوسیله آردینو, ماژول nRF24L0 و Processing:

برای این پروژه به یک جفت برد آردینو و ماژول بی سیم نیازمندیم. ما از ماژول بی سیم nRF24L0 استفاده کرده ایم. طرز کار با این ماژول ساده است.

ساخت چت روم خصوصی بوسیله آردینو و ماژول nRF24L0

آردینو و ماژول nRF24L0 بوسیله ارتباط سریال با هم ارتباط برقرار می کنند. ماژول nRF24L0 یک فرستنده گیرنده نیمه دوطرفه است چرا که میتواند همزمان اطلاعات را ارسال و دریافت کند. اطلاعاتی که توسط این ماژول جمع آوری و فرستاده می شود میتواند توسط هر ماژول دیگری دریافت شود.

از انجایی که ما میخواهیم چت روم شخصی سازی شده خودمان را بسازیم از «Processing» استفاده میکنیم. Processing نرم افزاری است که بوسیله UART با آردینو ارتباط برقرار می کند. ما بوسیله زبان Processing فایلی با فرمت exe درست می کنیم که روی هر کامپیوتری که Java Runtime داشته باشد قابل اجرا است. برای چت کردن فقط کافیست که آردینو را متصل کنیم و فایل exe را باز کنیم.

در این پروژه اعضای چت روم دو نفرند ولی با توجه به این که nRF24L0 شش خط  دارد, تعداد اعضا را میتوان به 6 نفر هم رساند.این چت روم ها میتواند تا فاصله 100 متری از یکدیگر کار کنند که البته میتوان این مقدار را نیز با خرید ماژولی بهتر افزایش داد.

قطعات مورد نیاز:

  • دو عدد آردینو از هر مدلی
  • دو عدد nRF24L01
  • رگولاتور ولتاژ 3.3 (الزامی نیست)
  • سیم برد بورد

دیاگرام مدار:

Arduino Mega with nRF24L01 

ساخت چت روم خصوصی بوسیله آردینو, ماژول nRF24L0 و Processing

Arduino Nano with nRF24L01

ساخت چت روم خصوصی بوسیله آردینو, ماژول nRF24L0 و Processing

نکاتی درباره کار با nRF24L01:

برای اینکه نویز پذیری ماژول nRF24L01 را کاهش دهید به این نکات توجه کنید. مطمئن شوید ماژول چینی نمی خرید(!!).این ماژول نسبت به تغییرات ولتاژ و جریان حساس است و به سادگی خراب می شود حتی امکان سوختن ماژول نیز وجود دارد. برای اینکه ولتاژ تغذیه را صاف کنید از دو خازن 10uf و 0.1uf در دوسر vcc و gnd استفاده کنید.

کد های آردینو:

از آنجایی که ارتباط بین آردینو و nRF24L01 بوسیله spi صورت می گیرد باید کتابخانه spi را به برنامه اضافه کنیم. همچنین از کتابخانه RF24 برای کار کردن با nRF24L01 استفاده می کنیم. این کتابخانه ها را می توانید از آخر برنامه دانلود کرده و به IDE اضافه کنید.

#include <SPI.h>  
#include "RF24.h"

پایه های CE و CS ماژول NRF به تریب به پایه های 8 و 10 آردینو متصل می شود.

RF24 myRadio (8, 10);

یک ساختار به نام package میسازیم که شامل یک آرایه 20 متغییره است.

struct package
{
  char  text[20]; //Text to transmit on air
};
typedef struct package Package;
Package data;

در تابع () void setup , ما baud rate را روی 9600 تنظیم کرده ایم. ماژول را روی 115 و ولتاژ پایین, با سرعت  250kbps تنظیم کرده ایم.این به دلخواه قابل تغییر است.

void setup() 
{
  Serial.begin(9600);
  delay(1000);
  //Serial.print("Setup Initialized");
  myRadio.begin(); 
  myRadio.setChannel(115);  //115 band above WIFI signals
  myRadio.setPALevel(RF24_PA_MIN); //MIN power low rage
  myRadio.setDataRate( RF24_250KBPS ) ;  //Minimum speed
}

ماژول در دو حالت کار می کند یا فرستنده که اطلاعات را از طریق بافر سریالش می فرستد یا درحالت دریافت که دنبال گرفتن اطلاعت است. دیتایی که کاربر مینویسد در آرایه ای ذخیره و به () WriteData ارسال میشود تا فرستاده شود.

void loop()  
{
  
  while(Serial.available()>0) //Get values from user
  { 
    val = Serial.peek();
    if(index < 19) // One less than the size of the array
      {
          inChar = Serial.read(); // Read a character
          inData[index] = inChar; // Store it
          index++; // Increment where to write next
          inData[index] = '\0'; // Null terminate the string
      }
     if (val=='#')
      { 
       strcpy( data.text, inData);
        WriteData(); //Put module in Transmit mode
    while (index!=0)
      {
      inData[index] = ' ';
      index--;
      }
      }
  }
ReadData(); //Put module Receive mode
}

تابع () void WriteData دیتا را روی آدرس0xF0F0F0F0AA می نویسد. این آدرس در ماژول های دیگر بعنوان خط نوشتن استفاده می شود.

void WriteData()
{
  myRadio.stopListening(); //Stop Receiving and start transminitng 
  myRadio.openWritingPipe(0xF0F0F0F066);//Sends data on this 40-bit address
  myRadio.write(&data, sizeof(data)); 
  delay(300);
}

تابع () void ReadData دیتا را روی آدرس 0xF0F0F0F066 می نویسد. این آدرس در ماژول های دیگر بعنوان خط خواندن استفاده می شود.

void ReadData()
{
myRadio.openReadingPipe(1, 0xF0F0F0F0AA); //Which pipe to read, 40 bit Address
  myRadio.startListening(); //Stop Transminting and start Reveicing 
  if ( myRadio.available()) 
  {
    while (myRadio.available())
    {
      myRadio.read( &data, sizeof(data) );
    }
    Serial.println(data.text);
  }
}

نرم افزار Processing:

Processing یک نرم افزار سورس باز (open source) است که برای طراحی گرافیکی استفاده می شود. کار کردن با این نرم افزار بسیار ساده است و شباهت زیادی به Android Development IDE دارد. کد های Processing برای هر دو صفحه چت در قسمت دانلود آمده است. برای استفاده از این کد ها باید Processing را نصب کرده باشید. در کد زیر قسمت  “port = new Serial(this,Serial.list()[4],9600); //Reads the 4th PORT at 9600 baudrate”  مهم است چون که مشخص می کند کدام پورت دیتا را میخواند.

void setup()
{
  size(510,500);
  port = new Serial(this,Serial.list()[4],9600); //Reads the 4th PORT at 9600 baudrate
  println(Serial.list());
  background(0);
}

در اینجا ما از پورت چهارم آردینو دیتا را خوانده ایم.

برای مثال اگر شما داشته باشید [COM[5] COM[2] COM[1] COM [7] COM[19 در کد بالا اطلاعات از [COM [7 خوانده میشود.

تست کردن:

ساخت چت روم خصوصی بوسیله آردینو و ماژول nRF24L0

آردینو ها را به کامپیوتر خود متصل کنید. صفحه Processing را باز کرده شروع به نوشتن کنید, در نهایت ENTER را بزنید. خواهید دید که پیغامتان روی صفحه دیگر Processing نمایش داده می شود.

دانلود کد پروژه ساخت چت روم خصوصی بوسیله آردینو, ماژول nRF24L0 و Processing:

[maxbutton id=”188″ url=”http://avatrobo.ir/wp-content/uploads/2018/02/ساخت-چت-روم-خصوصی-بوسیله-آردینو-ماژول-nRF24L0-و-Processing.txt” ]

 

Code for Arduino Mega:

 

/**********
Arduino Mega with NRF24l01 for Chatroom project
Code by B.Aswinth Raj
on 8-2016
***********/

#include <SPI.h>  
#include "RF24.h"  // Manicbug LIB to be downloaded

RF24 myRadio (49, 53); // CE to 49 and 53 to CS
struct package
{
  char  text[20]; //Text to transmit on air
};

//byte addresses[][6] = {"0"}; 
char inData[20]; // Allocate some space for the string
char inChar; // Where to store the character read
byte index = 0; // Index into array; where to store the character
 int val;

typedef struct package Package;
Package data;

void setup() 
{
  Serial.begin(9600);
  delay(1000);
  //Serial.print("Setup Initialized");
  myRadio.begin(); 
  myRadio.setChannel(115);  //115 band above WIFI signals
  myRadio.setPALevel(RF24_PA_MIN); //MIN power low rage
  myRadio.setDataRate( RF24_250KBPS ) ;  //Minimum speed
}

void loop()  
{
  
  while(Serial.available()>0) //Get values from user
  { 
    val = Serial.peek();
    if(index < 19) // One less than the size of the array
      {
          inChar = Serial.read(); // Read a character
          inData[index] = inChar; // Store it
          index++; // Increment where to write next
          inData[index] = '\0'; // Null terminate the string
      }
     if (val=='#')
      { 
       strcpy( data.text, inData);
        WriteData(); //Put module in Transmit mode
    while (index!=0)
      {
      inData[index] = ' ';
      index--;
      }
      }
  }
ReadData(); //Put module Receive mode
}

void ReadData()
{
myRadio.openReadingPipe(1, 0xF0F0F0F0AA); //Which pipe to read, 40 bit Address
  myRadio.startListening(); //Sopt Transminting and start Reveicing 
  if ( myRadio.available()) 
  {
    while (myRadio.available())
    {
      myRadio.read( &data, sizeof(data) );
    }
  // Serial.print("\nReceived:");
    Serial.println(data.text);
  }
}

void WriteData()
{
  myRadio.stopListening(); //Stop Receiving and start transminitng 
  myRadio.openWritingPipe(0xF0F0F0F066);//Sends data on this 40-bit address
  myRadio.write(&data, sizeof(data)); 
    //Serial.print("\nSent:");
    //Serial.println(data.msg);
  delay(300);
}

 

Code for Arduino Nano:

/**********
Arduino Nano with NRF24l01 for Chatroom project
Code by B.Aswinth Raj
on 8-2016
***********/

 

#include <SPI.h>  
#include "RF24.h"  // Manicbug LIB to be downloaded

RF24 myRadio (8, 10); // CE to 8 and 10 to CS

struct package
{
  char  text[20]; //Text to transmit on air
};

typedef struct package Package;
Package data;

char inData[20]; // Allocate some space for the string
char inChar; // Where to store the character read
byte index = 0; // Index into array; where to store the character
 int val;

void setup()
{
  Serial.begin(9600);
  delay(1000);
  myRadio.begin();  
  myRadio.setChannel(115);  //115 band above WIFI signals
  myRadio.setPALevel(RF24_PA_MIN); //MIN power low rage
  myRadio.setDataRate( RF24_250KBPS ) ; //Minimum speed
  //Serial.print("Setup Initialized");
}

void loop()
{
  while(Serial.available()>0) //Get values from user
  { 
    val = Serial.peek();
    if(index < 19) // One less than the size of the array
      {
          inChar = Serial.read(); // Read a character
          inData[index] = inChar; // Store it
          index++; // Increment where to write next
          inData[index] = '\0'; // Null terminate the string
      }
     if (val=='#')
      { 
       strcpy( data.text, inData);
        WriteData(); //Put module in Transmit mode
   while (index!=0)
      {
      inData[index] = ' ';
      index--;
      }
      }
  }
 ReadData(); //Put module Receive mode
}

void WriteData()
{
  myRadio.stopListening(); //Stop Receiving and start transminitng 
  myRadio.openWritingPipe( 0xF0F0F0F0AA);  //Sends data on this 40-bit address
  myRadio.write(&data, sizeof(data)); 
//Serial.print("\nSent:");
//Serial.println(data.text);
  delay(300);
}

void ReadData()
{ 
myRadio.openReadingPipe(1, 0xF0F0F0F066); // Which pipe to read, 40 bit Address
  myRadio.startListening();  //Stop Transminting and start Reveicing 
  if ( myRadio.available()) 
  {
    while (myRadio.available())
    {
      myRadio.read( &data, sizeof(data) );
    }
    //Serial.print("\nReceived:");
    Serial.println(data.text);
  }
}
برچسب ها: nRF24L0Processingآردوینو یونوپروژه آردوینوپروژه چت روم خصوصی بوسیله آردینوپروژه ساخت چت روم خصوصی بوسیله آردینوپروژه ماژول nRF24L0پروژه های آردوینوچت روم با آردوینودانلود پروژهدانلود پروژه دانلود پروژهدانلود پروژه ی آردوینوراه اندازی nRF24L0راه اندازی nRF24L0 با آردینوراه اندازی ماژول nRF24L0ساخت چت روم خصوصی بوسیله آردینوسنسورکد های nRF24L0ماژول nRF24L0ماژول nRF24L0 و Processing
قبلی ساخت سیستم هشدار درب با استفاده از آردوینو و سنسور آلتراسونیک
بعدی ساخت آمپرسنج با آردوینو

پست های مرتبط

اردیبهشت 9, 1398

برنامه نویسی به زبان پایتون برای رزبری پای

mjavad
ادامه مطلب

اسفند 5, 1397

تشخیص رنگ با استفاده از رزبری پای

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول

mjavad
ادامه مطلب

بهمن 2, 1397

ساخت اسپیدکنترلر موتور براشلس 3 ( با سنسور )

Author Avatar
Admin
ادامه مطلب

دیدگاهتان را بنویسید لغو پاسخ

دسته های محصولات
آخرین دیدگاه‌ها
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در درباره ما
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
  • امیر در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
ژوئن 2026
ش ی د س چ پ ج
 12345
6789101112
13141516171819
20212223242526
27282930  
« آوریل    
فهرست 1
  • عضویت
  • ویرایش حساب کاربری
  • ورود
  • خانه
فهرست 2
  • حمایت مالی
  • تبلیغات
  • فروشنده
  • داشبورد فروشندگان
  • سفارش پروژه
  • تماس با ما
  • درباره ما
فهرست 3
  • ویرایش حساب کاربری
  • فراموشی رمز عبور
  • ثبت نام
  • ویرایش حساب کاربری
محل کد نماد...
جستجو برای:
محصولات
  • دوره کوادکوپتر سرعتی FPV دوره آموزش ساخت کوادکوپتر مسابقاتی FPV
    نمره 4.00 از 5

    4,830,000 
  • دوره هواپیما مقدماتی تا پیشرفته دوره آموزش ساخت پهپاد بال ثابت ( هواپیما ) - مقدماتی تا پیشرفته
    10,480,000 
  • دوره کوادکوپتر مقدماتی دوره آموزش مقدماتی ساخت مولتی کوپتر (کوادکوپتر، هگزاکوپتر و ...)
    2,490,000 
  • دوره کوادکوپتر فیلم بردار دوره آموزش ساخت پهپاد فیلم بردار ( مولتی کوپتر )
    8,970,000 
  • دوره هواپیمای مدل موتور کشی دوره آموزش ساخت هواپیمای موتور کشی
    2,030,000 
نوشته‌های تازه
  • برنامه نویسی به زبان پایتون برای رزبری پای
  • تشخیص رنگ با استفاده از رزبری پای
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول
  • کنترل PID با آردوینو و دو موتور براشلس

درباره آوات روبو

 

آرمان آوات روبو نه تنها تغییر اکنون و تعریف آینده آموزش عملی و کاربردی در ایران، بلکه توسعه همین تغییر به کل دنیا است. نسخه بین المللی آوات روبو، هم اکنون در حال برنامه ریزی است و کارهای اولیه آن برای فعالیت در یوتیوب و یک سایت انگلیسی در حال انجام است.

دسترسی سریع

  • دوره های آموزشی
  • کیت
  • کلاس های حضوری
  • پروژه

کاوش

  • درباره ما
  • تماس با ما
  • مقالات

شبکه های اجتماعی

  • اینیستاگرام
  • یوتیوب
  • تلگرام

استفاده از مطالب سایت برای مقاصد غیر تجاری و با ذکر منبع بلامانع است. تمامی حقوق برای آوات روبو محفوظ است.