Tabla de contenido:

Tweet-A-Temp: 8 pasos
Tweet-A-Temp: 8 pasos

Video: Tweet-A-Temp: 8 pasos

Video: Tweet-A-Temp: 8 pasos
Video: skibidi toilet multiverse 023 bloopers 2024, Mes de julio
Anonim

Por los experimentos caseros de Z0tZot Siga más por el autor:

Matriz Magic 8 Beer de 8 caras
Matriz Magic 8 Beer de 8 caras
Troquel Magic 8 Beer de 8 caras
Troquel Magic 8 Beer de 8 caras

Mi hijo mayor (Minion # 1) y yo comenzamos a construir un Tweet-A-Watt y no seguimos las instrucciones correctamente, es decir, hicimos ambos receptores como receptores estándar en lugar de solo uno y luego llenamos la mitad del segundo receptor XBee. teníamos dos opciones, cortar las partes sobrantes o algo más. Dado que todavía tengo que encontrar un Kill-A-Watt localmente, y tenía este termómetro externo / interno que había querido computarizar durante 10 años, sabía lo que tenía que hacer: tenía que usar el termómetro para medir la temperatura de mi jacuzzi, y luego twittearlo! Recientemente le había dado a Minion # 1 una tarea para describir un controlador de jacuzzi sin límites. Él mencionó, bueno, podríamos hacerlo inalámbrico, pero no, eso es una tontería … Me encanta cuando un plan de 10 años se hace realidad. Véalo en Twitter

Paso 1: Construye los Xbee Recievers

Construye los Xbee Recievers
Construye los Xbee Recievers

Construye dos receptores XBEE. Usé los receptores de Lady Ada, cualquier receptor servirá. Necesitará acceso al pin VREF y AD0 de XBee. El truco del Tweet-A-Watt es la configuración. En efecto, configura uno de los dispositivos para que repita los valores del Kill-A-Watt con: ATMY = 1, SM = 4, ST = 3, SP = C8, D4 = 2, D0 = 2, IT = 13, IR = 1 Esto establece la dirección (1), establece el modo de suspensión, el temporizador y el período, y luego establece los pines 4 y 2 en el modo de entrada analógica (2), que enviará paquetes 0x13 (19 decimales), 1 ms entre muestras El truco aquí es la entrada analógica. Puede leer pequeños voltajes (0-5 V) directamente por el XBee. En el Tweet-A-Watt, establecería los pines 4 y 0 para enviar los amperios y voltios medidos por el Kill-A-Watt. En realidad, no envía eso, envía el pequeño voltaje medido por los chips en el Kill-A-Watt al receptor XBee que está conectado a una computadora. El software de la computadora lee constantemente los paquetes recibidos y vuelve a calcular el voltaje y el amperaje reales, y luego calcula la potencia.

Paso 2: el termómetro

El termómetro
El termómetro
El termómetro
El termómetro
El termómetro
El termómetro

Compré dos de estos termómetros para interiores / exteriores hace unos 10 años en Home Depot. Siempre me fascinó que el "termómetro" exterior se conectara a la unidad base con lo que parecía un conector de audio estándar. Siempre me pregunté si podría medir la temperatura enchufando esto a un conector de micrófono en una computadora.

Resulta que probablemente podría hacerlo funcionar, pero sería complicado. El enchufe es en realidad un conector de 3/32 , en lugar de un conector de audio de 1/8. Este es el conector estándar para teléfonos celulares para micrófonos externos. Esto presentó un problema, ya que no pude encontrar ningún conector de micrófono en mis montones de basura que no eran de montaje en superficie. Tuve que comprar un conjunto de Radio Shack ($ 2), lo que agregó un retraso importante al proyecto (llegar a una choza no fue fácil). Desmonté una unidad antes de darme cuenta de cómo funcionaba la cosa de quién ¡Era un divisor de voltaje! Fue obvio una vez que lo pensé, me hizo la vida muy fácil.

Paso 3: ¿Qué es un divisor de voltaje?

¿Qué es un divisor de voltaje?
¿Qué es un divisor de voltaje?

Uno de los mejores lugares para aprender sobre electrónica es Wisconsin. Los divisores en línea se explican en esa página (abajo a la derecha), o puede visitar la página de Wikipedia de voltaje En resumen, si tiene dos resistencias en serie, la caída de voltaje en cada resistor es en proporción al tamaño de la resistencia. Si tiene voltaje V en un circuito de R (1) + R (2), entonces V = V (1) + V (2). Entonces, si V = 3V y V (2) = 2V, usted sabe que V (1) = 1V. Ahora, la base de la Ley de Ohm es que la corriente (I) es V / R. En un circuito en serie, la corriente es la misma en todas partes, por lo que la corriente a través de A y B es la misma para todo el circuito. Por lo tanto, I = V1 / R1 = V2 / R2. Sabemos que V2 = V - V1, conectando, vemos V1 / R1 = (V-V1) / R2. Resolviendo obtenemos R2 = R1 * (V-V1) / V1 Entonces, si sabemos si conocemos V (1), V y R (2), podemos resolver para R2. Si tenemos R2, sabemos el valor de la ¡Termistor!

Paso 4: ¿Qué es un termistor?

¿Qué es un termistor?
¿Qué es un termistor?

Un termistor es una resistencia que cambia la resistencia con la temperatura. Usando las técnicas del divisor de voltaje para determinar la resistencia, podemos decir qué temperatura es. El problema es que tengo un termistor barato en una carcasa de un producto de 10 años. ¿Cómo se suponía que iba a crear una función para pasar de una resistencia a una temperatura? Bueno, tengo un termómetro al que se conecta, así que medí mucho. Copié la temperatura y luego medí la resistencia del termistor. Lo puse en el refrigerador, luego lo coloco en agua tibia. Más tarde, tomaría la temperatura ambiente desde que tenía tiempo. Supuse que podría haber leído la página de Wikipedia. Intenté adivinar los factores ayb, pero asumí que estaba usando un componente no lineal que posiblemente fallaba y que ya no coincidía con el de fabricación. especificaciones. Ah, y soy vago. Así que volqué todos los valores en Excel y luego lo graficé. Al principio me preocupaba tener que recordar las matemáticas oscuras y profundas de algo como "ajuste por mínimos cuadrados" cuando descubrí que Excell hará esto por Claramente me faltan espacios en el gráfico, pero obtuve muchos datos buenos sobre las temperaturas de la bañera de hidromasaje (100-105F). Mientras revisaba los rangos de temperatura de la habitación, noté algo que casi hace que mi trabajo sea inútil. El termómetro de "temperatura precisa" informó un error de 3-7 grados entre "interior" y "exterior" cuando el termistor estaba a pulgadas de distancia. Ahora, esto podría deberse a que mezclé y emparejé el termistor entre las unidades, pero apuesto a que tiene más que ver con la calidad de un artículo de 10 años y $ 10. Independientemente de la "precisión" de la temperatura, necesitaba precisión y múltiples pruebas de la misma. rango mostró resultados muy cercanos durante días. A largo plazo, es probable que conecte el termistor a una tubería que conduzca a la bañera de hidromasaje, por lo que necesitaré una compensación de todos modos. Entonces, al hacer que Excel muestre la ecuación, la puse en el código, y hasta ahora es " cerrar."

Paso 5: circuito del transmisor

Circuito transmisor
Circuito transmisor

El circuito del transmisor es simple. Elegí una resistencia de 100 kOhmios para R2 ya que parecía que encajaría en el rango del gráfico, y tenía una de repuesto para desoldar varias cosas con los Minions. Lo conecto en serie con el termistor a través de un conector. Luego agregué un paquete de baterías. Corrí 3 V a VREF y la parte superior del divisor de voltaje y a la entrada Xbee + 3V. Pongo el GND (negativo de la batería) en la entrada GND y en la parte inferior del divisor. Luego conecté AD0 (Voltios) al medio del circuito divisor de voltaje.

AD0 leerá un voltaje relativo de VREF a V (1). Entonces, a medida que la batería disminuye, el voltaje relativo debería disminuir de la misma manera. Eventualmente alimentaré la unidad con una fuente de energía local. La unidad terminada funcionó bien, conectamos todo con pinzas de cocodrilo, lo que la hizo frágil. Una vez que obtuve la conexión hembra de 3/32 ", coloco el transmisor en una tina de plástico al azar que teníamos (un recipiente ex-hummus). Esto debería protegerlo de la intemperie. Como compré conectores de" montaje en panel ", fue tan simple como taladrar un agujero en el plástico para añadir el conector al exterior con una conexión bastante estanca, una vez que lo teníamos llegó el momento de probar.

Paso 6: hogar, hogar, no tiene alcance

Hogar, hogar, no tiene alcance
Hogar, hogar, no tiene alcance
Hogar, hogar, no tiene alcance
Hogar, hogar, no tiene alcance
Hogar, hogar, no tiene alcance
Hogar, hogar, no tiene alcance

Una de las primeras cosas que notamos fue que el rango tuvo una muerte horrible tan pronto como salimos de la oficina con el transmisor. Probamos desde una habitación diferente y los resultados fueron terribles. A 1 metro de distancia se cagó. Es hora de buscar soluciones. Se me ocurrió que donde estábamos probando teníamos 4 fuentes de Wi Fi a 5 pies, todas en el rango de 2.5 Ghz como el Xbee. Además, no "apuntamos el Xbee en absoluto. Después de investigar, determino que podría comprar una radio Xbee más potente (alrededor de $ 23) o agregar antenas. Una de las cosas que necesitaba era una buena prueba de alcance. El software X-CTU de Digi tiene una "Prueba de rango" incorporada, pero no sirvió para nada. Pasé un tiempo tratando de averiguar cómo hacer que funcionara. En realidad, esto fue más fácil de lo que se dijo. Realmente no necesitaba la prueba X-CTU, solo la Valor "RX Signal Strength Indicator" (RSSI). Busqué en los usos de xbee.pyTweet-A-Watt y allí mismo, línea 39: [código] self.rssi = p [3] [/código] Lo que significa que es parte del valor de retorno de Xbee (xb.rssi en wattcher), así que modifiqué una línea de depuración para mi truco: print str (contador) + ": RSSI:" + str (xb.rssi) + "| "+ time.strftime ("% Y% m% d,% H:% M ") +", "+": Voltaje: "+ str (CalcualtedVolts) +" avgv "+ str (avgv) +" Termistor: " + str (x) + "Temperature:" + str (Temperature) Que produce una línea como esta: 373: RSSI: 82 | 2009 04 26, 11:18,: Voltaje: 1.80100585938 avgv 593 Termistor: 71.2276559865 Temperatura: 78.6813444881 Puede también vea RSSI con procesamiento, de la página de Tom's Igoe. Aunque querrá modificar la longitud del paquete (en la parte superior), ya que Processing se quejó de escribir más allá del final del tamaño del búfer del paquete. Creo que debe ser mayor que 2 * esperado longitud del paquete. El código de Tom mira hacia atrás en busca de un paquete anterior, lo que significa que si pierde el indicador de paquete Ox7E, podría ejecutarse por un tiempo. Dado que estoy cerca del borde exterior del rango de medición, puede suceder por un tiempo. Configuré el mío en 600 y dejó de darme el mensaje "error, deshabilitando serialEvent ()". El código de Tom simplemente imprime la última configuración, que no es tan útil para mí. Mi línea de depuración me permite rastrear cambia mientras Minion # 1 se pregunta. Ahora teníamos una buena manera de medir, más que "oye papá, tenemos un paquete", ¡era hora de probar algunas ideas de antenas caseras! Usando ideas de https://www.usbwifi.orconhosting.net.nz/, he encontrado que el Corner Cube midió una disminución en dB, aunque en la práctica no pareció ayudar a conectar un par desconectado. El Vegatible Steamer en realidad fue el mejor para apuntar y reconectarse. La configuración de USB Wifi es muy diferente a la de otras personas. Los vaporizadores tienen un vástago en el medio que facilita la colocación del XBee. Un tazón de pho con papel de aluminio también se ve prometedor (aunque simplemente retiramos el papel de aluminio más tarde y lo mantuvimos en su lugar). También intentamos hacer una parábola con una "pista" de ruedas calientes que se doblaba, pero no pareció ayudar. Uno de los problemas es que estábamos probando en el borde exterior del rango. La mayoría de las radios de 2.5Ghz, especialmente XBee, usan spread Spectrum, lo que significa que pueden tomar un pero para "sincronizar" y luego el software XBee busca el comienzo de un paquete XBee antes de activarse. Esto significa si obtiene un efecto de todo o nada. O las radios se bloquean entre sí o no. En algún momento parece suerte, pero de hecho eres una antena en estos rangos y puedes estar impactando los resultados. Fui a comprar dos vapores pero luego descubrí que el costo de un vaporera del supermercado local era de $ 10, y por el precio de dos vapores, puedo conseguir un XBee más potente. Así que miré algunos lugares más y encontré un colador bastante profundo que resultó aún mejor. Fue $ 7. Creo que la profundidad es importante, ya que estoy en el extremo de la transmisión, refleja más la señal (según las notas en https://www.usbwifi.orconhosting.net.nz/number13.jpg). es que con una vaporera de verduras en un extremo (para ser reemplazado) y un colador en el otro, tengo señal a unos 20-30m, desde una oficina interior, a través de 3-4 paredes, ¡hacia el jacuzzi! Consejo profesional: Recuerda para traer el colador si desea 1) Su cónyuge se quede, y / o 2) Quiere verduras al vapor más tarde. Personalmente, me gusta la apariencia de pétalos de la vaporera de verduras.

Paso 7: software

Software
Software

Comenzando con el software Tweet-A-Watts, comencé a piratear el código Python. En su mayoría, necesitaba eliminar la conversión de Watts, las funciones de historial, y luego necesitaba agregar una cantidad de protecciones de división por 0 (el Tweet-A-Watt asume que los paquetes tendrán datos). Luego agregué la fórmula de Excel en el programa y probado. Lo configuré para imprimir cada paquete y tengo mucha depuración en el código para detectar problemas. Traté de hacer funcionar la parte de gráficos, pero me rendí, lo que me lleva a: Python Rant: esta es la segunda vez que tengo Intenté hacer un proyecto importante en Python. No pude hacer que todas las dependencias de las bibliotecas y los paquetes base funcionen en menos de 20 horas en Windows, Windows 64, Ubuntu y Fedora. Finalmente tuve que construir casi todo desde cero e incluso entonces algunas funciones no funcionaron. Probé 2.4, 2.5, 2.6 y varias versiones 3. X, y luego versiones de cada biblioteca, que a su vez tenían dependencias en otros paquetes. Mientras que otros pueden tener quejas en contra del lenguaje, encontré que simplemente instalar, incluso usar muchos de los "instaladores fáciles", es desalentador en el mejor de los casos. Después de calcular las temperaturas, hice un ajuste de 1 grado, porque no podía creer la bañera de hidromasaje. estaba en 106F. Realmente no creo que esté en 105 tampoco. Luego modifiqué la lógica de los informes y de Twitter. Como no estoy seguro de si recibiré paquetes o buenos paquetes, elegí informar la temperatura una vez por hora. Supongo que lo cortaré en un tiempo. Actualmente, el script se está ejecutando como un usuario normal. Con el tiempo, querré trasladarlo a un servicio.

Paso 8: Pasos siguientes

Hay algunos pasos siguientes obvios:

1) Reemplace el colador de verduras a. ¡Los minions necesitan sus verduras! B. Ese era viejo de todos modos. 2) Coloque la antena de la bañera de hidromasaje debajo de la plataforma a. La baraja puede hacer que sea aún "más", pero permitirá una configuración más fea. B. Luego puedo ejecutar el termistor en la parte inferior y encontrar un lugar mejor. 3) Agregue más sensores a. El más fácil es un sensor de temperatura exterior. B. Pero no hay ninguna razón por la que no podamos detectar el estado de los paneles de control, especialmente el sensor de calor que se toca mágicamente cuando los niños terminan. C. Otros sensores meteorológicos (viento, humedad, etc.) d. Sería bueno controlar la bañera de hidromasaje y podría apagar la calefacción durante gran parte del día y la noche. 4) Puedo ajustar el software a. Los minions ya quieren mejores mensajes por temperatura. B. Deberíamos poder responder a las respuestas y mensajes directos. C. Debería tuitear de forma más inteligente (menos de una vez por hora). D. Tengo otras cosas divertidas planeadas.

Recomendado: