Hola queridos lectores! Otra historia sobre c贸mo el gerente del enlace medio, quitando el polvo de las gl谩ndulas rancias en el estante, hace esto, lo que hace que los profesionales de todas las rayas tengan dolor en los ojos. 隆Pero funciona, amigo!

Lo admito, esta vez quer铆a hacer todo bien. Tom贸 el Raspbery Pi del estante. El pastel es el mismo que ya us茅 en mi cortac茅sped rob贸tico: un
enlace a una publicaci贸n y un
enlace a otra publicaci贸n . Tom贸 mosquitto, todo deber铆a haber funcionado en mqtt, pero no huir谩s de ti mismo. Debajo del corte, un mar de rastrillos, bicicletas, poca soldadura, un verdadero infierno para un perfeccionista.

Todo comenz贸 con el deseo de complementar mi proyecto
Noorik , que puse en mi puerta. En resumen, esta es una soluci贸n de bricolaje para el bloque GSM que abre la puerta.
Para abrir la puerta, es suficiente cerrar ciertos contactos en el tablero.

Reemplaz贸 arduino con esp8266 e hizo una interfaz web con un bot贸n abierto. Result贸 ser interesante, pero quer铆a una sola interfaz para abrir puertas correderas, puertas de garaje seccionales y puertas.
Cuando comenc茅 a pintar toda mi lista de deseos, result贸 que necesitaba lo mismo:
- sistema de control de caldera
- sistema de seguridad
- interfaz m贸vil para c谩maras de vigilancia
- datos de temperatura en la casa y en la calle
Backend
Malinka funcion贸 bien, pero la pr贸xima vez que se encendi贸, simplemente dej贸 de encenderse. El LED de alimentaci贸n se ilumina primero, luego se apaga suavemente en 3-5 segundos, el elemento (polyfuse T075) cerca de la toma de corriente est谩 muy caliente. Y aqu铆 ya tenemos ganas de aplicar mqtt, blackger, para invitar a cortesanas y otras delicias.

No importa, el beneficio de su destino estaba esperando a otro paciente. Naranja pi cero al estudio. Cu谩nto sufr铆 con este milagro del pensamiento chino: dar vida a un pastel tan peque帽o result贸 ser un asunto que estaba m谩s all谩 de mis fuerzas. Descargu茅 firmware en los sitios oficiales y los dej茅, compr茅 firmware de mis manos e intercambi茅 por criptomonedas. Creo que acabo de encontrar una muestra defectuosa.

Me di cuenta de que el destino mismo me estaba empujando a los brazos de la construcci贸n de bicicletas, y para ocultar mi alegr铆a, me sumerg铆 en esta actividad con la cabeza.

En primer lugar, decid铆 usar un tel茅fono inteligente como unidad principal (agente, servidor). Sabes que estas cosas viejas simplemente no desaparecen. Lo us茅, mi esposa, hija, luego control茅
mi robot con un quitanieves desde este tel茅fono inteligente, trat茅 de
ahogarlo en el r铆o (nunca llegu茅 al r铆o Mosc煤, pero este tubo hizo un ruido en mi Pakhra natal). Y aqu铆 est谩, una nueva vida para el Samsung Galaxy S3.
Instalado Palapa Web Server y el servidor FTP en el tel茅fono inteligente. La idea es simple en una base de datos MySQL con solo tres tablas: valores, registros, reglas.
- En la tabla de valores, pares clave / valor.
- La tabla de registros muestra el historial de cambios en los valores.
- En la tabla de reglas, las reglas para cambiar algunas celdas dependiendo del valor en otras.
Toda esta granja sirve un script php, que escribe o genera datos de la base de datos mediante una solicitud http, y tambi茅n sirve reglas programadas.
Ni siquiera entiendo cu谩l deber铆a ser el nivel de programaci贸n para que una persona quiera verlo, pero estoy listo para mostrarle el c贸digo: escriba a la LAN.
Frontend

No me arrojes piedras, me confieso. Us茅 Bootstrap. Si, pecaminoso.
El pensamiento inicial fue concluir todo a trav茅s de Phonegap y obtener una aplicaci贸n completa. Dir茅 m谩s, hice exactamente eso, pero al final la versi贸n en l铆nea result贸 ser m谩s eficiente. Yo y mi esposa en el tel茅fono acabamos de hacer un acceso directo en el escritorio para abrir la p谩gina deseada en la IP interna.
Cada elemento responde a un evento de clic + el estado de ajax se verifica mediante solicitudes al servidor y se cambia si es necesario. Es muy conveniente, porque ve todos los cambios que han entrado en vigencia por la regla o realizados por otro usuario.
En realidad, el c贸digo bajo demanda sin problemas.
ESP-8266

Prob茅 diferentes m贸dulos y ESP-8266 puro. Como resultado, el m贸dulo LOLIN V3 result贸 ser la opci贸n m谩s conveniente.

Fuente de alimentaci贸n mediante fuentes de alimentaci贸n conmutadas.

Los m贸dulos de compuerta requer铆an un rel茅 y me preocupaba que los rel茅s de contacto se activaran. Como resultado, funcionan tanto los de estado s贸lido como los de contacto. El problema es que una gran cantidad de m贸dulos, incluso sin etiquetar al respecto, son de baja activaci贸n.

Cuando se enciende el m贸dulo, se produce una apertura a corto plazo, lo que conduce a una apertura involuntaria cuando se enciende la alimentaci贸n. Se resuelve tirando a cero y declarando el estado antes de declarar el tipo de salida.
digitalWrite(rele, 1)
Como resultado, el m贸dulo para el ensamblaje del garaje se ve as铆. El sensor PIR para detectar movimiento se mordisquea suavemente en la piel nativa.

En la sala de calderas, mi caldera es muy simple y no se trata de una automatizaci贸n compleja.

Adem谩s, cada circuito sirve una bomba separada.

En serie con las m谩quinas, se encendieron los rel茅s para controlar las bombas y la caldera.

Empuja suavemente toda la econom铆a hacia el escudo.

Firmware
Decid铆 usar Arduino IDE para firmware para no meterme con nodemcu y lua. En Internet y en GT en particular, una gran cantidad de informaci贸n para principiantes.
De lo interesante, me parece, la funci贸n de conectarse a wifi. El hecho es que en mi casa hay 4 redes wifi y se pueden agregar. Para no establecer r铆gidamente el nombre de la red, primero escaneamos las redes disponibles.
C贸digo de configuraci贸n de WiFi () void setupWiFi() { WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); while(WiFi.status() != WL_CONNECTED) { int n = WiFi.scanNetworks(); Serial.println("scan done"); if (n == 0) Serial.println("no networks found"); else { Serial.print(n); Serial.println(" networks found"); for (int i = 0; i < n; ++i) { Serial.println(""); Serial.print(i + 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" ("); Serial.print(WiFi.RSSI(i)); Serial.print(")"); Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*"); j=0; ssid=WiFi.SSID(i); Serial.print("Connecting"); ssid.toCharArray(charBuf, 50); WiFi.begin(charBuf,WIFI_PASS); while(WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); j++; if(j>20){ break; } } if((WiFi.status() == WL_CONNECTED)){ break; } } } } Serial.println("Connected"); Serial.println(WiFi.localIP()); }
Cuando el modo autom谩tico de la sala de calderas est谩 activado, la temperatura exterior y la temperatura del refrigerante se verifican de acuerdo con el programa.
- A temperaturas inferiores a 14 * C, se enciende el piso c谩lido del primer piso.
- A temperaturas inferiores a 4 * C, todos los circuitos est谩n encendidos.
La temperatura del refrigerante se selecciona de acuerdo con la tabla dependiendo de la secci贸n transversal de las tuber铆as y la temperatura exterior. Cuando se alcanza la temperatura ambiente requerida, la caldera se apaga. Todos aplicaron una cierta hist茅resis para suavizar los valores de transici贸n.
El sistema de seguridad funciona a煤n m谩s f谩cil. Hay una regla en la tabla que dice que cuando el sistema de seguridad est谩 activado, si se detecta movimiento en uno de los sensores PIR, se env铆a un SMS a trav茅s de la API de uno de los servicios.
Planes
- Creaci贸n de una versi贸n en l铆nea en un servidor remoto y sincronizaci贸n de cambios para la posibilidad de control remoto.
- Mostrar datos de balizas GSM / GPS en el autom贸vil;
- Abrir las puertas cuando nuestros autos aparecen en cierta 谩rea;
- Conexi贸n al sistema de control remoto;
Votaci贸n por foto. 驴Qu茅 proyecto hacer a continuaci贸n?Termine la impresora Delta 3D en los pernos de construcci贸n Estabilizador para c谩mara SLR Gracias por su atencion Contigo estaba SlavaGik.
