در حال بارگزاری . . .

شما هنوز وارد نشده اید
×
ساخت دیمر دیجیتال

دیمر دیجیتال با ESP8266

دسته بندی : دسته‌بندی نشده

چکیده :

دیمر دیجیتال با استفاده از esp8266 و یا nodemcu و کنترل ولتاژ 220 ولت با استفاده از ترایاک و ساخت دیمر هوشمند با گوشی به همراه مدار و آموزش

امروز میخوایم با هم یه مدار دیمر دیجیتال با ESP8266 بسازیم که بتونیم با مرورگر با گوشی یا وسایل هوشمندمون بتونیم شدت نور موتور ، سرعت دور موتور AC و کلی چیز دیگه رو کنترل کنیم .

شروع ساخت سخت افزار دیمر دیجیتال

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

  • ترایاک BT136
  • اپتوترایاک MOC2031
  • ماژول وایفای NODEMCU و یا wemos
  • مقاومت ۲۲۰ اهم و ۱ کیلو اهم

 

اتصالات مدار

دیمر دیجیتال با esp8266

 

شروع نوشتن کد دیمر دیجیتال

توضیحات کلی کد

ما نیاز داریم کدی را بنویسیم که با استفاده از گوشی یا وسایل دیگر بتوانیم عددی بین ۰ تا ۱۰۲۳ را به نود میکرو خود بدهیم و آن را به صورت pwm در خروجی پایه d5 که به اپتوترایاک وصل شده بدهد تا بتوانیم عملیات کنترل دور موتور را انجام دهیم

 

کد نهایی ما


#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>

// Replace with your network credentials
const char* ssid = "hosseingh";
const char* password = "12345678";

const int output = 5;

String sliderValue = "0";

const char* PARAM_INPUT = "value";

// Create AsyncWebServer object on port 80
AsyncWebServer server(80);

const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ESP Web Server</title>
<style>
html {font-family: Arial; display: inline-block; text-align: center;}
h2 {font-size: 2.3rem;}
p {font-size: 1.9rem;}
body {max-width: 400px; margin:0px auto; padding-bottom: 25px;}
.slider { -webkit-appearance: none; margin: 14px; width: 360px; height: 25px; background: #FFD65C;
outline: none; -webkit-transition: .2s; transition: opacity .2s;}
.slider::-webkit-slider-thumb {-webkit-appearance: none; appearance: none; width: 35px; height: 35px; background: #003249; cursor: pointer;}
.slider::-moz-range-thumb { width: 35px; height: 35px; background: #003249; cursor: pointer; } 
</style>
</head>
<body>
<h2>ESP Web Server</h2>
<p><span id="textSliderValue">%SLIDERVALUE%</span></p>
<p><input type="range" onchange="updateSliderPWM(this)" id="pwmSlider" min="0" max="1023" value="%SLIDERVALUE%" step="1" class="slider"></p>
<script>
function updateSliderPWM(element) {
var sliderValue = document.getElementById("pwmSlider").value;
document.getElementById("textSliderValue").innerHTML = sliderValue;
console.log(sliderValue);
var xhr = new XMLHttpRequest();
xhr.open("GET", "/slider?value="+sliderValue, true);
xhr.send();
}
</script>
</body>
</html>
)rawliteral";

// Replaces placeholder with button section in your web page
String processor(const String& var){
//Serial.println(var);
if (var == "SLIDERVALUE"){
return sliderValue;
}
return String();
}

void setup(){
// Serial port for debugging purposes
Serial.begin(115200);

analogWrite(output, sliderValue.toInt());

// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..");
}

// Print ESP Local IP Address
Serial.println(WiFi.localIP());

// Route for root / web page
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send_P(200, "text/html", index_html, processor);
});

// Send a GET request to <ESP_IP>/slider?value=<inputMessage>
server.on("/slider", HTTP_GET, [] (AsyncWebServerRequest *request) {
String inputMessage;
// GET input1 value on <ESP_IP>/slider?value=<inputMessage>
if (request->hasParam(PARAM_INPUT)) {
inputMessage = request->getParam(PARAM_INPUT)->value();
sliderValue = inputMessage;
analogWrite(output, sliderValue.toInt());
}
else {
inputMessage = "No message sent";
}
Serial.println(inputMessage);
request->send(200, "text/plain", "OK");
});

// Start server
server.begin();
}

void loop() {

}

تغییر سورس کد

دانلود و اضافه کردن ۲ کتابخانه ESPAsyncTCP و ESPAsyncWebServer به محیط آردوینو

#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>

 

برای اتصال به وایفای باید شما اطلاعات وایفای خود را جایگذاری کنید

const char* ssid = "hosseingh";
const char* password = "12345678";

 

مشخص کردن پایه pwm که به اپتوترایاک وصل شده است

const int output = 5;

 

مشخص کردن مقدار اولیه pwm

String sliderValue = "0";

 

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

const char* PARAM_INPUT = "value";

 

جمع بندی

ما به همین راحتی میتوانیم با وسایل هوشمند خود نور و سرعت و ولتاژ وسایل مورد نظر خود را کنترل کنیم

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

در حال اعتبار سنجی لطفا منتظر بمانید ...