ESP8266
Модератор: immortal
-
- Сообщения: 215
- Зарегистрирован: Вс мар 05, 2017 2:18 pm
- Благодарил (а): 21 раз
- Поблагодарили: 6 раз
Re: ESP8266
Во, это уже то что нужно. Если не секрет, а как дела обстоят если два и три источника света, на каждый подаёте свой проходной выключатель? Допустим говорим об одном помещении .
-
- Сообщения: 718
- Зарегистрирован: Ср май 03, 2017 7:41 pm
- Благодарил (а): 117 раз
- Поблагодарили: 113 раз
Re: ESP8266
У меня пока задействована только одна ESP, я только начал приобщаться к "умному дому". 
А на 2 или 3 источника света можно поставить 2 или 3 трёхпозиционных клавиши, вроде тех, что я выложил выше.

А на 2 или 3 источника света можно поставить 2 или 3 трёхпозиционных клавиши, вроде тех, что я выложил выше.
-
- Сообщения: 24
- Зарегистрирован: Пт ноя 25, 2016 11:50 am
- Откуда: Москва
- Благодарил (а): 10 раз
- Поблагодарили: 3 раза
Re: ESP8266
Больше полгода работают 4 ESP c прошивкой от Макса и ни разу не зависали ESP и не залипали КИТАЙСКИЕ реле, правда нагрузки минимальные ( дежурный LED свет и т.д.). Но каждый решает сам...Alex77 писал(а): если на есп зависнет включенная фаза
Raspberry Pi 3 образ 3.31+GUI ESP12(IoT)кучка+ESP32
-
- Сообщения: 393
- Зарегистрирован: Чт сен 25, 2014 5:37 pm
- Откуда: Екатеринбург
- Благодарил (а): 25 раз
- Поблагодарили: 52 раза
Re: ESP8266
Устройства достаточно надежны... А если залипнет чего тут думать не выключателем жамкать надо а идти "разлеплять"Alex77 писал(а):Да я так и думал, получается если на есп зависнет включенная фаза, то выключить свет не получиться

-
- Сообщения: 215
- Зарегистрирован: Вс мар 05, 2017 2:18 pm
- Благодарил (а): 21 раз
- Поблагодарили: 6 раз
Re: ESP8266
Это на случай когда меня нет дома, а только члены семьи.eygen писал(а):Устройства достаточно надежны... А если залипнет чего тут думать не выключателем жамкать надо а идти "разлеплять"Alex77 писал(а):Да я так и думал, получается если на есп зависнет включенная фаза, то выключить свет не получиться
- shemnik69
- Сообщения: 590
- Зарегистрирован: Пн дек 24, 2012 3:01 pm
- Откуда: Саратов Saratov
- Благодарил (а): 67 раз
- Поблагодарили: 63 раза
Re: ESP8266
Нашел случайно (попал на него через NarodMon) интресный форум. http://u-m.biz/phpBB3/viewforum.php?f=2
Очень много интресных идей реализовано. Именно в использовании ESP 8266
Понравились и сами идеи (например один только "показометр" на основе 4 матриц 8*8 LED чего стоит!!.
Недавно такие матрицы держал в руках ..(65 р шт) теперь знаю что на них можно реализовать)
а то готов модуль а "табло" отстутствует...
Обращет также внимание что очень грамотно выполнены схемы согласования уровней напряжения, защита и пр. короче схемы можно с успехом использовать для проектов с MySensors, а также и других.
Очень много интресных идей реализовано. Именно в использовании ESP 8266
Понравились и сами идеи (например один только "показометр" на основе 4 матриц 8*8 LED чего стоит!!.
Недавно такие матрицы держал в руках ..(65 р шт) теперь знаю что на них можно реализовать)
а то готов модуль а "табло" отстутствует...
Обращет также внимание что очень грамотно выполнены схемы согласования уровней напряжения, защита и пр. короче схемы можно с успехом использовать для проектов с MySensors, а также и других.
- woow
- Сообщения: 821
- Зарегистрирован: Пн июл 04, 2016 8:46 am
- Откуда: Mazeikiai
- Благодарил (а): 125 раз
- Поблагодарили: 46 раз
Re: ESP8266
Тут меня код двухканального диммера по mqtt. Выкладываю весь код может кому будет полезен.Всё с ним в порядке, каждый по отдельности управляется вкл/откл и регулятор больше- меньше, но мне так не нравится, потому что включаю его в месте с блоком питания, то есть после включения выключателя стартует сетап и на короткое время загорается леды и гаснут, и ждут команды.
Я хочу, чтобы при подаче питания программа стартовала уже включенными ледами то-есть состояние pin out была наоборот. Если не сложно дайте наводку, Кажется так просто но вот что-то не получается.
Я хочу, чтобы при подаче питания программа стартовала уже включенными ледами то-есть состояние pin out была наоборот. Если не сложно дайте наводку, Кажется так просто но вот что-то не получается.
СпойлерПоказать
Код: Выделить всё
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#define MQTT_VERSION MQTT_VERSION_3_1_1
// Wifi: SSID and password
const char* WIFI_SSID = "*****************";
const char* WIFI_PASSWORD = "***************";
// MQTT: ID, server IP, port, username and password
const PROGMEM char* MQTT_CLIENT_ID = "LED line";
const PROGMEM char* MQTT_SERVER_IP = "192.168.1.244";
const PROGMEM uint16_t MQTT_SERVER_PORT = 1883;
const PROGMEM char* MQTT_USER = "**********";
const PROGMEM char* MQTT_PASSWORD = "************";
// MQTT: topics
// state
const PROGMEM char* MQTT_LINE_STATE_TOPIC = "LED/line";
const PROGMEM char* MQTT_LINE_COMMAND_TOPIC = "LED/line/switch";
const PROGMEM char* MQTT_LINE2_STATE_TOPIC = "LED/line2";
const PROGMEM char* MQTT_LINE2_COMMAND_TOPIC = "LED/line2/switch";
// brightness
const PROGMEM char* MQTT_LINE_BRIGHTNESS_STATE_TOPIC = "LED/line/brightness";
const PROGMEM char* MQTT_LINE_BRIGHTNESS_COMMAND_TOPIC = "LED/line/brightness/set";
const PROGMEM char* MQTT_LINE2_BRIGHTNESS_STATE_TOPIC = "LED/line2/brightness";
const PROGMEM char* MQTT_LINE2_BRIGHTNESS_COMMAND_TOPIC = "LED/line2/brightness/set";
// payloads by default (on/off)
const PROGMEM char* LINE_ON = "1";
const PROGMEM char* LINE_OFF = "0";
const PROGMEM char* LINE2_ON = "1";
const PROGMEM char* LINE2_OFF = "0";
// variables used to store the state and the brightness of the line
boolean m_line_state = false;
uint8_t m_line_brightness = 255;
boolean m_line2_state = false;
uint8_t m_line2_brightness = 255;
// pin used for the led (PWM)
const PROGMEM uint8_t LINE_PIN = 4;
const PROGMEM uint8_t LINE2_PIN = 14;
// buffer used to send/receive data with MQTT
const uint8_t MSG_BUFFER_SIZE = 20;
char m_msg_buffer[MSG_BUFFER_SIZE];
WiFiClient wifiClient;
PubSubClient client(wifiClient);
// function called to adapt the brightness and the state of the led
void setLineState() {
if (m_line_state){
analogWrite(LINE_PIN, m_line_brightness);
Serial.print("INFO: Brightness: ");
Serial.println(m_line_brightness);
} else {
analogWrite(LINE_PIN, 0);
Serial.println("INFO: Turn line off");
}
}
// function called to publish the state of the led (on/off)
void publishLineState(){
if (m_line_state){
client.publish(MQTT_LINE_STATE_TOPIC, LINE_ON, true);
} else {
client.publish(MQTT_LINE_STATE_TOPIC, LINE_OFF, true);
}
}
// function called to publish the brightness of the led
void publishLineBrightness(){
snprintf(m_msg_buffer, MSG_BUFFER_SIZE, "%d", m_line_brightness);
client.publish(MQTT_LINE_BRIGHTNESS_STATE_TOPIC, m_msg_buffer, true);
}
// function called to adapt the brightness and the state of the led
void setLine2State(){
if (m_line2_state){
analogWrite(LINE2_PIN, m_line2_brightness);
Serial.print("INFO: Brightness: ");
Serial.println(m_line2_brightness);
} else {
analogWrite(LINE2_PIN, 0);
Serial.println("INFO: Turn line2 off");
}
}
// function called to publish the state of the led (on/off)
void publishLine2State(){
if (m_line2_state) {
client.publish(MQTT_LINE2_STATE_TOPIC, LINE2_ON, true);
} else {
client.publish(MQTT_LINE2_STATE_TOPIC, LINE2_OFF, true);
}
}
// function called to publish the brightness of the led
void publishLine2Brightness(){
snprintf(m_msg_buffer, MSG_BUFFER_SIZE, "%d", m_line2_brightness);
client.publish(MQTT_LINE2_BRIGHTNESS_STATE_TOPIC, m_msg_buffer, true);
}
// function called when a MQTT message arrived
void callback(char* p_topic, byte* p_payload, unsigned int p_length){
// concat the payload into a string
String payload;
for (uint8_t i = 0; i < p_length; i++){
payload.concat((char)p_payload[i]);
}
// handle message topic
if (String(MQTT_LINE_COMMAND_TOPIC).equals(p_topic)){
// test if the payload is equal to "ON" or "OFF"
if (payload.equals(String(LINE_ON))){
if (m_line_state != true){
m_line_state = true;
setLineState();
publishLineState();
}
} else if (payload.equals(String(LINE_OFF))){
if (m_line_state != false){
m_line_state = false;
setLineState();
publishLineState();
}
}
} else if (String(MQTT_LINE_BRIGHTNESS_COMMAND_TOPIC).equals(p_topic)){
uint8_t brightness = payload.toInt();
if (brightness < 0 || brightness > 255){
// do nothing...
return;
}else{
m_line_brightness = brightness;
setLineState();
publishLineBrightness();
}
}
if (String(MQTT_LINE2_COMMAND_TOPIC).equals(p_topic)){
// test if the payload is equal to "ON" or "OFF"
if (payload.equals(String(LINE2_ON))){
if (m_line2_state != true){
m_line2_state = true;
setLine2State();
publishLine2State();
}
} else if (payload.equals(String(LINE2_OFF))){
if (m_line2_state != false){
m_line2_state = false;
setLine2State();
publishLine2State();
}
}
} else if (String(MQTT_LINE2_BRIGHTNESS_COMMAND_TOPIC).equals(p_topic)){
uint8_t brightness = payload.toInt();
if (brightness < 0 || brightness > 255)
{
// do nothing...
return;
}else{
m_line2_brightness = brightness;
setLine2State();
publishLine2Brightness();
}
}
}
void reconnect(){
// Loop until we're reconnected
while (!client.connected()){
Serial.print("INFO: Attempting MQTT connection...");
// Attempt to connect
if (client.connect(MQTT_CLIENT_ID, MQTT_USER, MQTT_PASSWORD)){
Serial.println("\nINFO: connected");
// Once connected, publish an announcement...
// publish the initial values
publishLineState();
publishLineBrightness();
publishLine2State();
publishLine2Brightness();
// ... and resubscribe
client.subscribe(MQTT_LINE_COMMAND_TOPIC);
client.subscribe(MQTT_LINE_BRIGHTNESS_COMMAND_TOPIC);
client.subscribe(MQTT_LINE2_COMMAND_TOPIC);
client.subscribe(MQTT_LINE2_BRIGHTNESS_COMMAND_TOPIC);
} else {
Serial.print("ERROR: failed, rc=");
Serial.print(client.state());
Serial.println("DEBUG: try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
}
}
}
void setup(){
// init the serial
Serial.begin(115200);
// init the led
pinMode(LINE_PIN, OUTPUT);
analogWriteRange(255);
setLineState();
pinMode(LINE2_PIN, OUTPUT);
analogWriteRange(255);
setLine2State();
// init the WiFi connection
Serial.println();
Serial.println();
Serial.print("INFO: Connecting to ");
WiFi.mode(WIFI_STA);
Serial.println(WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("INFO: WiFi connected");
Serial.print("INFO: IP address: ");
Serial.println(WiFi.localIP());
// init the MQTT connection
client.setServer(MQTT_SERVER_IP, MQTT_SERVER_PORT);
client.setCallback(callback);
}
void loop(){
if (!client.connected()){
reconnect();
}
client.loop();
}
Raspberry Pi 3B+
-
- Сообщения: 215
- Зарегистрирован: Вс мар 05, 2017 2:18 pm
- Благодарил (а): 21 раз
- Поблагодарили: 6 раз
Re: ESP8266
Добрый ночи, подскажите пожалуйста прошиваю ESP по OTA #include <ArduinoOTA.h> при открытии порта он просит пароль, но не какого пороля я не задавал на порт и не знаю какой пароль платы, кто знает что за пароль он хочет?
- Вложения
-
- Снимок экрана 2017-05-24 в 22.40.53.png (17.61 КБ) 11824 просмотра
-
- Сообщения: 1138
- Зарегистрирован: Вт янв 29, 2013 9:16 am
- Откуда: Белозерск
- Благодарил (а): 16 раз
- Поблагодарили: 402 раза
- Контактная информация:
Re: ESP8266
на сколько я помню arduinoOTA должен задаваться пароль, надо в скетче указывать парольAlex77 писал(а):Добрый ночи, подскажите пожалуйста прошиваю ESP по OTA #include <ArduinoOTA.h> при открытии порта он просит пароль, но не какого пороля я не задавал на порт и не знаю какой пароль платы, кто знает что за пароль он хочет?
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
-
- Сообщения: 215
- Зарегистрирован: Вс мар 05, 2017 2:18 pm
- Благодарил (а): 21 раз
- Поблагодарили: 6 раз
Re: ESP8266
там тока на перепрошивку пароль
ArduinoOTA.setPort(8266);
// Hostname defaults to esp8266-[ChipID]
ArduinoOTA.setHostname("myesp8266");
// No authentication by default
ArduinoOTA.setPassword("123");
ArduinoOTA.setPort(8266);
// Hostname defaults to esp8266-[ChipID]
ArduinoOTA.setHostname("myesp8266");
// No authentication by default
ArduinoOTA.setPassword("123");