Estoy planeando leer el formulario de datos de temperatura en mi casa usando varios DS18B20 y enviar todos los datos a una raspberry pi. Ya logré interpretar los datos de un sensor conectado directamente al pi, pero tengo problemas para encontrar una manera de conectar varios de ellos de forma inalámbrica.
He investigado productos como este par rx tx , pero no creo que pueda comunicarse de dos maneras y creo que el DS18B20 necesita enviar y recibir. También miré este transceptor , pero parece que usa muchos más puertos de los que quiero, y no estoy seguro de si puede transmitir la única línea de datos que necesito sin todos los otros cables/puertos. . Básicamente (creo) estoy buscando un transceptor que solo comunique el único cable que necesito sin todos los extras (si es que esto existe o es posible). Siento que me estoy perdiendo algo que es muy obvio, pero parece que no puedo entender qué. Aquí está la hoja de datos DS18B20 si ayuda. Gracias de antemano.
Si bien el protocolo de señalización DS18B20 requiere transmisión para consultarlo, no querrá pasar eso a través de un enlace de radio. En su lugar, tendría una MCU local en el nodo que consulta el sensor y luego transmite el resultado de forma unidireccional.
En este punto, es importante tener en cuenta que ya existen sensores de temperatura inalámbricos producidos. Por ejemplo, ambos dispositivos con su propia pantalla LCD que también transmiten una señal OOK en 433 MHz y sondas exteriores sin pantalla para sistemas de interior/exterior. A menudo, la codificación en el aire no está documentada y es propietaria, pero a menudo es fácil aplicar ingeniería inversa y se han publicado varias bases de código para la decodificación. La mayor preocupación puede ser si los nodos tienen números de serie únicos (probablemente, pero quizás no todos los modelos). Las colisiones no son realmente una preocupación allí, siempre que haya suficientes paquetes sin interferencias para obtener una tasa de actualización razonable. Finalmente, al igual que con los proyectos personalizados, la utilización de la vida útil de la batería es algo que puede variar, dependiendo de cuánto esfuerzo se haya puesto en ello.
Si decide hacer algo personalizado, estaría buscando una solución de bajo costo para MCU y transmisor de radio. Los transmisores de 300-433 MHz basados en resonador SAW que vinculaste son una opción, y con un pin para el sensor y otro para la radio, puedes usar algunos de los MCU más pequeños de 6 u 8 pines. Sin embargo, si sigue esta ruta, considere usar un receptor más sofisticado en el pi: TI y SiLabs tienen ofertas que son radios de datos superheterodinos sintonizables "reales" muy superiores a los receptores regenerativos baratos.
Las radios de datos de 2,4 GHz mucho más sofisticadas también pueden ser económicas, pero generalmente requieren un bus SPI completo para controlar, lo que significa más pines MCU. Algunas de las combinaciones BTLE MCU/radio también pueden funcionar en modos patentados más simples, a veces compatibles con los protocolos aéreos heredados como el de nRF24, pero tienden a costar más que una radio y una MCU baratas. En el lado positivo, puede unirlos ya en un submódulo. También hay algunas combinaciones de MCU + radio de gama muy baja fuera de China que se encuentran en cosas como drones de juguete que podrían ser aplicables, si puede obtener la documentación necesaria para trabajar con ellos.
El ESP8266 y el ESP32 generalmente se consideran dispositivos WiFi, pero ofrecen algunos modos apropiados que usan solo la señalización de aire de nivel inferior sin las capas de protocolo más altas, lo que evita el costo de tiempo/energía de asociarse con una red solo para informar una lectura y comenzar de inmediato. de vuelta a dormir.
Finalmente, si bien el esquema de modulación LoRa patentado ahora está recibiendo mucha atención para los informes de sensores de mayor alcance, vale la pena señalar que, a medida que aumenta la popularidad, aumenta la disponibilidad de kits de hardware programables de bajo costo, las radios Semtech pueden operarse hasta cierto punto en OOK o OOK más simples. Modos FSK y hable con otros dispositivos que los implementen. Sin embargo, estos todavía están en la clase de más de $ 20 por nodo, y parece que al menos en el rol de recepción puede que no sea posible activar un silenciador RSSI simple solo, sino que se requiere para satisfacer el detector de preámbulo del paquete o falsificarlo por establecer una longitud mínima y una tolerancia de error máxima.
Tiene razón, su termómetro IC "habla" el bus bidireccional de un solo cable, y eso no es nada que pueda simplemente alimentar a estos transmisores ultrasimplistas (y cuestionablemente legales). Necesitan que se les "pidan" datos, y usted no está haciendo eso de ninguna manera.
Además, estos transmisores simplemente modifican la modulación por desplazamiento de amplitud (ASK) de un oscilador de frecuencia fija en funcionamiento continuo. Eso significa que no puede tener dos de estos transmitiendo al mismo tiempo, porque no hay forma de diferenciar las dos señales.
Además, todos sus sensores son idénticos, por lo que incluso si hizo que funcionara mágicamente y evitara tales colisiones por pura suerte, entonces aún no podría decir cuál de sus sensores estaba informando.
Entonces, no importa lo que haga, necesitará un microcontrolador para comunicarse con su sensor por un lado y comunicarse con algún tipo de hardware de RF por el otro. Idealmente, ese hardware de RF debería ser mucho mejor que estas abominaciones de 433 MHz.
Estos transceptores basados en nRF24L01 que publicaste son mucho mejores, aunque se basan en un chip que el fabricante de circuitos integrados ya marcó como "no recomendado para nuevos sistemas", en realidad pueden hacer mucho más.
Puede obtener un microcontrolador económico (por ejemplo, un arduino o un clon) que se comunique con 1 cable a su sensor y SPI a la placa de RF. Luego, los distribuyes alrededor. Luego, su nodo Arduino central solicita periódicamente datos a cada uno de sus nodos sensores, y luego responde su microcontrolador en el sitio del sensor.
El bus de 1 cable necesita una MCU para comunicarse con los dispositivos conectados: -
Tengo problemas para encontrar una manera de conectar de forma inalámbrica varios de ellos
Cada sensor de 1 cable necesita una MCU y, si desea conectar varios sensores de forma inalámbrica, cada MCU también se puede usar para controlar (digamos) un transmisor local de 433 MHz que puede recibir un solo receptor de radio. Ese único receptor es común a todos los transmisores.
He investigado productos como este par rx tx, pero no creo que pueda comunicarse de dos maneras y creo que el DS18B20 necesita enviar y recibir.
La MCU local puede comunicarse con el DS18B20 y esa MCU local puede controlar un transmisor de radio local. En otras palabras, no intente hacer un transmisor de radio de 1 cable: mantenga el sistema de 1 cable local para cada MCU y use la energía adicional de la MCU para controlar el transmisor de la forma en que debe controlarse. No intente mezclar estos protocolos o se buscará problemas y probablemente nunca lo haga funcionar.
Yo lo veo así; tiene varios sensores de temperatura en su casa y cada diez minutos cada uno transmite un valor de temperatura a un receptor común. Ese receptor común habla con su RaPi.
Ocurrirán colisiones, pero dado que una sola transmisión puede realizarse en 100 ms, la ocupación del canal común será de 1 segundo en diez minutos para diez sensores. Puede agregar un poco de aleatoriedad al momento de la transmisión para que, si los datos chocan debido a la transmisión simultánea, haya pocas probabilidades de que vuelva a ocurrir.
Diseñé un sistema como este que monitoreaba alrededor de cien gabinetes congeladores en un almacén. Cada transmisor transmitía a ciegas con un poco de aleatoriedad en el tiempo. Entre transmisiones, la MCU y el transmisor se pusieron en reposo y se podía obtener aproximadamente 1 año de duración de la batería con una batería pequeña de 9 voltios. El sistema buscaba la detección temprana de un gabinete congelador defectuoso. Utilicé productos de RF de esta empresa porque tienen buena reputación.
Su sensor DS18B20 requiere una MCU local para enviar/recibir valores de temperatura a través del protocolo de 1 cable.
En lugar de complicar el sistema mediante el uso de transceptores de radio raros y muy caros, debe considerar el uso de algo como un ESP8266 que se conecta directamente a un WiFi local, que también es fácil de manejar con la Raspberry Pi. Probablemente ya tenga Wi-Fi (compatible con 2,4 GHz) en su casa, por lo que es sencillo conectarle la Raspberry Pi y sus sensores remotos.
Siga un proyecto de pelota que rebota como este que apunta a la mayoría del código requerido y se implementa fácilmente en el entorno de desarrollo de Arduino. Hay muchos proyectos de GitHub que también puede buscar.
Si no le gusta diseñar sus propios PCB, puede obtener placas compatibles con Arduino como esta, que cuestan solo unos pocos dólares.
Encontrará múltiples variantes, algunas marcadas como Wemos-D1 y otras sin ninguna marca.
La potencia requerida es bastante manejable:
Puede encender, asociar, iniciar sesión, enviar datos y apagar en aproximadamente un segundo sin ningún problema.
Puede obtener casos de proyecto que se adapten al factor de forma Arduino para la red eléctrica (fuente de alimentación USB en su mayoría o opciones alimentadas por batería.
Ciertamente no vale la pena hacerlo de ninguna manera que no pueda usar las bibliotecas existentes para impulsar el proyecto ... su desarrollo lo hará ser simplemente una pesadilla.
Los módulos NRF24L01+ son fáciles de usar y económicos, pero aún necesita una MCU local para controlarlos. Terminará gastando más dinero y tiempo usándolos (y he usado muchos) que usando una solución ESP8266. Nada es más simple.
Esto hace que su proyecto sea un servicio web simple en Raspberry Pi y sus sensores remotos se encienden, conectan y depositan valores de tiempo/temperatura. Qué podría ser más simple.
Nota Si está inclinado a comprar soluciones esencialmente listas para usar, podría considerar usar los sensores TI Simplelink (basados en ARM). Estos tienen un costo bastante razonable en varias variantes ($ 30-40) que se conectan a redes como BLE a través de WiFi. La versión WiFi reclama 3 meses con 2 pilas AAA a una velocidad de actualización de 1 minuto, por lo que debería ser un año más o menos con actualizaciones de 5 minutos. No los he probado, pero parece que no hay motivo para sospechar que no serán fiables.
Si no quiere hacer todo desde cero, puede usar los nodos z-wave de Fibaro. Uso un par de DS18B20 junto con una Raspberry en mi red domótica.
Que necesitas:
Sensor Fibaro Universal (está hecho para interactuar con el DS18B20)
Y un suministro de 5 V a cada nodo. Luego puede descargar Domoticz o una aplicación de automatización del hogar Z-wave similar para Raspberry.
Al final, obtendrá una buena interfaz amigable con el navegador para ver los sensores:
No tengo sensor de humedad, por lo que la línea verde en el gráfico está un poco defectuosa.
tomnexus
Tony Estuardo EE75