Paso 1: El nodo de Sensor
Construcción del nodo de Sensor
Vamos a empezar este proyecto con la construcción de nuestro nodo de Sensor. Te armamos el Sensor de temperatura primero, y luego una vez que hemos probado y de trabajo a incorporar la comunicación inalámbrica. El primer paso es asegurarse de que tener todos las bibliotecas instaladas.
Los dos que usted necesita están aquí:
Los instale y asegúrese de que tiene un adaptador FTDI y los controladores están correctamente instalados.
Una vez hecho esto usted debe leer esta guía de inicio rápido para el Moteino, hay alguna información útil allí.
Una vez hecho esto, soldar los pines de la cabecera sobre el tablero de Moteino porque nos va ser enchufar directamente en un protoboard y corte un trozo de alambre en 6,83 (743mm) larga para usar como nuestra antena. Soldadura en el agujero de la antena en el Moteino. Ver las imágenes en esta página y la Página Web de Moteino para la referencia. Una vez que los soldados y con éxito ha interconectado con el Moteino (trate de subir el sketch de Blink con el pin del LED a 9), conéctelo a la placa, conecte la alimentación y la tierra a los buses de la placa y nosotros podemos iniciar detección.
Detección de
Consulte archivo remitente temp.ino que tiene el código para esta parte
Para el sensor de temperatura, estamos utilizando un termistor. Es una pieza sencilla, barata y bastante precisa de estado sólido. Vamos a estar pegando este sensor en un ambiente caliente, húmedo y bastante cáustico por lo que es importante que sea capaz de soportar estos factores ambientales.
El sensor que estamos utilizando es un 10kOhm epóxido sellado termistor de Adafruit, que tienen excelente documentación. El código que estoy utilizando es una versión ligeramente modificada de los suyos. No tiene ningún sentido en volver a inventar la rueda, así que por favor, lea su documentación además de este tutorial para obtener más información acerca de este sensor.
La conexión es super sencilla, ver el esquema y las imágenes que adjunto a esta página. Usaremos las entradas analógicas 0.
El código sí mismo consiste sobre todo en matemáticas que usted no necesita preocuparse. La parte de matemáticas está acordonada en su propia función de porque es mejor no mirarlo. El código toma 5 lecturas de la entrada analógica en un corto periodo de tiempo y promedios para obtener una lectura más estable (estos sensores pueden ser ruidosos). Entonces hace algo de magia para convertir esa resistencia en temperatura que nos imprima el Monitor serie.
Radio comunicación
Por favor referencia remitente node.ino que tiene el código de este artículo.
Una vez que su temperatura está leyendo correctamente, necesitamos una manera de enviar al receptor. A lo que estamos utilizando el módulo de Radio RFM69, que verde lo soldado a la parte posterior de su Moteino. Lo primero, asegúrate de que tener una antena soldada al puerto de antena de la Junta de Moteino. Sin la antena, el rango de esta radio es unas pocas pulgadas en lugar de unos pocos cientos de metros. Información sobre la antena gama puede encontrarse en el sitio Moteino. Todas las conexiones ya están hechas para nosotros, así que sólo podemos inicializar la biblioteca y empezar a usarlo. Para empezar, sugeriría mirar código excelente de Andy Sigler para algunos super sencillo enviar y recibir ejemplos.
Para empezar
En el código hasta el momento, estamos detectando la temperatura. Lo que tenemos que hacer es tomar el valor del sensor y lo envíe a otro Moteino que se escucha de mensajes de radio. Lo hacemos por liar este pedazo de datos en un paquete pequeño y pasando por el aire. Este paquete se llama 'carga'. Una vez que la 'carga' alcanza el receptor, el receptor enviará un mensaje rápido hacia atrás diciendo "Tienes tu paquete, todo se ve bien". Esto se llama un reconocimiento (shorthanded a ACK en el código). Si un acuse de recibo no es recibido por el remitente, que espere un rato y tratar de enviarlo de nuevo. Si trata de 5 veces y falla, le dará. Esto es una manera importante de crear estabilidad y responsabilidad en la comunicación inalámbrica porque necesitamos saber si se están recibiendo nuestros mensajes.
Lo alimentación a
Para el Moteino sin la computadora que vamos a usar una batería de 9 voltios conectada al pin VIN de la Moteino. Este pin envía al regulador de voltaje, que camina hasta 3,3 v para el uso en el tablero.
Consumo de energía
Porque estos nodos de sensor están alimentado por batería, consumo de energía es un factor muy importante a tener en cuenta. Se trata de una un poco más allá del alcance de este tutorial, pero yo voy a debatir ampliamente aquí. El circuito existente, como se verá debería funcionar bien como es, pero hay espacio para optimizaciones. Cada componente diferentes consume cierta cantidad de energía. Hice algunas mediciones de corriente muy rápido con una batería de 9V alimenta la Moteino.
- un boceto en blanco:
- 24mA * 9V = 0,216 vatios
- con el microcontrolador para dormir (y la radio en):
- 16mA * 9V = 0,144 watios
- con la radio para dormir (y el μC en):
- 7.5mA * 9V = 0,0675 vatios
- con radio y μC para dormir:
- 4µA * 9V = 0,036 milivatios
- con dormir y el termistor está conectado:
- 0.16mA * 9V = 1,44 milivatios
Usted puede ver aquí que los cerdos más grande de la energía son el microcontrolador y la radio (obviamente). Tanto de los que podemos poner para dormir y reducir el consumo de energía considerablemente. Lamentablemente estamos atascados con el consumo de termistor sin circuitos más avanzados. Utilizamos la biblioteca de jeelabs que tiene una gran función llamada Sleepy. Lo uso mucho extraído y hacer mi propia biblioteca para que puedo utilizar solo una función sin ninguna de las otras cosas. Es aquí en mi github. Dormilón básicamente sólo reemplaza la función delay().
Al final nos quedamos con un circuito que consume un nominal ~ 1.5 mW en 9v. Una batería alcalina de 9 voltios típico batería tiene una capacidad de 565mAh, que es 5 vatios por hora. Nuestro sensor consume a un ritmo de 0,0015 vatios por hora. Una buena regla con las baterías es que sólo el 50% de su capacidad nominal es realmente utilizable. Nos deja con 2,5 vatios por hora de capacidad disponible. De estos cálculos, debemos esperar una vida útil de alrededor de 1600 horas, o 2 meses, que es totalmente razonable para el alcance de este proyecto. Esto, por supuesto, es no tomando en cuenta la tasa de autodescarga de la batería.
Ahora que ya tenemos un sensor que puede vivir en su propia durante un tiempo, es tiempo de construir algo que recibe sus mensajes.