
Puntos clave o de qué trata este artículo
Otro artículo sobre ShIoTiny : un controlador visualmente programable basado en el chip ESP8266 . El artículo describe las características de conectar sensores de varios tipos a las entradas binarias del controlador ShIoTiny . Además, hay respuestas a una serie de preguntas populares de los lectores de artículos anteriores de la serie.
Artículos de series anteriores
ShIoTiny: pequeña automatización, Internet de las cosas o "seis meses antes de las vacaciones"
ShIoTiny: nodos, enlaces y eventos o características de programas de dibujo
ShIoTiny: ventilación de habitación húmeda (proyecto de ejemplo)
Sitio del proyecto
Firmware binario, circuitos del controlador y documentación
Introducción o respuestas a preguntas
Todos mis artículos sobre el tema de ShIoTiny , excepto el primero, nacieron de preguntas de lectores que se arriesgaban a probar mi firmware.
El hecho es que para responder en detalle y a todos a la vez, no tengo la oportunidad. Un pasatiempo es un pasatiempo y es raro que alguien le dedique tanto tiempo como el trabajo, las tareas domésticas o los niños. Yo tampoco. Y las preguntas de las cartas se pueden reducir esencialmente a varias. Por lo tanto, es más fácil escribir un artículo que cubra varios temas en detalle que escribir una docena de cartas.
Muchas preguntas se refieren a cómo conectar sensores de varios tipos y cómo trabajar con ellos. Esto no es sorprendente: trabajar con relés de salida es bastante simple. ¡Y lo que simplemente no quieren conectar a las entradas! Hay muchas opciones Este artículo está dedicado a este artículo y probablemente se dedicará a lo siguiente: un tema muy amplio: la conexión de sensores.
Pero, antes de pasar a la biografía del maravilloso mundo de los sensores, me permito usar el centro como un medio para responder las preguntas más populares que se me hacen por carta.
Respuestas a las preguntas más populares de los lectores.
Probablemente la pregunta más popular es " ¿por qué no son compatibles con PWM / DS1821 / RTC ... y así sucesivamente? ". Yo respondo Porque cuando diseñé ShIoTiny, no lo necesitaba. En cuanto a PWM, simplemente no hay ningún lugar para ponerlo en el tablero ShIoTiny . No quedan patas para conectar RTC . Y así sucesivamente. Pero si el proyecto se desarrolla con suficiente éxito, haré otro dispositivo con la misma ideología de programación, pero con un conjunto diferente de periféricos. Por supuesto, admitiré algunos chips adicionales en ShIoTiny, ya que admití, por ejemplo, ayer mismo el sensor de temperatura DS1820 / 22 . Pero no puedes abrazar la inmensidad y empujar lo inédito. La memoria del controlador, como mi tiempo, no es ilimitada.
La siguiente pregunta más popular es: “ ¿Planeas producir en masa ShIoTiny? ". Contestaré en detalle. Por el momento tengo algunas tablas más y si alguien está interesado, escriba, lo enviaré. Si permanecen para entonces, por supuesto. En serie (es decir, 50-100 piezas), de nuevo, en este momento no planeo lanzarlo. Simplemente no existe tal demanda, y decir 50 tablas no es tan fácil para un hobby y me costará mucho. Habrá muchos que quieran obtener una tarifa preparada; la situación puede cambiar. Entonces, si no todo, mucho depende de la opinión y el deseo de la sociedad.
Otra pregunta que se hace con mucha frecuencia: “¿ dónde obtener la fuente? ". Yo respondo En ningún otro lado Por alguna razón, aún no puedo publicarlos y no sé si puedo en el futuro previsible.
Y finalmente, preguntas sobre MQTT y UDP multicast . Espero hacer un artículo separado sobre estos temas, porque hay muchas características. Algo sobre MQTT está en el artículo anterior sobre el sistema de ventilación, pero todo se describe allí en términos generales. Y sin embargo, lea las instrucciones. Hay muchas respuestas, aunque todavía es un borrador.
Esto concluye con preguntas populares y finalmente trata sobre para qué fue escrito este artículo: el asombroso, hermoso, aterrador y misterioso mundo de los sensores.
Sensor: ¿qué es y por qué?
Cualquier inscripción en un idioma desconocido es solo un patrón complejo para alguien que nunca ha visto letras o jeroglíficos. No hay fotos para ciegos. Para sordos, música. ¿Por qué soy yo? Y el hecho de que la información es una visualización condicional de un objeto o fenómeno en algún medio material. La información sin un medio material no existe. Además, la información no existe sin alguien que pueda entenderla.
Por lo tanto, si queremos que nuestro ShIoTiny no sea "ciego", "sordo" y "analfabeto", debemos enseñarle a " percibir " y " comprender " la información sobre el mundo que lo rodea y, sobre esta base, tomar ciertas decisiones para administrar lo que se necesita. nosotros equipos
La información sobre el mundo existe en una amplia variedad de representaciones y en varios soportes de materiales: vibraciones de aire - sonido y flujo de fotones - luz; la concentración de vapor de agua en el aire y la temperatura de la tierra; La presencia o ausencia de masa y su magnitud. Y así sucesivamente. Todo esto puede llevarnos la información necesaria para la toma de decisiones.
Pero nuestro microcontrolador ESP8266 , la base de ShIoTiny , solo comprende dos tipos de información: señales digitales binarias 0V - 3V y señales analógicas en el rango de 0V a 1V .
Por lo tanto, necesitamos " traductores " del lenguaje de un fenómeno físico particular o cantidad física al lenguaje de señales eléctricas que sean comprensibles para el microcontrolador ESP8266 . Tales " traductores " se llaman sensores .
Hablando estrictamente, en nuestro caso, el sensor es una herramienta técnica que convierte la información sobre el mundo circundante en señales eléctricas que son comprensibles para los componentes electrónicos del controlador ShIoTiny .
Los sensores son diferentes. Hay miles y oscuridad. Pero si comienzas a entender, entonces no todo es tan aterrador. En primer lugar , solo nos interesan los sensores que generan una señal eléctrica en la salida. En segundo lugar , nos limitaremos solo a los tipos populares de sensores. Y, en tercer lugar , en la práctica no hay tantos tipos de señales generadas por los sensores.
Desde el "primero" - todo está claro. Es físicamente imposible conectar un sensor directamente a ShIoTiny que proporciona información en forma mecánica, hidráulica o neumática.
Con "en segundo lugar" - todo también está claro. Es poco probable que alguien conecte detectores de partículas rápidos específicos o medidores de pH en un litio radioactivo fundido a ShIoTiny . Bueno, si alguien lo hace, creo que sus calificaciones son mucho más altas que las mías y lo más probable es que no necesite este artículo. Pero la temperatura del agua o el aire, la presión del aire o del agua, la humedad, la luz, el nivel del líquido o el estado de la puerta (abierto-cerrado): todo esto puede medirse muy bien con el controlador ShIoTiny en los sistemas de control domésticos.
Nos ocuparemos del "tercero". ¿Qué señales eléctricas suelen emitir los tipos comunes de sensores? Se pueden distinguir tres tipos principales de señales en las salidas de los sensores:
Señales binarias Es decir, las señales que tienen solo dos niveles: lógico 0 o lógico 1. Los parámetros eléctricos no son importantes, siempre se pueden convertir a los niveles deseados.
Señales analógicas Es decir, corriente o voltaje, que varía según el parámetro medido en un rango de valores dado.
Señales digitales Estos son sensores que se comunican con microcontroladores utilizando un protocolo específico.
Aquí, quizás, están todas las opciones que se pueden conectar a ShIoTiny . Por supuesto, también hay sensores con una salida de frecuencia, una salida de fase y sensores con todo tipo de señales de salida exóticas. Pero como es imposible conectarlos directamente con ShIoTiny, no hablaremos de ellos ahora.
Entradas binarias ShIoTiny
Comencemos con lo más simple: con las entradas binarias ShIoTiny . Están indicados por Input1 , Input2 y Input3 . Como estas entradas son absolutamente idénticas, consideraremos la entrada Input1 . Todo lo que se dice sobre esta entrada es igual de cierto para las otras dos entradas binarias: Entrada2 y Entrada3 .
El circuito de entrada binaria ShIoTiny se muestra en la figura. Inmediatamente haga una reserva, el circuito con una pequeña falla: fue necesario conectar una resistencia de 10K a una resistencia de 1K . Pero esto no afecta el funcionamiento del dispositivo y es maravilloso. Entonces, ¿por qué hay tantos elementos en un circuito de entrada binario? Tal pregunta también me fue hecha. Trataré de responderlo.

La entrada binaria en ShIoTiny funciona en contactos " secos " y " húmedos ". Además, el circuito proporciona protección contra sobretensión (es decir, si, por ejemplo, 5 voltios en lugar de 3 voltios llega a la entrada 1 , por ejemplo).
Protección de entrada binaria
La protección contra sobretensión , que se realiza en todas las entradas binarias de ShIoTiny , por supuesto, no salvará al controlador del agotamiento, si se aplica un voltaje de ~ 220V a su entrada. Pero al llegar a las entradas Input1,2,3 + 5V o incluso + 12V - esta protección ahorra por completo.
Dicha protección funciona de manera muy simple y puede aplicarse no solo con el ESP8266 , sino también con otros microcontroladores.
Considere dos opciones para la protección: cuando aplique voltaje de + 5V y -5V al cable neutro ( tierra ) a la entrada de Entrada1 .
Cuando el voltaje en la entrada Entrada1 es normal, los diodos de protección D1 y D2 están cerrados, ya que se encienden en la dirección opuesta.
Tan pronto como el voltaje en la Entrada 1 excede + 3V (por ejemplo, acortamos la Entrada1 a + 5V ), el diodo D1 se abre y tira de la entrada del controlador GPIO a + 3V , evitando que el voltaje en el GPIO ESP8266 suba por encima de 3V . En realidad, el voltaje será ligeramente superior a 3V (3.2V o 3.3V), pero esto no es importante. La entrada del microcontrolador no se quemará y esto es importante.
Tan pronto como el voltaje en la Entrada1 se vuelve negativo (por ejemplo, acortamos la entrada a -5V ), entonces el diodo D2 se abre y tira de la Entrada1 a tierra 0V , sin dejar que el voltaje en la entrada GPIO ESP8266 caiga por debajo de 0V . En realidad, el voltaje será ligeramente inferior a 0 V (-0,2 V o -0,3 V ), pero esto tampoco es importante. La entrada del microcontrolador no se quemará.
La resistencia 1K es un limitador de corriente para que no haya cortocircuito durante la operación de protección. Las corrientes que lo atraviesan son pequeñas. Por ejemplo, en nuestro ejemplo, si aplicamos Input1 + 5V a la entrada, entonces la corriente a través de la resistencia de 1K será de aproximadamente 2mA . Con un voltaje negativo de -5V en la entrada Entrada1, la corriente a través de la resistencia de 1K será de aproximadamente 5 mA .
Si alguien no entiende por qué los diodos se abren y cierran, entonces recomiendo leer el libro "Electrónica paso a paso" de R. A. Svorenya . En Internet está, por ejemplo, aquí . Aconsejo especialmente a los principiantes: el lenguaje de este libro es simple y hay muchos ejemplos.
Cuales son los contactos
Entonces, con la protección resuelta. Pasemos a otro problema fundamental: conectar la entrada binaria ShIoTiny a los sensores binarios.
Como ya hemos dicho, los sensores binarios son sensores cuya salida tiene dos estados: cero y uno. Pero esto es lógico. Y físicamente puede haber dos opciones para las salidas del sensor binario: " contacto seco " y " contacto húmedo ". Considere qué es y con qué se come.
Un " contacto seco " es un contacto que no tiene su propia fuente de voltaje. Es decir, cualquiera de los dos conductores metálicos que se pueden poner en corto entre sí y abrirlos. Esta definición incluye la masa de los sensores: botones, interruptores, sensores de flotación para nivel de líquido, interruptores de láminas (sensores de campo magnético), etc. En los circuitos eléctricos, los " contactos secos " normalmente abiertos generalmente se indican como se muestra en la figura.

Normalmente abierto: esto significa abierto cuando no hay influencia externa: el botón no está presionado, el interruptor no está encendido, el interruptor de láminas no tiene un imán cerca ...
También hay normalmente " contactos secos " cerrados . En los circuitos eléctricos, generalmente se indican como se muestra en la figura.

A diferencia de los " contactos secos " normalmente abiertos, normalmente cerrados, en ausencia de influencias externas, están cerrados.
Ambos y otros " contactos secos " pueden conectarse de forma segura a las entradas Input1,2,3 controller ShIoTiny . Los sensores con una salida de tipo de contacto seco están conectados a las entradas binarias ShIoTiny como se muestra en la figura.

Si el " contacto seco " de la Entrada 1 está cerrado, entonces el voltaje de aproximadamente cero voltios se aplica a la entrada del controlador (más precisamente, 0.3 Voltios debido a un error en el circuito), ya que el " contacto seco " cierra la entrada del controlador a tierra a través de un divisor formado por resistencias de 1K y 10K . En este caso, el nodo Entrada1 configurará la unidad para la salida.
Por el contrario, si el contacto seco de la Entrada 1 está abierto, se suministran aproximadamente tres voltios a la entrada del controlador, ya que la entrada del controlador se extrae del voltaje de suministro a través de una resistencia de 10K . En este caso, el nodo Entrada1 establecerá cero en su salida.
Toda esta descripción detallada es para curiosos. En la línea inferior, tenemos lo siguiente: si conectamos un sensor con una salida del tipo " contacto seco " a la entrada1 , cuando el contacto esté abierto, la salida del nodo Entrada1 será cero, y cuando el contacto esté cerrado, la salida del mismo nodo será una. Del mismo modo para entradas y nodos Input2 y Input3 .
Pasemos a los contactos húmedos .
Un " contacto húmedo " es un contacto que tiene su propia fuente de voltaje en al menos una de sus posiciones. Por ejemplo, la salida de otro controlador o circuito lógico; bombilla de luz de línea y así sucesivamente. Puede haber muchas opciones aquí. Pero casi todos ellos directamente o con la ayuda de varios detalles permiten hacer coincidir las entradas binarias Input1,2,3 con la salida del dispositivo - " contacto húmedo ".
Comencemos con el más simple: hacer coincidir la entrada Input1 con la salida del sensor o tipo de microcircuito " colector abierto " o " drenaje abierto ".
De hecho, en nuestro caso , este circuito es completamente análogo a conectar un sensor con una salida de contacto seco . Solo el papel del contacto lo realiza el transistor.
El esquema de dicha conexión se muestra en la figura. La esencia del concepto de " colector abierto " o " drenaje abierto " es que el emisor (o fuente ) del transistor de salida está conectado a la " tierra " (a menudo justo dentro del microcircuito), y el colector (o drenaje ) está conectado a la "pata" del microcircuito y más a nada
El funcionamiento de este esquema es comprensible para un novato (¡no un gas imaginario, sino una persona!). Tan pronto como se abre el transistor dentro del microcircuito, cierra la entrada Input1 a tierra y luego todo funciona por analogía con un contacto " seco ".

Desafortunadamente, no todos los microchips y sensores tienen una salida tan maravillosa con un colector abierto o drenaje. Muchos, si no la mayoría de los chips y sensores tienen una salida activa. Esto significa que cuando tenemos una unidad lógica en la salida, la salida se "eleva" al voltaje de suministro, y cuando un cero lógico, la salida se "eleva" al suelo. La salida de dicho chip se muestra en la figura a continuación. Por supuesto, todo está simplificado.

¿Qué debemos hacer si el microcircuito o el sensor que queremos conectar a la Entrada 1 tiene una salida tan activa?
Aquí hay dos opciones y dependen del valor de la tensión de alimentación del microcircuito o sensor de Vcc .
Si el voltaje de suministro del chip o el sensor de Vcc es el mismo que el del ESP8266 (es decir, 3 voltios), simplemente puede conectar esta salida a la entrada Input1 , que en realidad se muestra en la figura anterior.
Pero, ¿qué pasa si la fuente de alimentación del sensor o microcircuito es + 5V o + 12V ? En nuestro caso, puede hacerlo simplemente encendiendo el diodo Schottky, como se muestra en la figura a continuación.

Y un matiz más: todos los circuitos con un contacto " húmedo " nos dan una señal inversa . Es decir, cuando la unidad lógica está en la salida del sensor o microcircuito, el nodo Entrada1 establecerá la salida en cero. Y viceversa. Pero esto se corrige programáticamente: simplemente inserte el nodo inversor en el circuito. Todo esto se muestra en la figura.

De hecho, eso es todo lo básico que necesita saber sobre la conexión de sensores a las entradas binarias Input1,2,3 .
Por supuesto, en teoría puede haber otras opciones, pero mostré las formas más simples y comunes de conectar sensores con salidas de contacto seco y salidas activas de bajo voltaje.
Emoción de contacto
Los contactos tiemblan. No por miedo al creador del dispositivo, sino por el hecho de que son resistentes. Cuando presiona el botón, los contactos pueden abrirse de 5 a 7 veces antes de cerrarse de manera estable. El mismo fenómeno ocurre cuando se sueltan los botones. Y este fenómeno se llama " rebote de contactos ".
El rebote de contacto es la maldición de todos los sensores de contacto mecánicos: interruptores, botones, interruptores de láminas, etc. La charla desagradable es que causa falsos clics o falsas liberaciones de un botón o contacto.
Hay varias formas de lidiar con este fenómeno desagradable. Probablemente la forma más antigua de luchar es el gatillo . Con este método, se utiliza un botón con un contacto de conmutación y un disparador RS normal, que se activan de acuerdo con el esquema, como se muestra en la figura.

Como funciona Muy simple Un disparador tiene dos estados. Mientras el botón está cerrado a la entrada R del disparador, la salida Q del disparador se establece en cero.
Presionamos el botón, hasta que el contacto central del botón tocó el fondo, nada cambia, la salida del gatillo es cero. Tan pronto como el contacto central del botón tocó el contacto inferior del mismo botón y cerró la entrada del gatillo S a tierra, aparece uno en la salida del gatillo. Y esta unidad permanece mientras los contactos "traquetean". De hecho, para volver a poner la salida de disparo en cero, ¡es necesario que la entrada de disparo R esté en cortocircuito a tierra! Este esquema funciona exactamente de la misma manera cuando sueltas el botón.
¿Podemos hacer un circuito así en ShIoTiny ? Si, no hay problema! En la figura, se muestra.

¿Pero gastar dos de sus tres entradas en un sensor? Además, ¡no todos los sensores tienen un contacto de conmutación!
No, iremos hacia otro lado, como legado, a todos los ingeniosos teóricos V.I. Ulyanov!
La segunda forma, y probablemente la más común hoy en día, de lidiar con el rebote de contacto es un filtro de software .
¿Qué hay detrás de estas ingeniosas palabras? Y de nuevo, nada complicado. Imagine que no responderemos a cambios "cortos" en el estado de los contactos. Por ejemplo, si leemos cero desde el botón, entonces, para cortos (digamos, la duración es inferior a 0.3 segundos), estalla unidades nosotros martillaremos deja de reaccionar Y solo cuando tengamos un botón durante 0.3 segundos emitiremos continuamente una unidad, responderemos a esto. Lo mismo al cambiar el estado de un botón de uno a cero.
— , . . RS-!
? ShIoTiny -, .

Delay0/1 , 0.4 .
, . , , .
Conclusión
, — , , .
.
, , , , — : shiotiny@yandex.ru