Paso 5: Escribir código Python
Escribí un pequeño programa usando python para controlar las características de la HESA. El programa principal se llama hesa.py. También hice un módulo de correo electrónico llamada rynokEmail.py. El módulo de correo electrónico puede ser utilizado en otros programas. Los enlaces te llevarán al código fuente.
Una cosa importante a mencionar es que la clavija de entrada de la Raspberry Pi está configurado como un desplegable como este:
GPIO.setup (inPin, GPIO. IN, pull_up_down = GPIO. PUD_DOWN)
Aquí es el pseudo código para el programa que muestra los pasos básicos:
1. cargar las librerías utilizadas por el programa y definir variables globales
2. inicializar el GPIO en la frambuesa Pi
3. encender el relé
4. crear una nueva página web
5. comience a enviar señales a un electrodo y buscando la corriente en el otro electrodo en busca de agua.
5A. actualización de la página de estado cada 10 minutos
5b. Si actual se encuentra en el electrodo de entrada
5B1. Apague la alimentación al relé y restablecer la GPIO en el PI
5b2. enviar un correo electrónico
5B3. actualización de la página de estado
Como un aparte, hay un par de cosas que me gusta hacer cuando la codificación en cualquier idioma. En primer lugar, hacer una variable global de depuración. Entonces, pongo declaraciones de depuración en todos mis módulos por lo que yo puedo solucionar el programa si no funciona. Idealmente, el programa presentará un informe cuando se entra en un módulo, el estado de las variables clave en el módulo, cuando ocurra un evento clave, y cuando se sale del módulo. Todos los mensajes de pueden desactivarse simplemente cambiando el valor de la variable debug en un solo lugar.
En segundo lugar, intento comentar todo bien. Esto ayuda cuando vuelve un año más tarde y tratar de entender cómo funciona algún fragmento de código. También hago el código tan simple como sea posible. Esto puede significar una línea compleja se rompe en varias líneas más de código. También intento detalle explícitamente todas las condiciones If/Then y utilice otro si no estoy seguro de que no se cumplirán todas las condiciones del IF.
En tercer lugar, hago módulos reutilizables siempre que sea posible y ponerlos en una carpeta común que pueden ver todos los programas. Esta manera, no tengo que reinventar la rueda para cada programa que escribo.
Siguiente: Hacer la caja