اینترنت اشیاء ، آردوینو ، رزبری پای ، الکترونیک ، کامپیوتر ، اندروید

۷ مطلب با موضوع «برق و الکترونیک :: الکترونیک :: آردوینو» ثبت شده است

ساخت شیلد پروگرامر AVR با کمترین هزینه

ساخت پروگرامر AVR و برنامه ریزی میکروکنترلرهای AVR مثل ATmega328 و ATtiny85 روش های مختلفی دارد. یکی از این روش ها استفاده از برد بورد و تنظیمات ArduinoISP به همراه برد آردوینو است. اما این روش بهترین راهکاری نیست. اگر دنبال راهکار بهتری برای برنامه ریزی میکروکنترلرهای AVR می گردید، شیلد پروگرامر AVR را امتحان کنید. با الکتروپای همراه شوید.

شیلد پروگرامر AVR
شیلد پروگرامر AVR

شیلد پروگرامر AVR بسازید

در این  آموزش ساخت شیلد پروگرامر AVR را یاد می گیرید که برای برنامه ریزی انواع میکروکنترلرهای AVR کاربرد دارد. روش ساختش هم بسیار ساده است و ارزان تر از نمونه های آماده تمام می شود.


ادامه مطلب

۳۱ مرداد ۹۷ ، ۰۱:۰۶ ۰ نظر موافقین ۰ مخالفین ۰
هادی ندائی

چند وظیفگی در آردوینو ( مولتی تسکینگ )

در آموزش مولتی تسکینگ در آردوینو یاد میگیریم که چگونه می توانیم مفهوم Arduino Multitasking را اجرا کنیم، چه عواملی باید برای Multitasking در Arduino در نظر بگیریم . با الکتروپای همراه باشید تا یک پروژه ساده مولتی تسکینگ را اجرا کنیم.

مختصری درباره مولتی تسکینگ

مولتی تسکینگ در آردوینو

در اصطلاح محاسباتی، چند وظیفه ای یعنی اجرای وظایف یا فرآیندهای متعدد توسط یک کامپیوتر در طی یک دوره زمانی . در واقع معنی وقفه interrupt در چند وظیفه ای یا مولتی تسکینگ قابل تصور است .وقفه یک فرایند است که به کامپیوتر میگوید یک کار متفاوت به سرویس او نیاز دارد.

حالتی را فرض کنید که در سیستم محاسباتی هیچ وقفه ای وجود ندارد. در این جا ، اگر یک کار جدید نیاز به سرویس کامپیوتر داشته باشد، باید منتظر بمانید تا کار فعلی توسط کامپوتر کامل اجرا شود. این کار عملی نیست زیرا کار جدید ممکن است بحرانی باشد و نیازمند توجه فوری. وقفه (interrupt) در اینجا نقش مهمی ایفا می کند. هنگامی که یک Task (وظیفه) کامپیوتر را متوقف میکند، Task فعلی را در حالت تعلیق قرار می دهد، کار جدید را انجام می دهد و به وظیفه اصلی بازگشت می کند.

ادامه مطلب


۳۱ مرداد ۹۷ ، ۰۰:۵۶ ۰ نظر موافقین ۰ مخالفین ۰
هادی ندائی

آموزش آردوینو - درس اول

آموزش آردوینو

در آموزش آردوینو مقدماتی چه چیزی یاد خواهید گرفت 

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

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

نام آردینو یک تجریه چند لایه را برای شما تعریف میکند  

  • نرم افزار : برای نوشتن و ساختن برنامه خودتون و ارتباط با برد آردوینو استفاده میشه ، نام این نرم افزار آردوینو آی دی ای هست (Arduino IDE)  .
  • سخت افزار : منظورمون خود بردهای آردوئینو هست (مثلا Arduino Uno).
  • برنامه نویسی : زبان برنامه نویسی Arduino بر اساس زبان C است .
  • علامت تجاری : مارک های دیگر می توانند سخت افزار سازگار با Arduino را تولید کنند ، اما فقط برخی از بردها رسمی و معتبر هستند که
    این اجازه را می دهند تا سخت افزار و نرم افزار منبع باز و در دسترس همه باقی بماند.
۱۹ ارديبهشت ۹۷ ، ۱۹:۱۸ ۰ نظر موافقین ۰ مخالفین ۰
هادی ندائی

پروژه تنظیم خودکار ساعت روی ماژول RTC DS3231 با استفاده از ESP32 از سرور NTP

 

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

  1. برد توسعه ESP32

  2. ماژول ساعت فوق دقیق DS3231 با رابط I2C

  3. نرم افزار Arduino IDE

  4. بردبرد و سیم های اتصال

ادامه مطلب

۰۱ ارديبهشت ۹۷ ، ۱۱:۲۲ ۰ نظر موافقین ۰ مخالفین ۰
هادی ندائی

پروژه ساخت مدار اندازه گیری ضربان قلب با سنسور تشخیص ضربان قلب KY-039

نام این سنسور کمی فریب دهنده است و انتظار زیادی ایجاد میکند . با شنیدن نام سنسور تشخیص  ضربان قلب ، تصویر میشه که این سنسور از طریق مثلا ارتباط I2C  به صورت اعداد دیجیتالی ضربان قلب رو برای ما تعیین میکنه . اما در حقیقت اینطور نیست . 


این سنسور در واقع شدت نور مادون قرمز رو به صورت آنالوگ برای ما تعیین میکنه . با استفاده از ورودی ADC اعدادی از 0 تا 1024  رو به ما میده .

با قرار گرفتن انگشت بین LED مادون قرمز و گیرنده مادون قرمز با کم و زیاد شدن جریان خون در انگشت مقدار نور عبوری از انگشت هم تغییر میکنه . ما با اندازه گیری تعداد این تغیرات در واحد زمان ضربان قلب رو محاسبه میکنیم . :)


ادامه مطلب...
۱۴ فروردين ۹۷ ، ۱۲:۴۷ ۰ نظر موافقین ۱ مخالفین ۰
هادی ندائی

ساخت تراز دیجیتالی با آردوینو - اندازه گیر زاویه


در این پروژه، نگاهی دقیق تر به IC های شتاب سنج خواهیم داشت و نحوه استفاده از آنها را با آردوینو می آموزیم.

بعد از آن با استفاده از پرینتر سه بعدی جعبه تراز دیجیتالی رو خواهیم ساخت ، بریم شروع کنیم :)


تراز دیجیتال


ادامه مطلب...
۲۹ اسفند ۹۶ ، ۱۸:۲۵ ۱ نظر موافقین ۲ مخالفین ۰
هادی ندائی

آموزش ساخت مدار کنترل یک دستگاه توسط وای فای با ماژول ESP8266 و برد آردوینو

آموزش گام به گام ساخت مدار کنترل وسایل با WIFI 


من در این آموزش میخوام نحوه کنترل ، روشن و خاموش کردن یک LED ( یا هر دستگاه دیگه ای ) توسط ماژول  وای فای ESP8266 و برد Arduino رو به شما آموزش بدم . 


دقیقا چکار قرار انجام بدیم ؟!!


الان میگم ، ما با یه موبایل میخوایم توسط شبکه وای فای داخلی یک LED یا با کمی تغییر یک دستگاه رو کنترل کنیم  کنیم . 


برای اینکار از یک ماژول ESP8266 که با ارتیاط سریال به برد آردوینو وصل هست استفاده میکنیم . برد آردوینو از طریق  ESP8266 به شبکه وای فای متصل میشه تا دیتا رو از کلاینت ( در این جا موبایل ) دریافت و یا به کلایت ارسال کنه .


نقشه مدار :


شکل زیر نقشه مدار کنترل LED توسط وای فای به وسیله برد آردینو و ماژول ESP8266 نشون میده .


کنترل led توسط آردینو



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


  1. برد Arduino UNO
  2. ماژول ESP-01S دارای هسته وایفای ESP8266 

  3. LED
  4. مقاومت 330 اهم 1/4 وات
  5. مقاومت 1 کیلو اهم 1/4 وات
  6. مقاومت 2.2 کیلو اهم 1/4 وات
  7. کلید فشاری
  8. سیم های اتصال 
  9. مینی بردبرد
اینم شکل GPIO های ESP-01S

ESP8266

طراحی مدار

من از ارتباط سریال نرم افزاری برد آردینو استفاده کردم . برای این ارتباط سریالی از پایه 2 و3 برد آردینو به عنوان RX و TX استفاده کردم . پایه 2 به TX و پایه 3  توسط مقاومت 1 کیلو به RX ماژول ESP8266 متصل شوند . 
یه LED هم به GPIO 11 آردوینو متصل کردیم . 

تغذیه ماژول ESP8266 هم از خروجی ولتاژ 3.3 ولت برد آردینو گرفته شده .
کلید فشارد هم بین پایه RESET ماژول  وای فای و GND مدار قرار میگیره .

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

#include <SoftwareSerial.h>
SoftwareSerial esp8266(2,3); //Pin 2 & 3 of Arduino as RX and TX. Connect TX and RX of ESP8266 respectively.
#define DEBUG true
#define led_pin 11 //LED is connected to Pin 11 of Arduino


void setup()
  {
    pinMode(led_pin, OUTPUT);
    digitalWrite(led_pin, LOW);
    Serial.begin(9600);
    esp8266.begin(115200); //Baud rate for communicating with ESP8266. Your's might be different.
    esp8266Serial("AT+RST\r\n", 5000, DEBUG); // Reset the ESP8266
    esp8266Serial("AT+CWMODE=1\r\n", 5000, DEBUG); //Set station mode Operation
    esp8266Serial("AT+CWJAP=\"SSID\",\"Password\"\r\n", 5000, DEBUG);//Enter your WiFi network's SSID and Password.
                                   
    while(!esp8266.find("OK")) 
    {
      }
    esp8266Serial("AT+CIFSR\r\n", 5000, DEBUG);//You will get the IP Address of the ESP8266 from this command. 
    esp8266Serial("AT+CIPMUX=1\r\n", 5000, DEBUG);
    esp8266Serial("AT+CIPSERVER=1,80\r\n", 5000, DEBUG);
  }

void loop()
  {
    if (esp8266.available())
      {
        if (esp8266.find("+IPD,"))
          {
            String msg;
            esp8266.find("?");
            msg = esp8266.readStringUntil(' ');
            String command1 = msg.substring(0, 3);
            String command2 = msg.substring(4);
                        
            if (DEBUG) 
              {
                Serial.println(command1);//Must print "led"
                Serial.println(command2);//Must print "ON" or "OFF"
              }
            delay(100);

              if (command2 == "ON") 
                    {
                      digitalWrite(led_pin, HIGH);
                    }
                   else 
                     {
                       digitalWrite(led_pin, LOW);
                     }
          }
      }
  }
   
String esp8266Serial(String command, const int timeout, boolean debug)
  {
    String response = "";
    esp8266.print(command);
    long int time = millis();
    while ( (time + timeout) > millis())
      {
        while (esp8266.available())
          {
            char c = esp8266.read();
            response += c;
          }
      }
    if (debug)
      {
        Serial.print(response);
      }
    return response;
  }
 

کدهای HTML برای فرستادن فرمان به ماژول WIFI و مدار :

کدهای زیر رو در یک فایل با پسوند html ذخیره کنید .

<!DOCTYPE html >
<html>
<head>
<title>WiFi controlled LED</title>
<script src="jquery.js"></script>

</head>
<body>
<h2> <i> WiFi Controlled LED using Arduino and ESP8266 </i> </h2>
<h4> <i> Enter the IP address of ESP8266 </i> </h4>
<div style="margin: 0; width:400px; height:30px;">
<FORM NAME="form" ACTION="" METHOD="GET">
ESP8266 IP Address:
<INPUT TYPE="text" NAME="inputbox" VALUE="" />
</FORM>
</div>
<h3> Click to toggle LED! </h3>
<input type="button" NAME="butname" value="Turn ON LED" />
<p>STATUS: LED is OFF!</p>
</body>
<script>
$.ajaxSetup({timeout:1000});
btn = document.querySelector('input[name="butname"]');
txt = document.querySelector('p');
btn.addEventListener('click', led1);

function led1()
{
	var val1 = 'OFF';
	if (btn.value === 'Turn OFF LED') 
	{
	btn.value = 'Turn ON LED';
	val1 = 'OFF';
	txt.textContent = 'STATUS: LED is OFF!';
	} 
	else 
	{
    	btn.value = 'Turn OFF LED';
	val1 = 'ON';
    	txt.textContent = 'STATUS: LED is ON!';
	}
	TextVar = form.inputbox.value;
	ArduinoVar = "http://" + TextVar + ":80/";
	$.get( ArduinoVar, {led: val1})	;
	{Connection: close};
}
</script>
</html>
در کد های html بالا از کتابخانه  
“jQuery.js” استفاده شده . این کتابخانه رو از لینک زیر دانلود کنید و به همان مسیری و محلی که فایل html قرار داره اتقال بدید . 


خب حالا فایل html رو با یک Browser باز کنید . باید صفحه شما مثل عکس زیر باشه :

کنترل led با وای فای

حالا کد آردینو را روی برد آردینو آپلود کنید . وقتی کد آپلود شد سریال مانیتور Arduino IDE رو باز کنید تا مراحل ارتباط با ماژول WIFI ESP8266 رو ببینید .



ممکنه بعضی قسمت ها به صورت درهم و نامفهم نشون داده بشه ، اما نگران نباشید همه چیر درسته :)

اگر در اطلاعات نشون داده شده در سریال مانیتور IP ماژول رو پیدا نکردید از نرم افزار Advanced IP Scanner استفاده کنید .


حالا وب پیجی که ساختیم رو باز کنید و IP که نشون میده رو توی کادر خالی وارد کنید .
بعد از اینکار میتونید روی دکمه  turn ON و OFF the LED کلیک کنید یا ضربه بزنید . 

نتیجه گیری :

یک پروژه ساده با نام WiFi Controlled LED با استفاده از ESP8266 و Arduino در اینجا طراحی شد ، 
که در آن LED متصل به Arduino توسط WiFi (در همان شبکه) کنترل می شود.
اگر به جای LED و مقاومت 330 مدار زیر یعنی یک رله با درایور ترانزیستور جایگزین کنید ، میتونید به جای LED هر دستگاه یا وسیله ای رو کنترل کنید .

درایور رله
هر دستگاهی که توی یک شبکه  WIFI باشه و این Web Page  رو باز کنه و اجرا کنه میکنه کنترل رو انجام بده :)




۲۶ اسفند ۹۶ ، ۱۷:۲۵ ۳ نظر موافقین ۱ مخالفین ۰
هادی ندائی