دوره آموزشی اینترنت اشیاء با محوریت آردوینو

اینترنت اشیاء چیست؟

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

اینترنت اشیاء مفهومی در دنیای فناوری است که بر مبنای آن دستگاه‌ها و اجزاء زندگی انسان، به طور هوشمندانه و بدون دخالت انسان اطلاعات موردنیاز برای فعالیت بهتر را از دستگاه‌های دیگر در شبکه دریافت کرده و با آن‌ها به اشتراک می‌گذارد.

اینترنت اشیاء

آردوینو چیست؟

امروزه برنامه‌نویسی برای کامپیوتر فعالیتی بسیار شیرین است و دلیل آن این است که هر فرد مشتاقی می‌تواند با زبان‌ها و محیط‌های توسعه نرم‌افزار مختلف به سرعت برنامه‌ای نوشته و اجرا کند؛ اما اوضاع در دنیای الکترونیک متفاوت است.

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

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

آردوینو برای شما مدارهای آماده به کاری ساخته که می‌توانید با زبانی مشترک روی همه‌شان برنامه بنویسید و از پایه‌های دیجیتالی میکروکنترلرهای آن‌ها برای کارهای مختلفی استفاده کنید. علاوه بر این، ثبت برنامه‌ها روی پردازنده دیگر نیازمند خرید دستگاه‌های پروگرمر نیست و این فرایند به سادگی توسط خودِ آردوینو انجام می‌گردد.

شروع به یادگیری، ساخت و توسعه ایده‌ها و حتی ساخت دستگاه‌های تجاری با آردوینو بسیار شیرین‌تر است 🙂

از آنجایی که آردوینو پروژه‌ای آزاد است، هر کسی می‌تواند آردوینو را به دلخواه خودش سفارشی‌سازی کرده و یا حتی آردوینوی خودش را بسازد! آردوینو در حال حاضر پرطرفدارترین بُرد توسعه‌ی الکترونیکی دنیاست و میلیون‌ها کاربر از سراسر دنیا از استفاده‌ی آن لذت می‌برند و از نظر سخت‌افزاری و نرم‌افزاری آن را توسعه می‌دهند.

چرا این دوره آموزشی را طراحی کردم؟

بیش از 7 سال از شروع فعالیت من در دنیای الکترونیک می‌گذرد. در طی این سال‌ها پروژه‌های مختلفی را برای مشتریان طراحی کردم و نسخه پیش‌تولید (پروتوتایپ) بعضی از آن‌ها را در وب‌سایتم برای شما به اشتراک گذاشته‌ام. یادگیری من در این سال‌ها از طریق منابع مختلف و معتبری مانند Adafruit و Sparkfun انجام شده و در حین ساخت پروژه‌ها تجربیات زیادی را هنگام بروزرسانی و ارتقای دستگاه‌هایم کسب کردم.

بسیاری از دوستان را دیده‌ام که قصد شروع یادگیری الکترونیک با آردوینو را دارند یا دنبال منبع آموزشی‌ای هستند تا دانش خود را در رابطه با اینترنت اشیاء و انواع روش‌های ساخت این دستگاه‌ها افزایش دهند. این افراد از نبود منبعی مطمئن و جامع برای یادگیری اینترنت اشیاء و آردوینو در بین منابع فارسی گله دارند. این مسئله باعث شد تا در طی یک سال گذشته تجربیات خودم را در یک مجموعه آموزشی 20 قسمتی با عنوان «مجموعه آموزشی اینترنت اشیاء با محوریت آردوینو» آماده و به شما دوستان عرضه کنم:

مجموعه اینترنت اشیاء با آردوینو

همین حالا توی دوره ثبت‌نام کن ✅

ادامه‌ی مطلب

رسم مدار منطقی خودکار آنلاین از روی جدول کارنو

اگر مثل من حال و حوصله طراحی مدار منطقی ندارید، با استفاده از سایت www.32×8.com می‌توانید با وارد کردن جدول صحت متغیرها یا جدول کارنو، معادله مربوطه و مدار منطقی PAL آن را با استفاده از گیت‌های AND و OR مشاهده کنید.

همچنین سایت tma.main.jp تمامی این فعالیت‌ها را همراه با چند قابلیت دیگر (مثل تبدیل تابع به جمع مینترم یا ضرب ماکسترم) انجام می‌دهد.

چگونه در php آدرس پوشه فعلی را به دست بیاوریم؟

گاهی اوقات نیاز داریم تا بدانیم پرونده php ای که در حال اجراست از کجا دارد اجرا می‌شود؟ یا می‌خواهیم یکی از پرونده‌ها را باز کنیم و باید آدرس مطلق (Absolute) وارد کنیم نه نسبی (Relative)؛ به کمک دستور dirname(__FILE__)‎ می‌توانیم آدرس پوشه فعلی را در یک String تحویل بگیریم. مثلا اینجا نیاز داشتم تا آدرس یک فونت را داشته باشم تا در تابع imagettftext استفاده کنم:

 

خلاصه فرایند ثبت نام برای دریافت کد بورسی از سجام

چند روز پیش برای مستقیم سازی مالکیت سهام عدالت در سامانه سجام ثبت نام کردم؛ برای احراز هویت اطلاعات نیاز به مراجعه حضوری به دفاتر منتخب بود. با توجه به اوضاع کرونایی جهان فرصت نمی شد تا برای احراز هویت اقدام کنم اما امروز فرصت شد. بد نیست به صورت خلاصه نگاهی به فرآیند دریافت کد بورسی بیندازیم:

1- قدم اول این است که در سامانه سجام ثبت نام کنید. به sejam.ir مراجعه کنید و ثبت نام را بزنید. به طور کلی آماده ورود هرگونه اطلاعات بی ربط و با ربطی باشید ?? (احتمالا هدف از دریافت اینهمه اطلاعات غیرضروری مثل کد و نام شعبه و نوع حساب بانکیتان مبارزه با پولشویی است! اما ما که در سامانه های مهم تر از این با اطلاعات کمتری ثبت نام کردیم و اتفاقی نیفتاد…)

در نهایت پس از پرداخت هزینه ۱۰ هزار تومانی، یک کد پیگیری برای شما پیامک می شود که باید آن را برای مرحله ۲ استفاده کنید:

مرتضی رستگار گرامی، كد پيگيري شما در سامانه سجام
xxxxxxxxxx مي باشد، لطفا با همراه داشتن مدارك شناسايي به مراكز منتخب احراز هويت سجام مراجعه و فرايند سجامي شدن خود را تكميل نماييد.
www.sejam.ir
شرکت سپرده گذاری مرکزی

ادامه‌ی مطلب

چگونه بفهمیم در سی‌شارپ تابع از کجا فراخوانی شده است؟

گاهی اوقات تابعی (یا همان متد = method) از داخل تابع‌های مختلفی اجرا می‌شود و در هنگام خطاگیری آدم می‌ماند که این تابع اصلا از کجا الان صدا زده شد؟!

با استفاده از کد زیر می‌توانید بفهمید که اسم تابعی که تابع را صدا زده چیست:

 

چگونه اتصال VNC با ویندوز برقرار کنیم؟

یکی از دوستان می‌خواست به وسیله‌ی تلفن اندرویدیش از راه دور به رایانه‌اش متصل باشد و کنترلش کند. از قبل با VNC کار نکرده بودم ولی مطمئن بودم که باید ساده باشد ? و بود:

1- ویندوزتان را فرستنده کنید:

یکی از ساده‌ترین و مشهورترین نرم افزار های VNC، جفت نرم افزارِ VNC Connect و VNC Viewer از شرکت RealVNC هستند که از وبسایت این شرکت هم قابل دریافتند اما پولی‌اند و بهتر است مثل بچه‌ی آدم از یکی از سایت‌های ایرانی دانلودشان کنیم ?. برای اینکه بتوانید از روی دستگاه دیگر به رایانه‌تان متصل شوید؛ نرم افزار VNC Connect را دریافت و روی ویندوز نصب کنید. برای استفاده‌ی عادی نیازی به هیچ تنظیم خاصی وجود ندارد.

پس از نصب میبایستی شماره سریال آن را وارد کنید که طبق راهنمای نصب برنامه‌ی سریال‌ساز را باز کرده و در حالی که باز است، شماره سریال ایجاد شده را در وی‌ان‌سی کانکت وارد کنید. حالا محیطی شبیه به این را خواهید دید:

در سمت چپ آدرس IP شما به عنوان راه اتصال به رایانه نمایش داده می‌شود. اگر به چند شبکه مختلف متصل باشید با زدن Other ways to connect می‌توانید آن‌ها را نیز مشاهده نمایید.

سوال: چرا با خاموش و روشن کردن مودم دیگر نمی‌توانم به VNC ام وصل شوم؟ ادامه‌ی مطلب

محیط فارسی در macOS 7.1 کلاسیک!

همانطور که در مطلب فارسی نویسی در MacOS 9 کلاسیک! گفته بودم، به دنبال مصداق جمله آن کارشناس اپل یعنی سیستم عامل مکینتاش با محیط و تقویم فارسی بودم.

متاسفانه برای نسخه های 8 و 9 زبان فارسی و عربی موجود نبود (یا حداقل کسی جایی ذخیره اش نکرده و من پیدایش نکردم؛ چون معمولا سیستم عامل پسرفت نمی کند) اما یک نسخه مک او اس 7.5 عربی یافتم:

اینجا 7.5 عربی در حال اجراست و من نصاب نسخه ی فارسی را اجرا کرده ام تا نسخه را عوض کنم (اگر در نسخه های با اسکریپت Roman این نصاب را اجرا کنید چرت و پرت می بینید)

بعد از آن دنبال نسخه فارسی 7.5 گشتم اما نبود. در نهایت یک نسخه 7.1 (انتشار در 1993 – ۱۳۷۲ شمسی) پیدا کردم که با SheepShaver هم اجرا نمی شد (بالا می آمد یک پیغام چرت و پرت نمایش می داد که بعدا فهمیدم می گوید سخت افزار شما جدیدتر از آن است که 7.1 را اجرا کند (فکر کن!) و نسخه ی جدیدتری نصب کنید) و از شبیه ساز Basilisk II استفاده کردم (این حجم از شباهت دو نرم افزار عجیب است!). در نهایت به محیط فارسی و تقویم شمسی در macOS رسیدم:

فارسی نویسی در MacOS 9 کلاسیک!

تابحال از WayBack Machine استفاده کرده اید؟ ذخیره بسیار بزرگی از وبسایت های جهان از سال های بسیار دور تا الان. یکی از تفریحات سالم من (!) این است که سایت های مشهور را از ابتدا تا انتها نگاه کنم…

دیروز در دریای صفحات قدیمی سایت اپل مستغرق بودم که یک هو به این صفحه رسیدم: The Year 2000: No Big Deal, or Apocalypse Never؛ طرف در مورد این نوشته بود که آیا مکینتاش ها با سال 2000 مشکل دارند (مشکل سال 2000)، سال 2000 را کبیسه حساب می‌کنند؟ سال 2019 چه مشکلی دارد؟ خب این مطالب طبیعی بود اما در میان متن به جمله ای برخوردم که چشمانم گرد شد!

All localized versions of the Mac OS include Gregorian calendar support. In addition, the Arabic version of the Mac OS supports both the Arabic astronomical lunar calendar and the Arabic civil lunar calendar. The Hebrew version of the Mac OS supports the Jewish calendar. The Persian version of the Mac OS supports the Iranian national calendar.

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

خب اگر الان که 2019 است هم بگویند مک او اس تقویم شمسی ندارد تعجبی ندارد چون محصولات اپل بیشتر برای انگلیسی زبان ها و آمریکایی ها ساخته شده و محلی سازیش همواره از ویندوز کمتر است (گرچه الان هم تقویم شمسی خوبی دارد)، اما این مطلب برای سال 1999 است و در آدرسش هم سال 1996 زده شده! یعنی بیشتر از بیست سال پیش! خصوصا اینکه ما همواره تحریم هم بوده ایم…

با توجه به اینکه از قبل یک نسخه از 9 را روی شبیه ساز داشتم و در جستجو هایم حتی نسخه عربی اش را پیدا نکرده بودم گفتم حتما باید پیدایش کنم!

ادامه‌ی مطلب

جنس ارزان، بیچاره ات می‌کند!

پسرم!

اگر بخواهم نتیجه چند سال فعالیت در زمینه الکترونیک (مشخصا این یک سال و خورده ای) را در یک جمله به تو بگویم، این است که: “منبع تغذیه (آداپتور) ارزان نخر پشیمان می‌شوی!”

چگونه در C# WPF ویژگی یک عنصر را بین دو DynamicResource جابجا کنیم؟

فرض کنید داخل پرونده Xaml تان دو SolidColorBrush تنظیم کرده اید و قصد دارید در طول برنامه سی شارپتان رنگ پس زمینه یک عنصر را بین آن دو جابجا کنید؛ اگر در اینترنت مقداری بگردید، اکثرا این کد را به شما پیشنهاد می کنند:

اما این کد باعث می گردد تا مقدار آن SolidColorBrush تنها در لحظه محاسبه شده و تنظیم گردد؛ در حالی که ما نیاز داریم تا اگر مقدار SolidColorBrush را تغییر دادیم رنگ اجزای استفاده کننده از آن نیز به صورت خودکار تغییر کنند.

پس از مقداری جستجو به کد های زیر رسیدم:

در XAML:

در C#: