رفتن به مطلب
انجمن الکترولب

تمامی فعالیت ها

این جریان به طور خودکار بروز می شود     

  1. امروز
  2. معرفی کتاب های رزبری پای

    کتاب آموزش برنامه نویسی یا اسکرچ کتاب رسمی بیناد رزبری پای لینک دانلود: https://raspberrypi.org/magpi-issues/Essentials_Scratch_v1.pdf
  3. معرفی کتاب های رزبری پای

    کتاب راه اندازی GPIO رزبری پای زیرو کتاب رسمی بنیاد رزبری پای لینک دانلود: https://raspberrypi.org/magpi-issues/Essentials_GPIOZero_v1.pdf
  4. معرفی کتاب های رزبری پای

    راهنمای استفاده از دوربین رزبری پای کتاب رسمی بنیاد رزبری پای لینک دانلود: https://www.raspberrypi.org/magpi-issues/Essentials_Camera_v1.pdf
  5. معرفی کتاب های رزبری پای

    دانلود کتاب پروژه های رزبری پای کتاب رسمی بنیاد رزبری پای لینک دانلود: https://www.raspberrypi.org/magpi-issues/Projects_Book_v3.pdf
  6. معرفی کتاب های رزبری پای

    دانلود کتاب پروژه های رزبری پای کتاب رسمی بنیاد رزبری پای لینک دانلود: https://www.raspberrypi.org/magpi-issues/Projects_Book_v3.pdf
  7. هفته گذشته
  8. معرفی کتاب های رزبری پای

    دانلود کتاب آموزشی زبان C برای رزبری پای کتاب رسمی بنیاد رزبری پای لینک دانلود: https://www.raspberrypi.org/magpi-issues/Essentials_C_v1.pdf
  9. دانلود کتاب زربری پای برای تازه کار ها کتاب رسمی بنیاد رزبری پای لینک دانلود: https://www.raspberrypi.org/magpi-issues/Beginners_Book_v1.pdf
  10. جدیدا
  11. راه اندازی ماژول ESP8266 WIFI با میکروپایتون

    برد NodeMCU چیست و چه امکاناتی در اختیار ما قرار میدهد؟ NodeMCU یک پلت فرم اوپن سورس در زمینه‌ی IoT ( اینترنت اشیا یا به عبارت درست‌تر اینترنت چیزها) می‌باشد. هسته‌ی NodeMCU ، چیپ ESP8266 ورژن ESP12 می‌باشد که از WiFi پشتیبانی می‌کند و به وسیله‌ی آن می‌توان به شبکه‌ی وای فای متصل شد و اطلاعات را میان اینترنت یا سایر دستگاه‌ها جابه‌جا نمود. زبان برنامه‌نویسی این ماژول ، Lua می‌باشد. ولی از امکانات بسیار عالی این ماژول این است که می‌توان یا استفاده از IDE آردوینو و با استفاده از دستوارات آردوینو بر روی آن به سادگی برنامه نویسی کرد. البته ما دراین آموزش فریمور میکروپایتون را بر روی این ماژول نصب کردیم و با میکروپایتون آموزش را ادامه میدیهیم برد NODEMCU با دو تبدیل USB به سریال متفاوت موجود است CH340 و CP2102 که تفاوت چندانی از لحاظ pinout ندارند
  12. راه اندازی ماژول ESP8266 WIFI با میکروپایتون

    راهنمای کاما استفاده از micropython بر روی esp8266 در لینک های زیر در دسترس است https://docs.micropython.org/en/latest/esp8266/esp8266/tutorial/intro.html و http://docs.micropython.org/en/v1.9.2/esp8266/esp8266/tutorial/index.html در ادامه آموزش خلاصه ای از این آموزش بر روی برد NodeMCU خواهیم داشت
  13. در این پست آموزشی قصد ساخت یک منبع تغذیه آزمایشگاهی با توان مناسب را با استفاده از وسایل بازیافتی داریم. منبع تغذیه یکی از نیازهای اولیه یک آزمایشگاه الکترونیکی می باشد و با توجه به هزینه ای که باید برای خرید منابع تغذیه صرف شود ساخت یک نمونه خیلی ارزان قیمت آن منطقی است. این منبع تغذیه دارای تمامی ولتاژهای لازم برای یک الکترونیک کار می باشد. پاور کامپیوتر دارای ولتاژهای 3.3,5,12 ولت و دارای ولتاژ 12- و در پاورهای قدیمی ولتاژ 5- می باشد که ما در پروژه های الکترونیکی بیشتر به ولتاژهای 3.3,5,12 نیاز داریم. مهمترین نکته در ساخت این منبع تغذیه هزینه کم ساخت و در دسترس بودن لوازم و توان مناسب جهت انجام انواع پروژه های الکترونیکی است. وسایل مورد نیاز برای ساخت منبع تغذیه پاور کامپیوتر (ترجیحا ATX) فیش رو پنلی روکش وارنیش کلید راکر یا کلنگی ولتاژ سیم های موجود در پاور کامپیوتر برای شروع ساخت ابتدا پاور را روشن می کنیم تا از سالم بودن آن مطمئن شویم. با زدن برق به پاور کار نمی کند و این نشانه خراب بودن آن نیست. سیم سبز را یا یک سیم به یکی از زمین های مدار (سیم های مشکی) متصل می کنیم. در این لحظه باید پاور شروع به کار کند و یکی از نشانه های آن به راه افتادن فن پاور می باشد. بعد از آن پاور را خاموش می کنیم و آن را باز می کنیم. فقط به این نکته توجه شود که پاور در هنگام کار خازن های بزرگ موجود در ابتدای مدار را به مقدار زیادی شارژ میکند (تا 300 ولت) که باید از دشارژ شدن آن اطمینان حاصل کرد. سپس سیم ها را با مقدار دلخواه با سیم چین می بریم و آن ها را با توجه به ولتاژ خروجی دسته بندی می کنیم. حالا تعداد زیادی سیم از هر رنگ داریم که برای جریان دهی سیم های هم رنگ را با هم موازی میکنیم و به هم لحیم می کنیم. طبق شماتیکی که در شکل زیر ارائه شده است سیم ها را به هم و در نهایت به فیش های پنلی متصل می کنیم. همانطور که قبلا هم گفته شد برای شروع به کار پاور نیاز هست تا سیم سبز به زمین وصل شود. که در تصویر با استفاده از یک کلید این کار را انجام داده ایم. نکته ای که در اینجا باید به آن اشاره کرد وقتی پاور را به برق می زنیم پاور در حالت کلی کار نمی کند ولی در مد استندبای (سیم سبز به زمین متصل نشده) یک ولتاژ تولید می کند که آن را با 5vSB نشان می دهند. مهمترین قسمت درست کردن این منبع تغذیه اضافه کردن یک بار به دو سر ولتاژ 5 ولت می باشد. در پاورهای قدیمی در صورت نبودن این بار پاور بعد از مدتی خاموش می شود. در پاورهای جدید نیز در صورت عدم حضور این بار ولتاژهای خروجی در مقدار نامی خود خروجی نمی دهند و 5 ولت بیشتر از ولتاژ نامی و 12 ولت کمتر از ولتاژ نامی می شود. با اتصال یک مقاومت 10 اهم با توان بالا (10 وات) این بار فراهم می شود. محل قرارگیری بار در تصویر مشخص است. بر روی جعبه پاور به تعداد دلخواه در اندازه فیش های پنلی سوراخ هایی ایجاد می کنیم. سپس سیم ها را به فیش ها لحیم کرده و آنها را در جای مناسب قرار می دهیم. در نهایت منبع تغذیه ای به شکل زیر داریم که در اینجا همه ولتاژهای موجود در مدار دیده می شود. با اضافه کردن یک مدار رگولاتوری از نوع متغیر (مثل LM317) می توان یک ولتاژ متغیر نیز به این منبع اضافه کرد. برای جلوگیری از اتصالات داخلی برای قسمت های باز سیم ها از روکش وارنیش استفاده کنید. قرار دادن فیوز در این مدار اختیاری و برای حفاظت بیشتر مدارات در مقابل اضافه جریانات و اتصال کوتاه می باشد. در پاورهای Green نیازی به فیوز نیست و مدارهای حفاظتی در مقابل اضافه جریانات و شوک های الکتریکی قرار داده شده است.
  14. تعیین موقعیت مکانی با ماژول ESP8266

    اجرا: پس از کامپایل و اجرا در پنجره سریال مانیتور، مقدار دو عبارت Latitudeو Longitude طول و عرض جغرافیایی ما هستند. نمایش: برای مشاهده میتوانید از این لینک استفاده کرده ، مقادیر بالا را درآن جایگزین کرده و در مرورگر کروم یا ... لینک مذکور رو اجرا کنید https://www.google.com/maps/@Latitude,Longitude,18z 18z میزان زوم تصویر می باشد. لینک مطلب در انجمن: https://www.eca.ir/forums/thread78943.html نویسنده: digi-rx
  15. تا حالا برای بدست آوردن موقعیت مکانی باید یا از ماژولهای gps یا gsm استغاده می کردیم، یا از طریقی (با سیم و یا بیسیم) اطلاعات رو از گوشی و تبلت و لپتاپ می گرفتیم. ولی آیا راهی نیست که بتونیم بدون نیاز به موارد بالا مستقیم موقعیت رو بدست بیاریم؟؟ خوشبختانه چرا هست هممون از سرویسهای google map و مشتقاتش استفاده کردیم و راجبش اطلاعات داریم. این سرویس از چند سال پیش امکاناتی رو اضافه کرده که سایتها و اپلیکیشن ها می توانند از طریق api گوگل، باهاش کار کنند و موقعیت مکانی مخاطبان سایت و برنامه را بدست بیاورند (البته با اجازه خود کاربر) حالا چطوری؟؟؟ سیستم تخمین موقعیت بر اساس آنتنهای موبایل اطراف میباشد.. این سیستم جهت تخمین موقعیت نیازی به سیستم ماهواره ای GPS ندارد و برای مواردی کاربرد خواهد داشت که خودرو داخل تونل یا پارکینگهای مسقف قرار دارد و به دلیل مسقف بودن محل امکان موقعیت یابی ماهواره ای GPS وجود نداشته باشد.. اما روش کار این سیستم چگونه است؟ دکلهای مخابراتی که با نام BTS یا Base Transceiver Station شناخته میشوند را همگی دیده ایم.. هر BTS دارای مشخصات منحصر بفردی در دنیا میباشد.. این مشخصات شامل موارد زیر میباشند : MCC یا Mobile Country Code که نشان دهنده کد کشور میباشد…MNC یا Mobile Network Code که کد اپراتور سرویس دهنده میباشد… LAC یا Location Area Code نشان دهنده کد منطقه میباشد و CellID که نشاندهنده کد آن دکل BTS در منطقه میباشد.. سیستم دزدگیر و ردیاب ماهواره ای خودرو با بدست آوردن این مشخصات از روی نزدکترین دکلهای اطراف که دارای سیگنال قویتری هستند و میانگین گیری کردن از موقعیت آنها نزدیکترین موقعیت را تخمین میزند..همانطور که گفته شد این تخمین نیازی به سیستم GPS نداشته و حتی در مکانهای مسقف نیز محدوده مکانی خودرو را تخمین میزند. api چیست؟ مختصرا بخوام بگم یسری دستورات و روشی هست که (در اینجا) گوگل مشخص کرده که شما با این دستورات بسادگی میتونید درخواستهاتون رو بفرستید بهش وجوابها رو هم بگیرید. گرفتن API KEY: میخوایم با سرویس google geolocation کار کنیم. در ابتدا نیاز به یک api key مخصوص به خودمون داریم که پس از اینکه وارد اکانت گوگل خود شدید، میتوانید از طریق این لینک اون رو برای خودتان بسازید. البته برای باز شدن صفحه به دلیل اینکه این سرویس مثل تقریبا همه سرویسهای گوگل برای آیپی ایران بسته است نیازمند راهی جهت عبور از آن می باشید.به هر نحوی که خود می توانید وارد صفحه ذکر شده شوید و روی get a key کلیک کنید: مرحله بعدش اگر قبلا پروژه ای ساخته باشید ازتون میخواد که یکی از اونها رو از تو لیست انتخاب کنید و یا اگر دفعه اول باشه باید یه اسم برای پروژتون انتخاب کنید: حال کلید داده شده را کپی و در یک جای امن ذخیره کنید. قبل از ادامه مطلب پیشنهاد میکنم دوستان یسری اطلاعات درمورد انواع ارتباط با اینترنت و پروتکل های ارتباطیش و انواع درخواستها و … کسب کنند که برای کار با ماژولهای esp شدیدا مورد نیاز است. یکی از این اطلاعات هم شناخت و کار با فرمت json می باشد که اگه بتونید خوب باهاش کار کنید، پروژه های مشابه این پروژه براحتی میتونید راه اندازی کنید و با api مربوطه ارتباط برقرار کنید. پروژه هایی مثل دستورات صدا و کلامی ، اطلاعات آب وهوا و دما ، ساعت ntp و… برای راه اندازی و برنامه نویسی esp8266 از آردوینواستفاده شده است. برنامه نویسی: برنامش چیز خاصی نداره فقط باید درخواست رو تحت همون فرمت json ارسال و اطلاعات رو هم با همون فرمت دریافت کنید. خبر خوب اینکه یه دوست عزیزی این کاررو هم برامون انجام داده و کارمون رو راحت و آسون کرده در صفحه گیت هاب ایشون دو فایل آردوینو هست: یکی خروجی رو روی oled نشون میده و دیگری در پنجره سریال مانیتور. چون ما معمولا طول وعرض جغرافیایی بدست آورده را نه برای نمایش بلکه برای ارسال یا دیدن در نقشه و … نیاز دارم پس من از فایل Geolocation_without_display.ino استفاده کردم. https://github.com/techiesms/Geolocation فقط موارد زیررا بایدمتناسب با شرایط خودتان در فایل تغییر بدهید: – myssid و mypass » نام و پسورد مودم برای اتصال به اینترنت ماژولesp – homeMobileCountryCode همان mcc – key همان api key که از گوگل گرفتیم – homeMobileNetworkCode» همان mnc mcc و mnc رو میتونید از یکی ازاین دو لینک بگیرید: این لینک یا این لینک که mccبرای ایران 432 هست و mnc بستگی به اپراتور اینترنتتون داره. برنامه تعیین موقعیت مکانی با ماژول ESP8266: This code is provided by techiesms *********************************************************************/ [URL=https://www.eca.ir/forums/usertag.php?do=list&action=hash&hash=include]#include[/URL] <ESP8266HTTPClient.h> [URL=https://www.eca.ir/forums/usertag.php?do=list&action=hash&hash=include]#include[/URL] <ArduinoJson.h> [URL=https://www.eca.ir/forums/usertag.php?do=list&action=hash&hash=include]#include[/URL] "ESP8266WiFi.h" char myssid[] = "SSID" // your network SSID (name) char mypass[] = "PASS" // your network password //Credentials for Google GeoLocation API... const char* Host = "www.googleapis.com"; String thisPage = "/geolocation/v1/geolocate?key="; String key = "YOUR_API_KEY"; int status = WL_IDLE_STATUS; String jsonString = "{\n"; double latitude = 0.0; double longitude = 0.0; double accuracy = 0.0; int more_text = 1; // set to 1 for more debug output void setup() { Serial.begin(115200); Serial.println("Start"); // Set WiFi to station mode and disconnect from an AP if it was previously connected WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); Serial.println("Setup done"); // We start by connecting to a WiFi network Serial.print("Connecting to "); Serial.println(myssid); WiFi.begin(myssid, mypass); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("."); } void loop() { char bssid[6]; DynamicJsonBuffer jsonBuffer; Serial.println("scan start"); // WiFi.scanNetworks will return the number of networks found int n = WiFi.scanNetworks(); Serial.println("scan done"); if (n == 0) Serial.println("no networks found"); else { Serial.print(n); Serial.println(" networks found..."); if (more_text) { // Print out the formatted json... Serial.println("{"); Serial.println("\"homeMobileCountryCode\": 432,"); // this is a real UK MCC Serial.println("\"homeMobileNetworkCode\": 19,"); // and a real UK MNC Serial.println("\"radioType\": \"gsm\","); // for gsm Serial.println("\"carrier\": \"Vodafone\","); // associated with Vodafone //Serial.println("\"cellTowers\": ["); // I'm not reporting any cell towers //Serial.println("],"); Serial.println("\"wifiAccessPoints\": ["); for (int i = 0; i < n; ++i) { Serial.println("{"); Serial.print("\"macAddress\" : \""); Serial.print(WiFi.BSSIDstr(i)); Serial.println("\","); Serial.print("\"signalStrength\": "); Serial.println(WiFi.RSSI(i)); if (i < n - 1) { Serial.println("},"); } else { Serial.println("}"); } } Serial.println("]"); Serial.println("}"); } Serial.println(" "); } // now build the jsonString... jsonString = "{\n"; jsonString += "\"homeMobileCountryCode\": 432,\n"; // this is a real UK MCC last 234 jsonString += "\"homeMobileNetworkCode\": 19,\n"; // and a real UK MNC lasr 27 jsonString += "\"radioType\": \"gsm\",\n"; // for gsm jsonString += "\"carrier\": \"Vodafone\",\n"; // associated with Vodafone jsonString += "\"wifiAccessPoints\": [\n"; for (int j = 0; j < n; ++j) { jsonString += "{\n"; jsonString += "\"macAddress\" : \""; jsonString += (WiFi.BSSIDstr(j)); jsonString += "\",\n"; jsonString += "\"signalStrength\": "; jsonString += WiFi.RSSI(j); jsonString += "\n"; if (j < n - 1) { jsonString += "},\n"; } else { jsonString += "}\n"; } } jsonString += ("]\n"); jsonString += ("}\n"); //-------------------------------------------------------------------- Serial.println(""); WiFiClientSecure client; //Connect to the client and make the api call Serial.print("Requesting URL: "); Serial.println("https://" + (String)Host + thisPage + "AIzaSyCYNXIYINPmTNIdusMjJloS4_BXSOff1_g"); Serial.println(" "); if (client.connect(Host, 443)) { Serial.println("Connected"); client.println("POST " + thisPage + key + " HTTP/1.1"); client.println("Host: " + (String)Host); client.println("Connection: close"); client.println("Content-Type: application/json"); client.println("User-Agent: Arduino/1.0"); client.print("Content-Length: "); client.println(jsonString.length()); client.println(); client.print(jsonString); delay(500); } //Read and parse all the lines of the reply from server while (client.available()) { String line = client.readStringUntil('\r'); if (more_text) { Serial.print(line); } JsonObject& root = jsonBuffer.parseObject(line); if (root.success()) { latitude = root["location"]["lat"]; longitude = root["location"]["lng"]; accuracy = root["accuracy"]; } } Serial.println("closing connection"); Serial.println(); client.stop(); Serial.print("Latitude = "); Serial.println(latitude, 6); Serial.print("Longitude = "); Serial.println(longitude, 6); Serial.print("Accuracy = "); Serial.println(accuracy); } https://www.eca.ir/forums/thread78943.html
  16. معرفی موتور گیربکس های تولید ZHENGKE

    شرکت ZhengeMotor تولید کننده تخصصی موتورهای AC/DC، موتورگیربکس و کالاهایی از این قبیل می باشد. در این مقاله سعی داریم انواع موتورگیربکس های مدل ZGA12 ، ZGA25 ، ZGA28 ، ZWL را مورد بررسی قرار بدهیم. موتور گیربکس خانواده‌ ZGA25 این موتور گیربکس با ولتاژ نامی 12 ولت، قابلیت کارکرد با ولتاژ 6 الی 24 ولت را دارا می‌باشد و توانی معادل 0.5 الی 2 وات ارائه می دهد. این موتور دارای گیربکس فلزی، شفت آن در مرکز و فلنج آن دایره ای شکل است. این موتور گیربکس که یکی از مورد پسندترین موتورهای موجود در بازار است، دارای قطر 25 میلیمتر، طول 30 میلیمتر و طول شفت 10 میلیمتر می باشد و از نظر قدرت در رده موتورهای کوچک بوده و در بسیاری از رباتهای با قدرت کم یا متوسط می توان از آن استفاده کرد. Zhengke نام برند ZGA25RP مدل چین ساخت 124 گرم وزن 63 میلیمتر طول 25 میلیمتر قطر 6 الی 24 ولت ولتاژ قابل تحمل 12 ولت ولتاژ کاری 0.4 آمپر جریان بدون بار 0.5 الی 2 وات توان 12 میلیمتر طول شافت شفت مرکز / فلنج دایره ای سایر 4 میلیمتر قطر شافت ابعاد موتور گیربکس: موتور گیربکس خانواده‌ ZGA28 موتور گیربکسی از خانواده‌ی ZGA28 با ولتاژ نامی 12 ولت که قابلیت کارکرد با ولتاژ 6 الی 24 ولت را دارا می‌باشد و توانی معادل 0.5 الی 5 وات را ارائه می دهد. این موتور که دارای گیربکس فلزی است شفت آن در مرکز و فلنج آن دایره است. این موتور گیربکس یکی از پرکارترین موتورهای موجود در بازار و صنعت می باشد. از نظر قدرت در رده موتورهای متوسط می باشد و در بسیاری از رباتهای با قدرت زیاد یا متوسط می توان از این موتور گیربکس استفاده کرد. Zhengke نام برند ZGA28RO مدل چین ساخت فلزی جنس بدنه 28 میلیمتر قطر 6 الی 24 ولت ولتاژ قابل تحمل 12 ولت ولتاژ کاری 0.4 آمپر جریان بدون بار 5 وات توان 12 میلیمتر طول شافت 6 میلیمتر قطر شافت شفت مرکز / فلنج دایره ای سایر ابعاد موتور گیربکس: موتور گیربکس خانواده‌ ZGA12 این موتور دارای گیربکس فلزی با وزن کم و گشتاور مناسب، ایده‌آل برای رباتهای کوچک نظیر مسیریاب ، امدادگر ، مازخط ، میکروماوس و… میباشد. ویژگی خاص ( از نظر ولتاژ و جریان ) سبک ، کم حجم و ظریف ( مینیاتوری ) مناسب برای ربات های کوچک جریان(A) گشتاور(kg.cm) سرعت(rpm) بدون بار (no load) ولتاژ (v) نسبت (Ratio) سرعت ((rpm 0.014 0. 2 30 35 6-12 1.298 0.11 0.15 50 60 6-12 1.150 0.21 0.4 58 70 6-12 1.298 0.21 0.5 60 80 6-12 1.298 0.21 0.6 100 120 6-12 1.100 0.095 0.05 180 200 6-12 1.50 0.085 0.04 300 330 6-12 1.30 0.1 0.05 350 400 6-12 1.50 ابعاد موتورگیربکس: موتور گیربکس خانواده‌ ZWL این موتور با ولتاژ نامی 12 ولت است که دارای گیربکس فلزی می باشد . ویژگی های اصلی این موتور گیربکس سرعت پایین ، سر و صدای کم و قیمت اقتصادی آن است . این گیربکس توسط ژنگ در سال 2016 باز طراحی شده و تمام چرخ دنده های داخل آن به فلزی تغییر یافته و سر و صدای کارکردن آن کاهش پیدا کرده است . Voltage(VDC) 5V 5V 12V 12V Motor Model 31P 31P 80P 80P Reduction Ratio 1650 5300 180 330 No-Load Speed(Rpm) 2.0 0.6 35.0 24.0 Rated Speed(Rpm) 1.2 0.4 29.0 21.0 Rated Torque(Kg.cm) 12.00 40.00 5.00 6.00 Rated Current(Amp) 0.60 0.60 1.10 1.10 Max.Momentary Torque(Kg.cm) 15.00 50.00 6.25 7.50 ابعاد موتورگیربکس:
  17. آیا شارژ باطری خودروی شما کم است؟

    آیا شارژ باطری خودروی شما کم است؟ آیا باطری خودروی شما قدرت کافی برای استارت‌ زدن در هوای سرد را دارد؟ تنها راه برای پی‌ بردن به این موضوع که آیا باطری شما کاملا شارژ است یا نه، سنجش وضعیت شارژ باطری توسط دستگاه سنجش ولتاژ یا ولت‌ متر است. می‌ توانید از یک ولت‌ متر آنالوگ یا دیجیتال استفاده کنید اما خواندن ولتاژ در نمونه‌ های دیجیتال راحت‌ تر است و عدد دقیق‌ تری را به شما نشان می‌ دهد. برای سنجش ولتاژ باطری اول سوییچ را کامل ببندید و تمام چراغ‌ های خودرو را خاموش کنید. برای بررسی وضعیت شارژ باطری کابل مثبت یا قرمز رنگ ولت‌ متر را به قطب مثبت باطری متصل کنید. قطب مثبت باطری با علامت + و کابلی که به قطب مثبت باطری متصل شده معمولا با رنگ قرمز مشخص شده است. کابل منفی یا سیاه‌رنگ ولت‌ متر را به قطب منفی باطری متصل کنید. قطب منفی باطری با علامت - و کابلی که به قطب منفی باطری متصل شده معمولا با رنگ سیاه مشخص شده است. به عددی که ولت‌ متر نشان می‌دهد توجه کنید و به جدول زیر مراجعه کنید: ولتاژ باطری ............ وضعیت شارژ 12.66 ولت ............ 100 درصد 12.45 ولت ............ 75 درصد 12.24 ولت ............ 50 درصد 12.06 ولت ............ 25 درصد 11.89 ولت ............ 0 درصد توجه: ولتاژ های جدول بالا مربوط به دمای 26 درجه سانتی‌گراد است. ولتاژ باطری به ازای هر 12 درجه سانتی‌گراد کاهش دما حدود 0.01 ولت افت می‌ کند. در دمای منفی 1 درجه سانتی‌گراد یک باطری با شارژ کامل ولتاژی معادل 12.588 خواهد داشت و در دمای منفی 17 درجه سانتی‌گراد ولتاژ آن 12.516 ولت خواهد بود. بنابراین طبق جدول بالا یک باطری با ولتاژ 12.29 ولت حدود 50 درصد کمبود شارژ دارد و باید شارژ شود. اگر ولتاژ باطری خودروی شما کمتر از 12.45 ولت (75 درصد شارژ) است به این معناست که شارژ آن کم است و باید شارژ شود. می‌ توان با اتصال یک شارژر باطری قابل‌حمل به باطری خودرو یا رانندگی با خودرو به مدت 15 تا 20 دقیقه با سرعت 65 کیلومتر در ساعت یا بالاتر آن را شارژ کرد. برای اینکه باطری‌ های اسید سربی بهترین عملکرد و بیشترین عمر را داشته باشند باید همیشه 75 درصد یا بالاتر شارژ داشته باشند. اگر شارژ این نوع باطری خالی شود و طی چند روز دوباره تا 75 درصد یا بیشتر شارژ نشود ممکن است آسیب دائمی ببیند. سولفاته‌شدن از شارژشدن کامل خانه‌ها یا صفحات سلولی درون باطری جلوگیری می‌ کند. این مشکل به مرور زمان باعث کاهش عمر و عملکرد باطری می‌ شود.
  18. JSON چیست ؟ و در کجا کاربرد دارد

    و یک تعریف دیگه از سایت دیگه قالب JSON و ساختار آن جی‌سن (JSON) ساختاری (فرمت) با استاندارد باز است که در انتقال اطلاعات و داده‌ها (مثلاً بین مرورگر و سایت) استفاده شده و برای انسان قابل خواندن است. JSON چیست؟ جی‌سن (JSON) که برخی جی‌سان و جی‌سون نیز تلفظ می‌کنند، مخفف کلمه JavaScript Object Notation بوده و یک استاندارد باز است که با ساختاری خوانا برای انسان و هم ماشین، می‌توان اطلاعات و داده‌های مختلف از جمله داده‌های یک دیتابیس را با استفاده از آن، بین عوامل مختلف مثلاً مرورگر کاربر و یک سایت منتقل کرد یا در فضای ذخیره سازی‌ای، آن را ذخیره نمود. یکی از مهمترین کاربردهای JSON، استفاده از آن در تکنولوژی آزاکس (AJAX) است. آژاکس تکنولوژی‌ای است که با استفاده از زبان جاوا اسکریپت، درخواست‌هایی به سرور وبسایت ارسال می‌کند و بدون نیاز به تغییر آدرس صفحه یا بارگذاری مجدد آن، تغییراتی را در صفحه ایجاد می‌کند. به این ترتیب صفحاتی پویا یا داینامیک خواهیم داشت. درست است که در آژاکس همانطور که از نامش (Asynchronous JavaScript and XML) هم پیداست، اطلاعات رد و بدل شده در قالب XML انجام می‌پذیرد اما از زمان معرفی JSON، قالب مورد استفاده از XML به JSON تغییر داده شد. به دلیل مزایای جی‌سن نسبت به ایکس‌ام‌ال، JSON نه تنها در جاوا اسکریپت بلکه در سایر زبان‌ها نیز استفاده می‌شود. یعنی به عبارت دیگر JSON یک محتوای متنی است که به زبانی وابسته نیست و تقریباً در اکثر زبان‌ها از جمله PHP، C#، C++، C، ASP.NET، Java و بسیاری از زبان‌های دیگر قابل تولید و تجزیه سازی و همینطور برای انسان به راحتی قابل نوشتن و خواندن است. ساختار JSON ساختار جی‌سن بسیار ساده است و همین سادگی یکی از دلایل برتری آن نسبت به ایکس‌ام‌ال است چون با این ساختار، خود کاربر و انسان نیز می‌تواند به راحتی محتوا را بخواند. قواعد کلی یک نوشته بصورت JSON به این شکل است: محتوای داخل JSON با آکولاد باز } شروع شده و با آکولاد بسته { تمام می‌شوند. این بلاک به عنوان آبجکت مادر نیز شناخته می‌شود. { آبجکت‌ها، آرایه‌ها و مقادیر } آبجکت‌ها شیء یا آبجکت (Object) در JSON شامل مجموعه‌ای نامرتب از داده‌ها (نام/مقدار) است که دارای یک نام رشته‌ای (داخل " ") به عنوان کلید است. کلید آبجکت‌ها بهتر است منحصر به فرد باشد تا به راحتی قابل تمایز باشند. آبجکت‌ها با آکولاد باز } شروع شده و با آکولاد بسته { تمام می‌شوند. کلید با کاراکتر دو نقطه : از آکولاد باز جدا می‌شود. داده‌های داخل آبجکت باید با کاراکتر کاما ( , ) از یکدیگر جدا شوند. آبجکت یا شیء در JSON عکس خام: json.org برای مثال: { "Me": { "fname": "Amirreza", "lname": "Nasiri", "birth": 1996 } } در مثال بالا ما یک آبجکت با نام کلید Me داریم که دارای خصوصیاتی با مقادیر fname برابر Amirreza و lname برابر Nasiri و birth برابر ۱۹۹۶ است. آرایه‌ها آرایه یا Array در JSON می‌تواند شامل چندین مقدار (از یک نوع ارزش) باشد. آرایه‌ها معمولاً دارای یک نام رشته‌ای (داخل " ") به عنوان کلید است. کلید آرایه‌ها بهتر است منحصر به فرد باشد تا به راحتی قابل تمایز باشند. آرایه‌ها با براکت باز ] شروع شده و با براکت بسته [ تمام می‌شوند. کلید با کاراکتر دو نقطه : از براکت باز جدا می‌شود. آبجکت‌های داخل آرایه باید با کاراکتر کاما ( , ) از یکدیگر جدا شوند. آرایه در JSON عکس خام: json.org برای مثال: آرایه‌ای از آبجکت‌ها (ارزش) { "Persons": [ {"fname": "Amirreza", "lname": "Nasiri"}, {"fname": "Alireza", "lname": "Nasiri"}, {"fname": "Navid", "lname": "Mousavi"} ] } در این مثال ما یک آرایه به نام Persons داریم که دارای سه آبجکت است. هر آبجکت نیز دو جفت نام/مقدار دارد. نمونه دیگر: آرایه‌ای از یک نوع مقادیر (ارزش) { "Ages": [ ۲۵, ۱۲, ۶۵, ۱۶ ] } نکته: آرایه فقط می‌تواند شامل یک نوع ارزش باشد. برای مثال یا همه آیتم‌هایش آبجکت باشد یا رشته یا ... . ارزش‌ها ارزش یا Value شامل موارد زیر است: رشته‌ها اعداد آبجکتی دیگر آرایه‌ای دیگر مقدار بولی - درست یا غلط (True / False) مقدار تهی (Null) عنوان ارزش (نوع متغیر) در JSON عکس خام: json.org رشته‌ها رشته یا String همان عبارت‌هایی متشکل از حروف در کاراکتر ست Unicode (یونی کد) هستند. مثلاً یک کلمه. اگر از رشته‌ها در یک آبجکت استفاده کنیم، چون ساختار آبجکت به صورت نام/مقدار است، باید یک نام و یک مقدار برای آن در نظر بگیریم. مانند: { "name": "Amirreza", "city": "Tabriz", "country": "Iran" } توجه کنید که هم نام و هم مقدار چون هر دو از نوع String هستند، باید داخل دو علامت دابل کوتیشن " " قرار دهیم. نام با استفاده از یک کاراکتر دو نقطه : در خارج از دابل کوتیشن، از مقدار جدا می‌شود. حال اگر آرایه‌ای از فقط نوع رشته داشته باشیم، می‌توانیم فقط مقادیر را در آرایه بنویسیم. مانند: [ "Amirreza", "Alireza", "Navid" ] نکته: برخی از کاراکترها باید با بک اسلش اسکیپ شوند. در جدول زیر می‌توانید این مقادیر را ببینید: برای نوشتن کاراکتر به این صورت عمل می‌کنیم " \" \ \\ / \/ بک‌اسپیس \b خط جدید \n هگزادسیمال \u 4-HexDigits اعداد عدد یا Number در JSON مانند رشته یا String در بند بالاست با این تفاوت که برای نوشتن مقادیر عددی، نیازی به دابل کوتیشن " " نداریم. به نمونه‌های زیر توجه کنید: چندین عدد در یک آبجکت: { "age": 18, "birth": 1996, "stature": 185 } مقادیری از نوع ارزش عددی در آرایه: [ ۱۸, ۲۱, ۱۹ ] نکته: اعداد می‌تواند شامل اعداد اعشاری، صحیح و E مثبت و منفی در ریاضیات باشد. مقدار بولی مقدار بولین (Boolean) می‌تواند دو حالت درست (True) و نادرست (False) را در خود نگه دارد. در JSON مانند رشته یا عدد در بند بالاست با این تفاوت که برای نوشتن مقادیر عددی، نیازی به دابل کوتیشن " " نداریم. به نمونه‌های زیر توجه کنید: چندین مقدار بولی در یک آبجکت: { "isAlive": true, "isSoccerPlayer": false, "likesGame": true } مقادیری از نوع ارزش ترو / فُلس در آرایه: [ true, false, true ] مقدار تهی تهی یا Null یعنی مقدار متغیر ما چیزی ندارد. مثل مقدار بولی در بند بالا پیاده سازی می‌شود. به مثال‌های زیر توجه کنید: مقدار تهی در یک آبجکت: { "name": "Amirreza", "lname": "Nasiri", "ifAddress": null } مقادیری از نوع ارزش تهی در آرایه: [ null, null, null ] منبع این آموزش: http://bytegate.ir/فرمت-json-چیست؟/
  19. سرنام واژگان JavaScript Object Notation یک استاندارد سبک، باز ، متنی و خوانا برای انسان جهت انتقال داده و جایگزینی برای xml است. قراردادهای مورد استفاده ی JSON برای تمامی برنامه نویسان از جمله برنامه نویس C، C++، Java، Python، Perl شناخته شده است که به شرح زیر می باشد: JSON مخفف JavaScript Object Notation است. فرمت آن برای اولین بار توسط Douglas Crockford معرفی شد. برای انسان خوانا بوده و ویژه ی انتقال داده طراحی شده است. از زبان اسکریپت نویسی JavaScript مشتق شده است. پسوند فایل های با فرمت جی سن .json می باشد. Media type این فرمت انتقال داده application/json است. شناسه ی متحدالشکل نوع (UTI) آن public.json است. موارد استفاده ی JSON به هنگام نوشتن برنامه های تحت وب مبتنی بر جاوا اسکریپت که افزونه هایی برای مرورگر و وب سایت ها را شامل می شوند بکار می رود. برای serialize کردن و انتقال داده های ساخت یافته از طریق اتصال شبکه بکار می رود. عمدتا برای انتقال داده بین سرور و برنامه های تحت وب بکار می رود. Web service ها و API ها از فرمت JSON برای ارائه ی داده های public بهره می گیرند. تمامی زبان های برنامه نویسی روز از آن پشتیبانی می کنند. ویژگی های JSON خواندن و نوشتن در آن آسان است. یک فرمت متنی تبادل داده سبک و کم حجم است. با اینکه از زبان JavaScript مشتق شده، از این زبان کاملا مستقل است و مفسر (parser) آن برای تمامی زبان ها موجود می باشد. نمونه ی ساده از JSON مثال زیر نحوه ی استفاده از JSON را برای ذخیره ی اطلاعات مربوط به مجموعه ای از کتاب ها بر اساس موضوع و ویرایش هر یک، نمایش می دهد: { "book": [ { "id":"01", "language": "Java", "edition": "third", "author": "Herbert Schildt" }, { "id":"07", "language": "C++", "edition": "second", "author": "E.Balagurusamy" } ] } نمونه ی دیگری را در زیر مشاهده می کنید. این کد را با پسوند json.htm ذخیره می کنیم: language = "javascript" > var object1 = { "language" : "Java", "author" : "herbert schildt" }; document.write(" JSON with JavaScript example "); document.write(" "); document.write(" Language = " + object1.language+" "); document.write(" Author = " + object1.author+" "); var object2 = { "language" : "C++", "author" : "E-Balagurusamy" }; document.write(" "); document.write(" Language = " + object2.language+" "); document.write(" Author = " + object2.author+" "); document.write(" "); document.write(object2.language + " programming language can be studied " + "from book written by " + object2.author); document.write(""); حال با مرورگر IE یا هر مرورگر دیگری که JavaScript در آن فعال سازی شده، فایل json.htm را باز می کنیم. نتیجه ی زیر را بدست می دهد: منبع http://www.tahlildadeh.com/ArticleDetails/JSON-چیست
  20. راه اندازی ماژول RFID RC522 با آردوینو

    این نوع پست ها رو ادامه بدید ممنون
  21. ساخت دکمه Reset برای رزبری پای

    ممنون از پستتون عالی بود
  22. MQTT یک پروتکل ماشین به ماشین (M2M) برای اتصالات اینترنت اشیاء (LOT) است که به کمک سنسور، ارتباط برقرار می‌کند. معماری ساختار MQTT شامل یک سرور مرکزی یا واسطه است که به شکل توپولوژی ستاره‌ای با یک یا چند دستگاه ارتباط برقرار می‌کند. پایه ارتباطات بر اساس پیام‌ها و تاپیک‌هایی است که به یک گره (دستگاه) ارسال می‌شود. دراین‌بین دیگر گره‌ها (دستگاه‌ها) نیز می‌توانند با اشتراک‌گذاری آن پیام را دریافت کنند. سرور مرکزی مسئول مدیریت شبکه و انتقال پیام‌ها است. ارتباطات می‌تواند یک به یک یا گروهی باشد. هدف از این پروژه ساخت یک آداپتور IOT است که به همه‌ی دستگاه‌های عمومی بدون احتیاج به wifi اجازه می‌دهد تا به‌عنوان یک گره IOT شناخته شوند. تنها شرط موردنیاز دارا بودن یک پورت سریال است. جهت پیاده‌سازی یک سیستم با حداقل جزئیات، ما باید در مورد چگونگی کار یک سرور مرکزی نیز بدانیم. گره‌ها بر پایه‌ی یک ماژول ESP-03 و سرور مرکزی بر روی یک ماژول رزبری پای اجرا می‌شود. در تصویر ، می‌توانید بلوک مربوط به دیاگرام سیستم را مشاهده کنید. پروتکل MQTT: یک دفتر کار را تصور کنید؛ شما به چندین دستگاه با یک واحد مرکزی نیاز دارید. دستگاه‌هایی مانند ترموستات، آلارم یا دستگاه‌های مختلفی که باهم مرتبط‌اند ( مانند یک لامپ با سوئیچ قطع و وصل). ما به یک پروتکل ارتباطی نیاز داریم که بین همه‌ی این دستگاه‌ها مشترک باشد. در میان پروتکل‌های موجود، MQTT به دلایل زیر انتخاب شده است: متن‌باز بودن سازگاری با تمام دستگاه‌ها (اندروید، لینوکس) پیاده‌سازی ساده‌ی سیستم این پروتکل مبتنی بر مبانی زیر است: هر دستگاهی می‌تواند داده‌ها را فراخوانی و منتشر کند. هر دستگاهی می‌تواند یک تاپیک را برای دیگر دستگاه‌ها منتشر کند. داده‌های منتشر‌شده توسط یک سرور مرکزی که کارگزار نامیده می‌شود مدیریت می‌شوند. در‌واقع کارگزار مسئول توزیع و دریافت داده‌هاست. داده‌ها و سلسله‌مراتب آن توسط علامت “/” از یکدیگر جدا می‌شوند. به‌عنوان مثال، یک سنسور دما که در یک اتاق جلسه قرار دارد، داده‌های زیر را منتشر می‌کند: Floor3/Room2/Temperature به‌این‌ترتیب دستگاه تهویه هوایی که در اتاق نصب شده است با آگاه شدن از وضعیت دمای اتاق، قادر به تنظیم کردن دمای اتاق خواهد بود و دمای اتاق به خوبی مدیریت می‌شود. دیگر دستگاه‌ها نیز می‌توانند این مورد را مشاهده و تأیید کنند یا حتی جهت نظارت بر دمای تمام اتاق‌ها، آن را با تاپیک “+/+/Temperature” به اشتراک بگذارند. در ادامه مثال، دستگاه تهویه هوا نیز تاپیک “Floor3/Room2/AirConditioner” را به اشتراک می‌گذارد. این تاپیک می‌تواند دو مقدار (ON/OFF) را بگیرد. اگر این تاپیک به‌صورت “Floor3/Room2/AirConditioner = ON”منتشر شود، دستگاه روشن می‌شود. هم دفتر تعمیر و نگهداری و هم اتاق کنترل از راه دور قادر هستند تا این تاپیک را منتشر کنند که البته جای نگرانی نیست و MQTT می‌تواند این موارد را نیز مدیریت کند. کارگزار (Server): این قسمت از سیستم باید همواره از تاپیک‌هایی که دستگاه‌ها منتشر می‌کنند مطلع باشد و آن را بین همه‌ی دستگاه‌هایی که مرتبط با تاپیک فوق هستند، توزیع کند. در بین تمامی کارگزارهای در دسترس، ما کارگزار Mosquitto را به دلایل زیر انتخاب کردیم: متن‌باز بودن نصب و مدیریت آسان موجود بودن برای رزبری پای، به این دلیل که باید به‌صورت 24 ساعته در دسترس باشد. به نظر می‌رسد که استفاده از یک دستگاه باقدرت پایین انتخاب خوبی باشد. اولین مرحله کار نصب Mosquitto بر روی رزبری پای است. کنسول برنامه‌نویسی خود را باز کنید و عبارت زیر را در آن تایپ کنید: sudo apt-get install mosquitto mosquitto-clients python-mosquitto در حال حاضر Mosquitto نصب شده و در حال اجرا است. همچنین پس از خاموش شدن و راه‌اندازی مجدد سیستم، به‌صورت خودکار اجرا می‌شود. به منظور بررسی عملکرد مناسب آن، یک جفت برنامه کاربردی را نصب و آماده اجرا می‌کنیم: یک منتشر کننده و یک مشترک. ما این تاپیک را با موضوع “test” با تایپ سطر زیر پیاده‌سازی می‌کنیم: mosquitto_sub -d -t test برای دیگر قسمت برنامه، یک صفحه‌ی جدید که مخصوص انتشار پیام است را در کنسول خود باز می‌کنیم: mosquitto_pub -d -t test -m Hello در پنجره اول می‌توانیم ببینیم که پیغامی مبنی بر اینکه “مشترک، تاپیک فوق را دریافت کرده است” نمایش داده می‌شود: Client mosqsub/22163-raspberry received PUBLISH (d0, q0, r0, m0, 'test', ... (5 bytes)) Hello آداپتور اینترنت اشیاء IOT استفاده از پروتکل MQTT برای اینترنت چیزها (LOT): یکی از موارد مهم این است که آداپتوری که استفاده می‌کنیم باید به یک اینترنت بی‌سیم متصل بوده و از لحاظ موقعیت، در دسترس تمامی گره‌ها باشد. به‌عنوان هسته اصلی آداپتور IOT، به دلایلی که در پایین ذکر‌شده، ما یک دستگاه ESP-03 را بر پایه یک تراشه ESP8266 انتخاب کردیم: اندازه‌ی کوچک هزینه بسیار پایین امکانات وای فای رابط سریال وابسته بودن به یک خانواده بزرگ (که درنتیجه دستگاه به‌راحتی قابل تعویض است.) برنامه‌نویسی ساده به کمک Arduino IDE با توجه به ویژگی‌های منحصربه‌فرد آن، آداپتور IOT با کمی لحیم‌کاری می‌تواند به یک ESP-03 همراه با اتصالات 2.54 متصل شود. ابزار مورد نیاز برای راه اندازی پروژه: رزبری پای 3 ماژول ESP8266 سخت‌افزار: اشکال مهم ESP-03 این است که اتصالات آن از نوع 2.54 نیست. که مانع از اتصال به یک PCB با یک اتصال استاندارد می‌شود. راه‌حل اجراشده در تصویر دو قابل‌مشاهده است. ما یک سیم به هرکدام از پین‌ها لحیم کردیم که خم شدن آن‌ها باعث می‌شود تا به یک هدر 2.54 تبدیل شوند. ESP-03 می‌تواند به‌صورت متصل یا غیر متصل برنامه‌ریزی شود. همچنین جایگاه عمودی ESP-03 کمک می‌کند تا سطح مورداستفاده PCB کاهش یابد. پین‌ها باید به مقدار حداقل ممکن برای اپلیکیشن‌ها مورداستفاده قرار گیرند. در تصویر سه، پین‌های خروجی اصلی ESP-03 و آرایش نهایی آداپتور LOT را می‌توانید ببینید. ایضاً می‌بینید که 12 پین هدر مورداستفاده قرار گرفته است. برای برنامه‌ریزی آداپتور ما به یک فلش USB به‌عنوان مبدل سریال نیاز داریم. با در نظر گرفتن اینکه ESP-03 از جریان برق 3.3V استفاده می‌کند. (و نه 5V) سیگنال‌های Rx و Tx باید با ولتاژ فوق سازگار شود. به این منظور ما از یک کابل FTDI 5V استفاده کردیم و ولتاژ موردنظرمان را تغییر دادیم. میزان ولتاژ Rx وقتی‌که از کابل FTDI استفاده می‌کنیم باید کاهش یابد. به همین دلیل ما از دو مقاومت تقسیم‌کننده ولتاژ استفاده کردیم. از سوی دیگر سیگنال Tx با استفاده از کابل FTDI باید از 3.3 به 5 ولت افزایش یابد. در تئوری، به این کار نیازی نیست. زیرا 3.3 ولت از 2.5 ولت بالاتر است. ارزش کابل FTDI “1” در نظر گرفته می‌شود. شماتیک دیاگرام فوق را ببینید. بورد فوق به‌راحتی بر روی یک پوسته نصب می‌شود. نرم‌افزار: دستگاه‌های ESP-xx که در این پروژه از آن‌ها نام برده می‌شود، همه از یک کارخانه بوده و به‌وسیله یک پروتکل دستوری مشخص باهم ترکیب شده‌اند. امکان دوم این است که آن‌ها به یک مترجم زبان LUA مجهز شده‌اند، که البته MQTT را نیز پشتیبانی می‌کنند و پس از چند آزمایش مشاهده شد که به خوبی کار می‌کند. امکان سوم، استفاده از محیط برنامه‌نویسی آردوینیو (Arduino) به‌طور گسترده است. جهت برنامه‌نویسی بهتر می‌توانید از برنامه ++C به‌عنوان مترجم زبان برنامه‌نویسی استفاده کنید. ما درنهایت این راه را انتخاب کردیم. فرایندهای زیر را دنبال کنید: نصب نرم افزار Arduino IDE: از طریق این لینک می‌توانید آخرین نسخه نرم‌افزار را یافته و نصب کنید. راه‌اندازی IDE و پیدا کردن کامپایلر سازگار با ESP8266: نرم افزار Arduino IDE را باز کنید. در قسمت منو این آدرس را دنبال کنید: File–Preferences سپس در باکس Additional Boards Manager URLs مقدار زیر را قرار دهید: http://arduino.esp8266.com/versions/2.0.0/package_esp8266com_index.json نصب کامپایلر سازگار با ESP8266: در قسمت منو به این آدرس بروید: Tools-Board-Boards Manager، گزینه esp8266 را پیدا کنید و فایل esp8266 by ESP8266 Community را نصب کنید. در پنجره ای که ظاهر می‌شود به این آدرس بروید: Tools – Board – Generic ESP8266 Module نصب کتابخانه MQTT: به این آدرس بروید : Sketch – Include library – Manage Libraries، به دنبال mqtt 8266 بگردید و PubSubClient را نصب کنید. بارگیری و کامپایل کردن طرح ارائه شده mqtt.ino: جهت توصیف سخت‌افزارها و آپلود برنامه، آداپتور IOT را به رایانه متصل کنید برای این کار دکمه‌های POWER و PROGRAM را بر روی برنامه‌ریز به‌طور همزمان فشار دهید. (توجه داشته باشید که به‌طورمعمول دکمه POWER به‌صورت بسته است.) سپس در ابتدا دکمه POWER و پس‌ازآن دکمه PRGRAM را آزاد کنید. در حال حاضر ESP-01 منتظر دریافت برنامه است. دکمه آپلود را در Arduino IDE فشار دهید. بعد از آن برنامه ارسال می‌شود. سپس دکمه POWER را به‌صورت لحظه‌ای فشار دهید تا برنامه بر روی ESP-03 اجرا شود. جهت راه‌اندازی نرم‌افزار موارد زیر را دنبال کنید: پس از راه‌اندازی، به روتر متصل شوید. SSID و پسورد آن در قسمت کد نمایش داده می‌شود. سپس، جهت برقراری ارتباط با کارگزار(server) اقدام کنید. آدرس IP آن در قسمت کد مشخص است. جهت دریافت اشتراک از شبکه منتظر بمانید و برای انتشار تاپیک‌ها به سراغ سریال پورت بروید. ارتباطات با دستگاه‌های عمومی از طریق پورت سریال انجام می‌گیرد که بر اساس یک پروتکل مبتنی بر متن ترکیبی است که در زیر می‌بینید. (برای هر دو Rx و Tx) : :[Command];[Parameter1];[Parameter2]CRLF که منظور از هرکدام این‌چنین است: Command : دستورها، پیام‌های استاتوس Parameter1 Parameter2 : یک یا دو پارامتر داریم. (بسته به قسمت Command) CRFL : کاراکترهای اسکی 13و 10 که در پایان خط نشان داده می‌شوند. دستورهایی که از دستگاه عمومی به آداپتور LOT ارسال می‌شوند به این صورت هستند: :publish;topic;payload انتشار یک تاپیک با یک مقدار ارزش‌گذاری مشخص مثال: اگر ترموستات دمای اتاق را منتشر کند، کد زیر را ارسال خواهد کرد: :publish;Floor3/Room2/Temperature;22.3 مشترک شدن در یک تاپیک. :subscribe;topic مثال: یک سیستم تهویه مطبوع، به یک سرویس خاموش-روشن مشترک شده است: :subscribe;Floor3/Room2/AirConditioner در نتیجه دستورات برگشتی دریافت خواهد شد که در زیر مشاهده می‌کنید. دستورات از آداپتور LOT به دستگاه‌های عمومی به شکل زیر ارسال می‌شود: :callback;topic;payload یک تاپیک با ارزش مشخص دریافت شده است. البته تنها تاپیک‌هایی که از قبل دستگاه با آن‌ها مشترک شده، قابل دریافت هستند. مثال : اگر دستگاه تهویه هوایی که قبلاً ذکر شد باید خاموش شود دستور زیر را دریافت خواهد کرد: :callback;Floor3/Room2/AirConditioner;OFF پیام های وضعیت: آداپتور LOT، اطلاعاتی که در مورد پیشامدهای موجود هستند را به دستگاه‌های عمومی ارسال می‌کند. این پیام‌ها، خارج از پروتکل MQTT هستند اما فرمت یکسانی دارند. پیام‌ها عبارتند از: START شروع برنامه ESP-03 به‌صورت بوت WIFI-ON روشن کردن وای فای و برقرار شدن ارتباط با روتر. MQTT-ON روشن شدن MQTT و برقرار شدن ارتباط با کارگزار. MQTT-ERR خطا در برقراری ارتباط با کارگزار. پس از گذشت 5 ثانیه مجدد تلاش کنید. Error فرمان ناشناخته دریافت شده است. Ping60 هر 60 ثانیه ارسال می‌شود، به‌عنوان ناظر. بازبینی: به‌منظور بررسی عملکرد صحیح آداپتور LOT، آن را از طریق کانال سریال به کامپیوتر متصل کنید. مانند آنچه بر روی Arduino IDE دیده بودید، یک سریال کنسول بر روی کامپیوترتان آغاز بهکار می‌کند. ماژول آداپتور LOT را بدون فشار دادن دکمه PROGRAM راه‌اندازی کنید. برنامه شروع به کار خواهد کرد و اگر همه‌چیز به‌درستی کار کند، کنسول پیغام زیر را به نمایش می‌گذارد: :status;Start :status;WiFi_ON :status;MQTT_ON جهت بررسی اینکه آیا ماژول دستورات را به درستی دریافت می‌کند یا خیر می‌توانیم از یک دستور نامعتبر استفاده کنیم: :aaa در این صورت ماژول باید پیغام زیر را نمایش دهد: :status;<span class="hljs-built_in">Error</span> حال ما می‌توانیم کاربری مشترکمان با رزبری پای را آغاز کنیم: mosquitto_sub -d -t test اگر ما در کنسول IDE کد دستوری زیر را تایپ کنیم: :publish;test;Hello در کنسول رزبری پای باید تأییدیه رسیدن پیغام فوق، نمایش داده شود. همچنین، اگر ما در کنسول IDE کد دستوری زیر را تایپ کنیم: :subscribe;mytopic و در کنسول رزبری پای کد زیر را تایپ کنیم: :callback;mytopic;mymessage ارتقاء: یکی از امکان‌ها برای بهبود توانایی، اضافه کردن دستورهای جدید جهت نمایان ساختن روتر ، SSID و پسورد و یا آدرس IP کارگزار است که به‌جای کدهای ثابت می‌توانند مورداستفاده قرار بگیرند. این پروژه جهت کمک به دیگر مدارها و تبدیل آن‌ها به یک عضو از اینترنت اشیاء (LOT) در نظر گرفته شده است. اما ESP-03 این قابلیت را دارد تا اگر پین‌های (L/O) محدود آن برای یک برنامه خاص کافی باشند، خود به‌عنوان یک ماژول مستقل عمل کند. در غیر این صورت ما به یک ماژول مشابه با تعداد پین بیشتر، مانند ESP-12 نیاز خواهیم داشت. برنامه‌ها: حال، ما امکانات بی‌شماری داریم. استفاده از یک پروتکل استاندارد به ما این اجازه را خواهد داد تا دستگاه‌های متفاوت با برنامه‌های متفاوت و در مکان‌های متفاوت را به یکدیگر متصل کنیم. به‌عنوان مثال، برنامه‌هایی با سیستم‌عامل اندروید موجود هستند که به ما اجازه می‌دهند تا تاپیک‌هایی را منتشر کنیم یا با آن‌ها مشترک شویم. و همان‌طور که ما به یک شبکه با اینترنت متصل می‌شویم، با‌کمی دست‌کاری سیستم روتر می‌توانیم به دستگاه‌های اینترنت اشیاء، از هرجایی در جهان دسترسی داشته باشیم. دانلود MQTT.INO منبع ترجمه سیسوگ
  23. MQTT یک پروتکل ماشین به ماشین (M2M) برای اتصالات اینترنت اشیاء (LOT) است در قسمت اول این نوشته به بررسی پروتکل MQTT برای ارتباط مابین رزبری پای و ESP8266 می پردازیم. برای ایجاد تعامل میان دستگاه‌های اینترنت اشیا به پروتکل‌هایی با overhead کمتر (بار اضافی کمتر) از قبیل MQTT نیاز است.در دنیای اینترنت اشیا ؛ چیزی که بسیار با آن سروکار داریم، جدا از خود اشیا، پیام‌های ردوبدل شده میان آن‌ها است. دستگاه‌های اینترنت اشیا IoT هنگام ایجاد پیام، اطلاعاتی از قبیل گزارش وضعیت و ارزیابی محیط را ارسال کرده و هنگام دریافت اطلاعات، از آن‌ها خواسته می‌شود تا کاری را انجام دهند یا اطلاعات سایر دستگاه‌ها را ذخیره کنند و یا موارد کاربردی بی‌شمار دیگر. سرعت افزایش تعداد دستگاه‌های اینترنت اشیا مدام به نسبت روز قبل بیشتر شده و به‌تبع آن تجمع ترافیک پیام‌ها نیز با سرعتی باورنکردنی در حال رشد است. با بسط و توسعه اینترنت اشیا، اپلیکیشن هایی نیز روی گوشی‌های هوشمند، تبلت ها و کامپیوترها اجرا می‌شوند که همه نیازمند سرویس پیام‌رسان مشابهی هستند. روش‌های متعددی برای مدیریت پیام‌ها در اینترنت اشیا وجود دارد که یک از اثرگذارترین و جالب‌ترین تکنولوژی‌ها، بروکرهای پیام (message brokers) هستند. ویکی‌پدیا بروکرهای پیام را این‌چنین تعریف می‌کند: بروکر پیام (message brokers) یک ماژول برنامه واسط است که پیام را از پروتکل انتقال پیام ارسال‌کننده به پروتکل انتقال پیام گیرنده ترجمه می‌کند. بروکرهای پیام، اجزایی در شبکه‌های ارتباطات یا کامپیوتر هستند که اپلیکیشن های نرم‌افزاری در آنجا از طریق تبادل پیام‌های تعریف‌شده ارتباط برقرار می‌کنند. بروکرهای پیام یک بلوک سازنده پیام میان‌افزار به شمار می‌رود. بروکر یک الگوی معماری برای ارزیابی، انتقال و مسیریابی پیام به شمار می‌رود. بروکر به‌عنوان یک واسط با به حداقل رساندن آگاهی دوطرفه‌ای که اپلیکیشن ها برای تبادل پیام باید از وضعیت ارتباطی یکدیگر داشته باشند ارتباط میان اپلیکیشن ها را ممکن ساخته و از تکرار جلوگیری می‌کند. بروکرها از الگوی publish-subscribe استفاده می‌کنند. در این الگو subscriber (کلاینتی که پیام‌های مربوط به موضوع خاصی را دریافت می‌کنند) برای دریافت پیام‌هایی که publisher ها (ارسال‌کننده پیام بدون آنکه گیرنده خاصی برای دریافت آن پیام در نظر داشته باشد) به بروکر ارسال می‌کنند، با یک یا چند بروکر ارتباط برقرار می‌کنند. یک subscriber نیز تا حدودی می‌تواند هم‌زمان به‌عنوان یک publisher عمل کند. تئوری دیگر کافیست! اکنون به یکی از رایج‌ترین و تأثیرگذارترین پروتکل‌های بروکر یعنی MQ Telemetry Transport یا MQTT می‌پردازیم. توجه داشته باشید که نام اصلی این پروتکل در حال حاضر کمتر استفاده می‌شود و نام اختصاری آن یعنی MQTT به‌عنوان نام پروتکل بکار می‌رود. نام‌های قدیمی پروتکل MQTT عبارت‌اند از SCADA Device (MQIsdp) و WebSphere MQTT” (WMQTT) بر اساس توضیحات mqtt.org: MQTT، یک پروتکل انتقال پیام کاملاً ساده و بسیار سبک و مبتنی بر الگوی publish/subscribe (ثبت/انتشار) (ارسال/دریافت) است که برای دستگاه‌هایی که دارای محدودیت پردازش و ذخیره‌سازی (مانند دستگاه‌های اینترنت اشیا) هستند یا شبکه‌هایی که پهنای باند کم، تأخیر زمانی بالا و عدم ثبات دارند، طراحی گردیده است. اصول طراحی پروتکل MQTT به‌گونه‌ای است که پهنای باند و منابع موردنیاز دستگاه‌ها را به حداقل رسانده و درعین‌حال اعتماد و اطمینان برای دریافت پیام‌ها را نیز تضمین می‌کند. بعلاوه این اصول، پروتکل MQTT را برای ارتباط ماشین به ماشین (M2M) و یا دستگاه‌های متصل در دنیای اینترنت اشیا (IoT) و همچنین اپلیکیشن های موبایل که از مصرف باتری و پهنای باند کم برخوردار هستند، ایدئال می‌سازد. به‌عبارت‌دیگر، پیاده‌سازی MQTT، انتخابی است ایدئال برای دستگاه‌هایی از قبیل کامپیوتر Raspberry Pi، Arduino، تلفن‌های هوشمند OSes و هر پلتفرمی که می‌خواهد از انتقال پیام ساده با overhead کم بهره‌مند شود. تاکنون، پروتکل MQTT با نسخه ۳٫۱٫۱ و بر اساس استاندارد OASIS بوده است اگرچه در بازار این پروتکل با نسخه ۳٫۱٫۰ ارائه می‌شود. جدیدترین نسخه نسبت به نسخه قبلی به‌طور قابل‌ملاحظه‌ای توسعه یافته است و از این پس بروکرهای MQTT را با عنوان سرورهای MQTT نام برده خواهند شد. انجمن آیانا (IANA)، پورت ۱۸۸۳ از TCP/IP را جهت استفاده توسط بروکرهای MQTT و همچنین پورت ۸۸۸۳ را برای استفاده از MQTT بر روی SSL رزرو کرده است (باید توجه داشت که استفاده از SSL، overhead بیشتری در ارتباطات ایجاد می‌کند.) اغلب پیاده‌سازی‌های سرور نحت پروتکل MQTT از WebSockets پشتیبانی می‌کنند. پروتکل MQTT از ۵ ویژگی مهم برخورداراست: مسیریابی مبتنی بر Topic (موضوع): در پیاده‌سازی MQTT پیام‌ها بر اساس رتبه‌بندی موضوعی طبقه‌بندی می‌شوند مانند شهر، ساختمان، اتاق، دستگاه، سنسور. در پیام‌های ارسالی می‌توان از wildcard نیز استفاده کرد. به‌طور مثال کلیه اطلاعات مربوط به سنسورهای موجود در تمامی آزمایشگاه‌های واقع در کلیه ساختمان‌های کالیفرنیا را می‌توان به‌صورت california/+/laboratory/# ثبت کرد. علامت +، وایلد کارد در یک سطح و وایلد کارد # کلیه سطوح پایین‌تر را که در متعاقباً آمده است، شامل می‌شود. پشتیبانی از Clean Sessions(حذف session ها): زمانی که دستگاه endpoint برای اولین بار به سرور MQTT متصل می‌شود، session جدید MQTT ایجاد و توسط سرور و کلاینت ذخیره می‌شود. ذخیره session، این امکان را برای بروکر فراهم می‌کند تا پس از برقراری مجدد ارتباط نیز دریافت پیام‌ها را از سر بگیرد. بطوریکه پیام‌هایی که به علت قطع ارتباط، دریافت یا ارسال نشده‌اند، دریافت می‌شوند. Clean Sessions(حذف session ها) یک گزینه انتخابی است. کیفیت سرویس: پشتیبانی MQTT از QoS، این امکان را در اختیار subscriber ها و publisher ها قرار می‌دهد تا یکی از سه سطوح سرویس زیرا انتخاب کنند: QoS 0: این سطح از کیفیت خدمات نیاز به تائید از جانب گیرنده پیام ندارد. در این حالت، کیفیت و اطمینان خدمات، قربانی سرعت انتقال می‌شوند (احتمال از دست رفتن پیام‌ها وجود دارد). QoS 1 : از ارسال‌کننده می‌خواهد تا در صورت عدم دریافت پیام تائید در مهلت زمانی تعین شده، مجدداً پیام را ارسال کند. در اتصال اینترنتی ضعیف، تلاش مجدد QoS 1 در ارسال پیام ممکن است، در عملکرد انتقال پیام‌ها تأثیر گذاشته و احتمال ارسال پیام‌های تکراری وجود دارد. QoS 2 : مشابه عملکرد QoS 1 است با این تفاوت که برای اطمینان از عدم ارسال تکراری پیام‌ها، پی‌درپی وضعیت خود را تغییر می‌دهد. ذخیره پیام‌ها: زمانی که Publisher پیامی را با عنوان “ذخیره شود” علامت‌گذاری می‌کند، آن پیام پیش از سایر پیام‌ها به endpoint ای که برای آن تاپیک Subscribe کرده است می‌رسد. در هر تاپیک فقط یک پیام را می‌توان ذخیره کرد. پیام‌هایLWT: ا Publisher یا subscriber هنگام اتصال به سرور می‌توانند برای Topic خود یک پیام LWT تنظیم کنند، در این حالت در صورت قطع ناخواسته ارتباط endpoint، کلیه کاربرانی که آن topic را دنبال می‌کنند، پیام را دریافت خواهند کرد. در صورت قطع ارتباط عمدی، پیام‌های LWT ارسال نخواهند شد. در قسمت بعدی آموزش با نصب و تست MQTT روی رزبری پای آشنا میشویم. برای بحث های بیشتر در مورد اینرنت اشیا با رزبری پای و ESP8266 به تاپیک مربوطه در انجمن الکترولب مراجعه کنید. اگر به میکروکنترلر ها و آردوینو علاقه دارید وبلاگ دیگر من الکترولب را دنبال کنید. منبع: iott .ir
  24. از زمانی که رزبری پای (Rasberry Pi) وارد بازار قطعات کامپیوتری شد توجه بسیاری از افراد از جمله مهندسان، گیک‌ها و بازی‌خورها را به خود جلب کرد. یک کامپیوتر کامل تنها با قیمت 35 دلار؟! به نظر مسخره می‌آید ولی واقعاً شما یک کامپیوتر را می‌توانید همیشه در جیب خود داشته باشید، اما دقیقاً این چه وسیله‌ای است؟ چه کسی آن را ساخته؟ به چه کار می‌آید؟ مشخصات آن چیست؟ و خیلی سوال‌های دیگر که ما سعی می‌کنیم به آن‌ها جواب دهیم 1) رزبری پای چیست؟ رزبری پای کامپیوتری به اندازه کارت اعتباری است که قیمتی حدود 5 الی 35 دلار دارد. این کامپیوتر می‌تواند کارایی همانند کامپیوترهای رومیزی داشته باشد و یا با آن می‌توان دستگاه‌های هوشمند را ساخت. در اصل Rasberry Pi به عنوان کامپیوترهای کوچک برای تدریس برنامه نویسی به دانش‌آموزان ساخته شد. در سال‌های بعد از ورود آن به بازار، مهندسان و کارشناسان کامپیوتر پتانسیل واقعی این رایانه تک بردی را کشف کردند و در حال حاضر رزبری پای یکی از محبوب‌ترین آیتم‌های فناوری در جهان می‌باشد. شما می‌توانید با اضافه کردن دستگاه‌های دیگر مانند دوربین یا نمایشگر لمسی قابلیت‌های کامپیوتر Rasberry Pi را بالا ببرید. 2) خالق رزبری کیست؟ موسسه رزبری پای در سال 2008 میلادی توسط تکنسین‌ها و افراد آکادمیک (ابن آپتون، راب مولینز، جک لانگ، پیت لوماس، آلان مایکرافت و دیوید برابن) تاسیس شد. هدف اصلی این شرکت بالا بردن اطلاعات دانش‌‌آموزان در علوم رایانه بود که توانستند با تولید کامپیوتری بسیار ارزان قیمت و ساده به این هدف پاسخ دهند. تصویر بالا «ابن آپتون» را با یک کامپیوتر Rasberry Pi نشان می‌دهد. در حال حاضر تعداد کمی از افراد ذکر شده در بالا در این شرکت فعالیت دارند ولی ابن آپتون (یکی از بنیان‌گذاران این کامپیوتر) مدیرعامل فعلی رزبری پای است. 3) چرا نام Rasberry Pi را انتخاب کردند؟ انتخاب اسم میوه رزبری دنباله رو اسم دیگر کمپانی‌های کامپیوتر مانند اپل (Apple)، سیستم کامپیوترهای نارنگی (Tangerine Computer Systems)، کامپیوترهای زردآلو (Apricot Computers) و فندوقی بلوط (Acorn) بود. ایده اصلی کلمه پای (Pi) از کامپیوترهای کوچکی که تنها زبان برنامه نویسی پایتون را پشتیبانی می‌کنند، آمده است. در یکی از مصاحبه‌های خبری ابن آپتون اعلام کرده بود که هیچ وقت هدف اصلی ساخت کامپیوتر برای کارهای معمولی نبوده، با وجود اینکه این کامپیوتر می‌تواند جوابگوی نیازهای روزمره باشد؛ هدف اصلی این کمپانی، تولید کامپیوتری برای یادگیری برنامه نویسی دانش‌آموزان بوده‌ است. 4) زمان ورود رزبری پای به بازار کی بود؟ برای اولین بار نسخه تجاری رزبری پای 30 بهمن سال 1390 معرفی شد و ده روز بعد فروش آن آغاز شد. اولین کامپیوترهای Rasberry Pi مجهز به سیستم عامل لینوکس، رم 256 مگابایت و یک پورت یو اس بی بودند که با نام مدل ای (Model A) به فروش رفتند. 5) چه تفاوتی بین مدل‌های رزبری پای وجود دارد؟ نامگذاری مدل‌های رزبری پای مقداری گیج کننده است. دو دسته بندی برای نامگذاری مدل‌ها وجود دارد. پای 1، پای 2 و پای 3 نشان نسل‌های مختلف است مدل‌های پای 1 بین سال‌های 2012 الی 2014، مدل‌های پای 2 سال 2015 و مدل‌های پای 3 از سال 2016 به بعد تولید شدند، بنابراین مدل‌های 3 به روزترین نسخه‌های موجود در بازار و بهتر از مدل‌های پای 1 و پای 2 می‌باشند. مدل A ،A+ و B ،B+ مشخص کننده قدرت و ویژگی‌های کامپیوترهای Rasberry Pi می‌باشند و داشتن مدل A به معنای بهتر بودن از مدل B نیست. مدل دیگری به نام رزبری پای زیرو (Zero) موجود است که برای پروژه‌های ساده با قیمت 5 دلار به فروش می‌رود که نمی‌توان آن را با مدل‌های A و B مقایسه کرد، به علاوه این مدل دیگر در بازار موجود نیست. در تصویر بالا ویژگی‌ها و قیمت مدل‌های مختلف کامپیوترهای رزبری پای آورده شده‌ است. 6) کجا می‌توان از رزبری پای استفاده کرد؟ رزبری پای توانست توجه جامعه جهانی از هر قشر کاری را به خود جلب کند. در حال حاضر دو کامپیوتر رزبری پای در حال گردش به دور زمین هستند که آزمایشات ایستگاه فضایی بین‌المللی را انجام می‌دهند. به زودی پروژه استرو پای (Astro Pi) یک فضانورد انگلیسی «تیم پیک» به فضا می‌فرستد، در این پروژه از دانش‌آموزان انگلیسی خواسته شده تا برنامه‌ای برای آزمایشاتی که وی می‌تواند در فضا انجام دهند را بنویسند. یکی دیگر از پروژه‌های رزبری پای روی زمین! تیمی از دانشجویان مهندسی کامپیوتر دانشگاه ساوت‌همپتون 64 دستگاه Rasberry Pi را کنار هم قرار می‌دهند تا ابررایانه خود را بسازند. هر پای حافظه 16 گیگابایتی دارد که روی هم می‌شود 1 ترابایت، سازندگان این ابررایانه اعلام کردند ساخت این ابررایانه همانند پازل‌های بازی لگو می‌باشد که می‌تواند پروژه‌ای ایده‌آل برای مدارس باشد. به علاوه گروهی از گیگ‌ها در حال ساخت قایق خودران بدون سرنشین هستند که از رزبری پای به عنوان مغز این وسیله استفاده کرده‌اند. به زودی این قایق خودران وارد آبهای اقیانوس اطلس می‌شود تا داده‌های علمی را جمع‌آوری کند. اسم این پروژه بسیار جالب FishPi است. در حال حاضر پروژه‌های زیادی در سراسر جهان از رزبری پای استفاده می‌‌کنند. 7) Rasberry Pi به چه کاری می‌آید؟ شما می‌توانید از رزبری پای برای کارهای مختلف استفاده کنید، برای مثال: به فرزندانتان برنامه نویسی یاد بدهید یا خودتان یاد بگیرید به عنوان کامپیوتر رومیزی از آن استفاده کنید کنسول بازی یکپارچه خود را درست کنید با رزپلکس (Rasplex) سیستم صوتی و تصویری یا دستگاه دانلود خود را بسازید دوربین مدار بسته خود را با رزبری پای بسازید رادیو اف‌ام (FM) یا ساعت جهانی خود را با زیرو پای بسازید دوربینی ارزان قیمت با قابلیت زمان گریز را بسازید با استفاده از Rasberry Pi می‌توانید دستگاه‌های جدید و متفاوتی بسازید، تنها کافی است در گوگل کمی جستجو کنید. 8) چه تعداد رزبری پای به فروش رفته؟ آخرین آمار فروش Rasberry Pi در بهمن ماه سال گذشته نشان داد که بیش از 8 میلیون دستگاه رزبری پای به فروش رفته که بیش از سه میلیون دستگاه آن مدل رزبری پای 2 بوده که تنها در کمتر از یک سال ورود به بازار فروخته شده‌اند. بنا به گزارش گاردین، بهترین فروش دستگاه‌های کامپیوتری در طول تاریخ برای انگلستان متعلق به رزبری پای می‌باشد. 9) از کجا می‌توان رزبری پای را خرید؟ شما می‌توانید سری به فروشگاه‌‌های آنلاین بزنید یا اگر در خارج از کشور زندگی می‌کنید می‌توانید از آمازون (Amazon)، ای‌بی (Ebay) یا سه فروشگاه رسمی فروش رزبری پای: RS Online، Think Allied و Element 14 کامپیوتر خود را خریداری کنید. امروزه بسیاری از متقاضیان به دنبال خرید Rasberry Pi 3 مدل B هستند که 35 دلار قیمت دارد و مجهز به وای فای، بلوتوث و پورت اینترانت هم است. چه چیز دیگری درباره رزبری پای می‌خواهید بدانید؟ تقریباً اطلاعات پایه و اصلی Rasberry Pi را برایتان معرفی کردیم. برای خرید رزبری پای (رسپبری پای) و وسایل جانبی به فروشگاه الکترولب مراجعه کنید. اگر سوال یا مشکلی درباره کار با رزبری پای دارید، می‌توانید در انجمن الکترولب با ما در میان بگذارید.
  25. WiringPI یک کتابخانه به زبان C است که برای تراشه BCM2835 رزبری پای نوشته شده است ، این کتابخانه عملا توانایی راه اندازی GPIO را برای رزبری پای مقدور می سازد. و برای زبان های c و ++c مناسب است.این کتابخانه بگونه ای طراحی شده که برای افرادی که با Wiring آردوینو کار کرده اند بسیار آشنا می باشد . Wiringpi می تواند به راحتی در محیط دستوری ترمینال مورد استفاده قرار گیرد و یا در اسکریپت های مختلف به خواندن و نوشتن پین ها بپردازد. جهت نصب این کتابخانه بصورت زیر عمل میکنیم. sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade برای دانلود WiringPi از GIT git clone git://git.drogon.net/wiringPi اگر برای اولین بار دستور clone را استفاده میکنید مرحله زیر را هم اجرا کنید: cd wiringPi git pull origin سپس برای نصب دستور زیر استفاده شود: cd wiringP ./build برای تست نصب میتوانید از دستور زیر استفاده کنید: gpio -v gpio readall در ادامه برنامه ی یک LED چشمک زن را بررسی کنیم. وارد محیط ترمینال رزبری شوید و توسط دستور زیر وارد فولدر wiringPi شوید: cd wiringPi/ سپس دستورات زیر را به ترتیب وارد کنید تا وارد پوشه مثال‌های موجود در کتابخانه wiringPi را مشاهده کنید: cd examples/ برای دیدن فایل های داخل پوشه از دستور زیر استفاده کنید ls هم اکنون لیست مثال‌های موجود درون این کتابخانه را مشاده می‌کنید برای مثال می‌خواهیم مثال LED چشمک زن یعنی blink.c را باز کنیم برای این منظور توسط دستور nano ، فایل مورد مورد نظر خود را در ادیتور nano باز می‌کنیم.پس برای باز کردن blink.c اینگونه عمل می‌کنیم: nano blink.c بعد از وارد کردن دستور فوق در ترمینال کد‌های مربوط به فایل blink را مشاهده می‌کنید.هم اکنون در کدی که مشاهده می‌کنید درون main برنامه wiringPiSetup را به wiringPiSetupGpio تغییر دهید. بعد از تغییرات کلید ترکیبی Ctrl+O را فشار دهید تا تغییرات ذخیره شود. و بعد از کلید ترکیبی CTRL +X را فشار دهید تا از محیط ویرایشگر کد خارج شویم.هنوز با ترمینال کار داریم پس آن را باز نگه دارید. حال LED را مطابق تصویر زیر به رزبری متصل کنید. \ اکنون می‌بایست پروژه LED را کامپایل کنیم. برای این منظور در ترمینال دستور زیر را وارد می‌کنیم: gcc blink.c -o blink -l wiringPi اکنون فایل blink.c کامپایل شده است.اکنون می‌خواهیم فایل کامپایل شده را اجرا کنیم، برای این منظور دستور زیر را در ترمینال وارد می‌کنیم: sudo ./blink
  26. نصب OpenCV بر روی رزبری پای

    برای نصب opencv3 بهتر است از SD card با حجم 16 گیگابایت استفاده کنید!! 1- فضای SD card را با دستورات زیر ازاد کنید: sudo raspi-config اولین گزینه را با enterانتخاب کنید بعد از اتمام چنین پیامی ظاهر خواهد شد enter را بزنید با زدن esc از صفحه خارج شوید و یکبار دستگاه را با دستور زیر reboot کنید : sudo reboot 2- سیستم خود را با دستورات زیر اپدیت کنید: sudo apt-get update sudo apt-get upgrade sudo rpi-update دستگاه را با دستور زیر ریبوت کنید sudo reboot 3- ابزار cmake را با دستور زیر نصب کنید: sudo apt-get install build-essential cmake cmake-curses-gui pkg-config 4- کتابخانه های مورد نیاز را با دستور زیر نصب کنید : sudo apt-get install \ libjpeg-dev \ libtiff5-dev \ libjasper-dev \ libpng12-dev \ libavcodec-dev \ libavformat-dev \ libswscale-dev \ libeigen3-dev \ libxvidcore-dev \ libx264-dev \libgtk2.0-dev sudo apt-get install libatlas-base-dev gfortran 5- opencv3 را با دستورات زیر دانلود میکنیم : wget --no-check-certificate https://github.com/opencv/opencv/archive/3.2.0.zip -O opencv_source.zip wget --no-check-certificate https://github.com/opencv/opencv_contrib/archive/3.2.0.zip -O opencv_contrib.zip فایل ها دانلود شده را با دستور زیرunzip کنید: unzip opencv_source.zip unzip opencv_contrib.zip 6- درون فایل opencv-3.2.0 یک فایل با نام build بسازید: cd opencv-3.2.0 mkdir build cd build تنظیمات cmake را با دستورات زیر انجام دهید : cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_WITH_DEBUG_INFO=OFF \ -D BUILD_DOCS=OFF \ -D BUILD_EXAMPLES=OFF \ -D BUILD_TESTS=OFF \ -D BUILD_opencv_ts=OFF \ -D BUILD_PERF_TESTS=OFF \ -D INSTALL_C_EXAMPLES=OFF \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules \ -D ENABLE_NEON=ON \ -D WITH_LIBV4L=ON \ در انتها چنین چیزی باید نمایش داده شود در غیر این صورت دستور بالا را دوباره اجرا کنید و به ارور ها دقت کنید و انان را رفع کنید !!!!! دستور زیر را برای نصب opencv اجرا کنید: دقت کنید که دستور –j3 به معنی ان است که برای نصب از 3 هسته استفاده کن برای سرعت بخشیدن میتوان از –j4 استفاده کرد و به علت داغ کردن raspberry pi حتما یک سیستم خنک کننده (یک فن کوچک) برای ان در نظر بگیرید اگر سیستم خنک کننده ای ندارید از –j2 استفاده کنید !!!!! make –j3 منتظر بمانید تا نصب تمام شود این کار مقداری طول خواهد کشید!!!!!! 7- برای نصب کتابخانه های opencv3 دستورات زیر را اجرا کنید : sudo make install sudo ldconfig 8- حالا opencv3 نصب شده است و ان را تست میکنیم : دقت کنید که opencv3 بر روی python3 نصب شده است!!!!! cd python3 import cv2 print(cv2.__version__) ضمیمه 1: بر روی سیستم عامل raspbian ، python 2 به صورت پیشفرض قرار دارد برای تغییر دادن پیشفرض به python 3 دستور زیر را اجرا کنید: update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1 حال ورژن پایتون پیشفرض 3.4.2 شده است . ضمیمه 2: اگر از دوربین خود raspberry pi برای پردازش تصویر استفاده میکنید و میخواهید از تابع خود opencv برای دریافت فریم استفاده کنید(cv2.VideoCapture(0)) نیاز است تا درایور Video4Linux را نصب کنید از دستورات زیر برای نصب درایور استفاده کنید: sudo apt-get -y install libv4l-dev v4l-utils sudo modprobe bcm2835-v4l2 بهتر است بعد از انجام تمامی این مراحل و نصب opencv3 از SD card خود image بگیرید تا برای بعدا مستقیما سیستم عامل دارای opencv3 را نصب کنید و در وقت صرفه جویی کنید!!! نویسنده: شهاب نیکخو
  27. راه اندازی ماژول ESP8266 WIFI با میکروپایتون

    مرحله ۳ پیدا کردن پوت سریالی که به کامپیوتر وصل است برای فهمیدن اینکه چه پورت سریالی به بورد esp8266 اختصاص یافته از دستور لینوکسی dmesg | grep tty استفاده کنید.
  28. راه اندازی ماژول ESP8266 WIFI با میکروپایتون

    پایتون یک زبان برنامه‌نویسی همه منظوره، سطح بالا، شیءگرا و مفسر است. که قابلیت یادگیری آسان آن را به یکی از فراگیر ترین زبان های برنامه نویسی تبدیل کرده است. می خواهیم از این زبان برنامه نویسی برای برنامه نویسی ماژول ESP8266 استفاده کنیم. برای این منظور ابتدا باید فریمور Micro python بر روی ESP8266 نصب شود. برای راحتی کار می توانید از برد NodeMCU و یا برد های مشابه که چیب تبدیل USB به سریال را نیز بر روی خود دارند استفاده کنید. اول از همه اینکه من از لینوکس اوبونتو برای ادامه آموزش استفاده میکنم ولی تفاوت چندانی بین استفاده از ویندوز و یا لینوکس نیست و به راحتی می توانید از ویندوز نیز برای دنبال کردن این آموزش استفاده کنید. بعد از اتمام مراحل فلش کردن به وسیله ویندوز رو هم اضافه میکنم!منتظر باشید یکم مرحله ۱ دانلود فریمور میکروپایتون برای ESP8266 برای دانلود به صفحه دانلود میکروپایتون بروید سه نسخه برای دانلود ESP8266 در دسترس است که به نا به توصیه خود وبسایت میکروپایتون نسخه Stable firmware builds for 1024kb modules and above رو دانلود کنید. مرحله ۲ نصب esptool برای فلش کردن esp8266 برای نصب esptool که یک برنامه نوشته شده به زیان پایتون است نیاز یه برنامه pip دارید که در نسخه های جدید پایتون نصب شده (و نیاز به کار خاصی نیست ولی اگر نبود هم به راحتی قابل نصب میباشد در صورتی که کسی مشکل داشت پیام بده راهنمایی میکنم )برای نصب دستور زیر رو وارد کنید. sudo pip install esptool
  1. نمایش فعالیت های بیشتر
×