با درود
در این پست در رابطه با نحوه برنامه ریزی بردهای آردوینو از طریق اینترنت و یا اتصال WIFI اطلاعاتی را با شما به اشتراک خواهم گذاشت.
برای برنامه ریزی بردهای آردوینو با روش OTA (Over the Air)، می توان از روش اتصال به سرور داخلی (LocalHost) و یا با استفاده از سایت های اینترنتی (مانند Github و ...)، این کار را انجام داد.
در رابطه با روش اتصال به سرور داخلی (LocalHost)، پست هایی جالبی در اینترنت مانند نمونه های زیر موجود میباشد :
روش اجرای کار شرح داده در بالا، به صورت خلاصه شامل مراحل زیر می گردد:
۱- ابتدا نیاز می باشد که بردهای قابل اتصال به اینترنت مانند سری های ESP8266 یا بردهایی Arduino Uno متصل به ماژول های قابل اتصال به اینترنت از قبیل اترنت و ... از طریق پورت USB به PC متصل شوند.
۲- در مرحله بعد نیاز می باشد که بر اساس آموزش های اینجا، کتابخانه ArduinoOTA در نرمافزار آردوینو نصب گردد.
۳- از طریق برنامه هایی مانند برنامه زیر ( برای ESP8266 ) برنامه روی این برد ریخته شود:
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#ifndef STASSID
#define STASSID "Adsl momo"
#define STAPSK "9155253009"
#endif
const char* ssid = STASSID;
const char* password = STAPSK;
void setup() {
Serial.begin(115200);
Serial.println("Booting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Connection Failed! Rebooting...");
delay(5000);
ESP.restart();
}
// Port defaults to 8266
// ArduinoOTA.setPort(8266);
// Hostname defaults to esp8266-[ChipID]
// ArduinoOTA.setHostname("myesp8266");
// No authentication by default
// ArduinoOTA.setPassword("admin");
// Password can be set with it's md5 value as well
// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
// ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");
ArduinoOTA.([]() {
String type;
if (ArduinoOTA.getCommand() == U_FLASH) {
type = "sketch"
} else { // U_FS
type = "filesystem"
}
// NOTE: if updating FS this would be the place to unmount FS using FS.end()
Serial.println("Start updating " + type);
});
ArduinoOTA.([]() {
Serial.println("\nEnd");
});
ArduinoOTA.([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
});
ArduinoOTA.([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) {
Serial.println("Auth Failed");
} else if (error == OTA_BEGIN_ERROR) {
Serial.println("Begin Failed");
} else if (error == OTA_CONNECT_ERROR) {
Serial.println("Connect Failed");
} else if (error == OTA_RECEIVE_ERROR) {
Serial.println("Receive Failed");
} else if (error == OTA_END_ERROR) {
Serial.println("End Failed");
}
});
ArduinoOTA.begin();
Serial.println("Ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
ArduinoOTA.handle();
}
در مرحله بعدی در صورت اتصال صحیح برد به اینترنت ( شبکه محلی با ادرس 192.168.1.X در اینجا!)، شما می توانید با انتخاب گزینه جدید مانند نمونه زیر برنامه جدید را روی برد خود از طریق شبکه وای فای محلی آپلود نمایید:
۱- در صورت وارد نمودن اطلاعات بخش پسورد و یوزر برای اینکار در برنامه های ArduinoOTA مانند بخش زیر :
ArduinoOTA.setHostname("myesp8266");
ArduinoOTA.setPassword("admin");
سوالی مبنی بر پسورد در مرحله ریختن برنامه از طریق انتخاب گزینه Port : 192.*** ، از شما پرسیده خواهد شد ، که جواب آن در داخل برنامه قرار داده شده است مثلا در اینجا User=myesp8266 و Password=admin، می باشد.
۲- در صورت عدم قرار دادن اطلاعات مربوط به بخش های اصلی این برنامه در توابع void setup و void loop، f، به همراه کتابخانه های مورد نیاز مانند :
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
امکان اجرای فرایند برنامه ریزی از طریق شبکه محلی یا اینترنت در صورت حذف کدهای بخش OTA، برای بار دوم وجود نخواهد داشت. یک نمونه از برنامه تست دما با قابلیت OTA ، برای دقت بر جزئیات و نحوه نوشتن توابع در دو تابع اصلی void setup و void loop، در اینجا قابل مشاهده می باشد. بخش های برنامه OTA در لینک قبل، در شکل زیر قابل مشاهده می باشد:
این روش شامل "ریختن برنامه روی بردهای آردوینو با استفاده از سایتهای اینترنتی" می گردد.نمونه ای از انجام این کار در ویدئوی زیر توضیح داده شده است:
به صورت کلی، برای اینکار از روش هایی مانند موارد زیر می توان این کار انجام داد:
۱- ریختن برنامه در سایت GitHUb از روش توضیح داده شده در این ویدیو و این لینک.
۲- استفاده از سایت های مخصوص این کار مانند موارد زیر :
۲-۱ سایت https://ota.aglow.co.in با هزینه ی شارژ ماهانه حدود ۵۰ دلار (آموزش نحوه کار در این ویدیو و این لینک)
۲-۲ با کمک امکانات رایگان گوگل توضیح داده شده در این لینک:
با تشکر از توجه شما و با آرزوی شادی و موفقیت.