Ви не увійшли.
сходу разделил бы на уровни:
1й мощные реле после/до вводных автоматов (как правильно?), чтобы вырубать нагрузку сразу по зонам, туда в щиток 1 девайс с нужным количеством пинов, которые зависят от кол-ва автоматов.
2й уровень розетки и удлиннители, если нужно их вырубать по каким-то причинам. Например, если там неуправляемые приборы, которые постоянно включены (светильники, вытяжки хз что еще). 1шт реле и что-то совсем маленькое с одним пином
3й уровень приборы и датчики (температура, дым и т.д.), управление умными приборами (ик, bt и проч сигналы), в зависимости от места расположения группируем на минимальное количество девайсов.
ставим сервер, настраиваем веб-сокеты, пишем к серверу апи для подключения мобильного приложения и управления через web. Пилим до бесконечности свистоперделки и радуемся.
поменяю на 12e или подарю, но с вас тогда детальній пример с реализацией какого-нибудь тригера с wifi.
Моя задача сейчас это девайс , который отслеживает открытие ворот больше заданного времени и включает ревун + отправляет запрос на http с параметрами. Если что-то такое на esp-14 можно реализовать, то я потом еще куплю. Там, я так понял, основная радость в том, что конструкция может потреблять чертовски мало электричества, если wifi отправить в сон и не будить без надобности. Я в Днепре
это как первый опыт. Для себя, так сказать. Есть заказ на промышленный образец подобной конструкции, но другого типа
почти угадали ) про сборку проекта помню статью на хабре, где чудак купил списанный светофор в беларуси )))
нравятся мне светофоры. Этот дублирует ошибки мониторинга в корпоративной среде. Мониторинг сам по себе присылает смс, а потом еще через несколько минут техподдержка звонит с алярмом, но ноччу можно прослушать и то и другое, а бывает смс прочитал ночью и уснул, потом просыпаешь и не помнишь было это на самом деле или приснилось, нужно идти комп включать, подключаться впн-ом, смотреть в монитор все ли там ок. Или просто на светоофр глянуть и если зеленая дрыхнуть дальше.
ого, ну, 110 это только в китае. Думаю еще одну взять. Как выпаять esp чтоб не похерить весь модуль?
я забил напрочь на esp-14 , не думаю, что у меня вообще теперь желание с ним разбираться появится в ближайшее время.
Меньше чем за сутки, впервые имея дело с микрюками, написал что хотел на nodemcu v3, купленном в этом самом магазине. И JSON, парсит и лампочками моргает и в пьезу пищит. Одна радость в отличии от...
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#include <ArduinoJson.h>
#define USE_SERIAL Serial
#define RED_LED_PIN 14
#define YELLOW_LED_PIN 12
#define GREEN_LED_PIN 13
#define PIEZO 15
#define STATE_ERROR RED_LED_PIN
#define STATE_WARNING YELLOW_LED_PIN
#define STATE_OK GREEN_LED_PIN
#define CHECK_INTERVAL 30000
#define STA_SSID "bear_n_fox"
#define STA_PASS ""
ESP8266WiFiMulti WiFiMulti;
int lastState = 0;
void setup() {
USE_SERIAL.begin(115200);
//USE_SERIAL.setDebugOutput(true);
USE_SERIAL.println();
USE_SERIAL.println();
USE_SERIAL.println();
for(uint8_t t = 4; t > 0; t--) {
USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
USE_SERIAL.flush();
delay(1000);
}
pinMode(RED_LED_PIN, OUTPUT);
pinMode(YELLOW_LED_PIN, OUTPUT);
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(PIEZO, OUTPUT);
ledReset(NULL);
WiFiMulti.addAP(STA_SSID, STA_PASS);
}
void loop() {
USE_SERIAL.print("\n[loop] new loop starts at: ");
USE_SERIAL.println(millis());
USE_SERIAL.print("[loop] WiFiMulti status: ");
USE_SERIAL.println(WiFiMulti.run());
// wait for WiFi connection
if((WiFiMulti.run() == WL_CONNECTED)) {
USE_SERIAL.print("[loop] WL_CONNECTED is true at: ");
USE_SERIAL.println(millis());
HTTPClient http;
USE_SERIAL.print("[HTTP] begin...\n");
//http.begin("https://192.168.1.12/test.html", "7a 9c f4 db 40 d3 62 5a 6e 21 bc 5c cc 66 c8 3e a1 45 59 38"); //HTTPS
http.begin("http://lib.lomokid.com/errors.json"); //HTTP configure traged server and url
USE_SERIAL.print("[HTTP] GET...\n");
int httpCode = http.GET(); // start connection and send HTTP header
if(httpCode > 0) { // httpCode will be negative on error
USE_SERIAL.printf("[HTTP] GET response code: %d\n", httpCode); // HTTP header has been send and Server response header has been handled
if(httpCode < 400) { // file found at server
String payload = http.getString();
char json[199] = {' '};
strcpy (json, payload.c_str());
//USE_SERIAL.println(payload);
StaticJsonBuffer<200> jsonBuffer;
JsonArray& root = jsonBuffer.parseArray(json);
if (!root.success())
{
USE_SERIAL.println("[JSON] parseObject() failed");
ledReset(NULL);
ledFade(YELLOW_LED_PIN, CHECK_INTERVAL);
return;
}
int error = {root[0]["error"]};
USE_SERIAL.print("[JSON] error: ");
USE_SERIAL.printf(root[0]["error"]);
USE_SERIAL.printf("\n");
if(error == 1){
ledReset(NULL);
ledFade(RED_LED_PIN, CHECK_INTERVAL);
return;
}
else{
ledReset(NULL);
ledShine(GREEN_LED_PIN, CHECK_INTERVAL);
return;
}
delay(CHECK_INTERVAL);
}
else {/*what if file was not found*/
USE_SERIAL.println("[HTTP] http status NOT OK");
ledReset(NULL);
ledFade(YELLOW_LED_PIN,CHECK_INTERVAL);
return;
}
} else {
USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
ledReset(NULL);
ledFade(YELLOW_LED_PIN,CHECK_INTERVAL);
return;
}
http.end();
}
}
void ledReset(int led){
if(led == NULL){
USE_SERIAL.println("[ledReset] flushing leds");
analogWrite(RED_LED_PIN, 0);
analogWrite(YELLOW_LED_PIN, 0);
analogWrite(GREEN_LED_PIN, 0);
}
else{
USE_SERIAL.print("[ledReset] flushing led: ");
USE_SERIAL.println(led);
analogWrite(led, 0);
}
}
void ledFade(int led, int nextCheckDelay) {
USE_SERIAL.print("[ledFade] start at: ");
USE_SERIAL.println(millis());
beepOnStateChange(led);
long unsigned int start = millis();
while(millis() < start + nextCheckDelay)
{
for(int i=0;i<PWMRANGE ;i++){
analogWrite(led, i);
delay(1);
}
for(int i=PWMRANGE ;i>-1;i--){
analogWrite(led, i);
delay(1);
}
delay(0);
}
USE_SERIAL.print("[ledFade] end at: ");
USE_SERIAL.println(millis());
}
void ledShine(int led, int nextCheckDelay) {
USE_SERIAL.print("[ledShine] start at: ");
USE_SERIAL.println(millis());
beepOnStateChange(led);
analogWrite(led, PWMRANGE);
delay(CHECK_INTERVAL);
USE_SERIAL.print("[ledShine] end at: ");
USE_SERIAL.println(millis());
}
void beepOnStateChange(int state) {
USE_SERIAL.print("[beepOnStateChange] start at: ");
USE_SERIAL.println(millis());
USE_SERIAL.printf("[beepOnStateChange] lastState : %d\n", lastState);
USE_SERIAL.printf("[beepOnStateChange] current state : %d\n", state);
if (lastState != state){
switch(state){
case STATE_ERROR:
for(int i=0;i<3;i++) {
analogWrite(PIEZO, 500);
delay(500);
analogWrite(PIEZO, 0);
delay(100);
}
break;
case STATE_WARNING:
for(int i=0;i<2;i++) {
analogWrite(PIEZO, 500);
delay(50);
analogWrite(PIEZO, 0);
delay(50);
}
break;
case STATE_OK:
analogWrite(PIEZO, 500);
delay(20);
analogWrite(PIEZO, 0);
break;
}
}
lastState = state;
USE_SERIAL.print("[beepOnStateChange] end at: ");
USE_SERIAL.println(millis());
}
я предположил, что он там должен быть. Зачем иначе вешать на железку dhcp сервер?
Можно было бы и повесить свитчеры хотя бы, чтобы можно было, не устанавливая ide, подключить лампочку и пощелкать мышкой. Но нету там ничего
поскольку я нуб и к тому же еще и слоупок, то только сейчас понял почему ничего не работает. Мой ttl to usb работает только на 5v. Нужен другой модем или доработка для этого
а я то думаю как так получается, что у меня после стабилизатора на 3,3 на esp-шку 4 вольта заходит
по этой самой картинке и собрал - в консоли тишина. Заказал st-link, хотя это не входило в планы, если не пойдет у меня с ним дальнейшая дружба с удовольствием продам.
На всякий случай заказал девборд с 12e, надеюсь, что там приятнее. А что за история с глючным шим от esp8266?
Сплошная попаболь с модулем. Очень мало документации. Веб интерфейс на стандартном 192.168.4.1 отсутствует. Достучаться через UART к esp не получается. По взаимодействию с stm ничего не нашел. Есть у кого-нибудь опыт успешного использования? Поделитесь хоть чем-то, пожалуйста.