ESP 8266 реле

Удачи :wink:

Все проблемы в этом мире из-за недофинансирования.

3 лайка

Это надо отлить в граните!

Чтобы помочь у исполнителя должна быть такая плата или документация на неё как минимум

У меня есть такая. Свет в комнате включает/выключает. И бесплатный совет я ему еще в 9 посте дал. Но бесплатно он не понимает, а за деньги - не хочет ))

1 лайк

так дорого для него, он видимо рублей на 300 рассчитывал

В данном случае из-за недофинансирования школьного образования. На исправление этих проблем 2000 рублей явно мало)
Кто тут на форуме самый волшебный программист? Прикиньте, волшебный код исправил волшебными руками и…и светодиод превратился в реле🤣

Бармалей.

это самое простое, контрол-ф в помощь, но там еще два-три десятка ошибок

Да, я честно пытался вникнуть в это безобразие. Так и не понял чего куда и зачем там.

а зачем вникать, код явно откуда-то содран, поправить явные ошибки, а пин реле уже озвучили, можно и дефайном подобрать

Ну как зачем? Всегда интересно у других подсмотреть) Вдруг что-то новое и полезное увижу. Хотя смотреть тексты вопрошающих здесь не очень.)

а ТС пропал

Так он вчера и ушёл 4 решения покупать:

  1. Как из светодиода сделать реле
  2. Где тут вообще подключать + и -
  3. Я перепутал полярность, греется ESP,подскажите что делать?
  4. Где быстрей заказать новую ESP?
    В общем, в кругу сансары чел)
2 лайка

а я хотел помочь, пока Скиф спит или где он там…
чтобы не осталась какая-то недосказанность, выложу код с комментариями:
TC использовал обновление странички через AJAX, находим в гугле первый попавшийся пример, на удивление автор страницу WEB сделал по фэншую в отдельном файле и, пин включения обозначил как LED, что облегчит нам переназначение оного на пин реле.
Добавим нужное, закоментируем ненужное, поправим реверсное включение для LED, пять минут и, вуаля:

/*Arduino  code for ESP8266 AJAX Webserver
  www.circuitdigest.com
*/


#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include "index.h"
#define LED LED_BUILTIN
const char* ssid = "ESPap"; //"admin";
const char* password = "012345678";
ESP8266WebServer server(80);
void handleRoot()
{
  String s = webpage;
  server.send(200, "text/html", s);
}
void sensor_data()
{
  int a = analogRead(A0);
  int temp = a / 4.35;
  String sensor_value = String(temp);
  server.send(200, "text/plane", sensor_value);
}
void led_control()
{
  String state = "OFF";
  String act_state = server.arg("state");
  if (act_state == "1")
  {
    digitalWrite(LED, LOW); //LED ON (включение светодиода)
    state = "ON";
  }
  else
  {
    digitalWrite(LED, HIGH); //LED OFF (выключение светодиода)
    state = "OFF";
  }

  server.send(200, "text/plane", state);
}
void setup(void)
{
  Serial.begin(115200);
 // WiFi.begin(ssid, password);
  Serial.println("");
  pinMode(LED, OUTPUT);
  WiFi.softAP(ssid, password);
  /*
  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print("Connecting...");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
*/
  server.on("/", handleRoot);
  server.on("/led_set", led_control);
  server.on("/adcread", sensor_data);
  server.begin();
}


void loop(void)
{
  server.handleClient();
}

код странички в файле index.h

const char webpage[] PROGMEM = R"=====(
<!DOCTYPE html>
<html>
<style type="text/css">
.button {
  background-color: #4CAF50; /* Green */
  border: none;
  color: white;
  padding: 15px 32px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 16px;
}
</style>
<body style="background-color: #f9e79f ">
<center>
<div>
<h1>AJAX BASED ESP8266 WEBSERVER</h1>
  <button class="button" onclick="send(1)">LED ON</button>
  <button class="button" onclick="send(0)">LED OFF</button><BR>
</div>
 <br>
<div><h2>
  Temp(C): <span id="adc_val">0</span><br><br>
  LED State: <span id="state">NA</span>
</h2>
</div>
<script>
function send(led_sts) 
{
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("state").innerHTML = this.responseText;
    }
  };
  xhttp.open("GET", "led_set?state="+led_sts, true);
  xhttp.send();
}
setInterval(function() 
{
  getData();
}, 2000); 
function getData() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("adc_val").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "adcread", true);
  xhttp.send();
}
</script>
</center>
</body>
</html>
)=====";