Stap 5: Python Code schrijven
Ik schreef een klein programma dat de functies van de HESA besturen met behulp van python. Het hoofdprogramma heet hesa.py. Ik maakte ook een module om e-mail genaamd rynokEmail.py. De e-mail module kan worden gebruikt in andere programma's. De links brengen u naar de broncode.
Een belangrijk ding om te vermelden is dat de invoer pin op de Raspberry Pi ingesteld als een pulldown uitzien is:
GPIO.setup (inPin, GPIO. IN, pull_up_down = GPIO. PUD_DOWN)
Hier is de pseudo-code voor het programma waarin de basisstappen:
1. Laad de bibliotheken die door het programma gebruikt en globale variabelen definiëren
2. het initialiseren van de GPIO op de Raspberry Pi
3. Zet de estafette
4. Maak een nieuwe statuspagina voor web
5. begin op zoek naar water door signalen uit één elektrode en op zoek naar de huidige op de andere elektrode.
5a. Update de statuspagina elke 10 minuten
5b. als huidige is te vinden op de input elektrode
5B1. afsluiten van de macht aan de estafette en reset de GPIO op de PI
5b2. Stuur een email
5b3. bijwerken de statuspagina
Even terzijde zijn er een paar dingen die ik graag doe bij het coderen in elke taal. Ik controleer eerst een globale variabele van foutopsporing. Vervolgens, ik debug verklaringen zetten in al mijn modules zodat ik kan het oplossen van het programma als het niet werkt. In het ideale geval zal het programma verslag wanneer het een module, de status van de belangrijkste variabelen in de module invoert wanneer een belangrijke gebeurtenis plaatsvindt, en wanneer de module wordt verlaten. Alle berichten kan worden uitgeschakeld simpelweg door het veranderen van de waarde van de variabele van de foutopsporing op één plaats.
Ten tweede, ik probeer om commentaar alles grondig. Dit helpt wanneer ik een jaar later terug te komen en proberen om erachter te komen hoe een fragment van code werkt. Ik maak ook de code zo eenvoudig mogelijk. Dit kan betekenen dat een complexe regel breken in enkele eenvoudiger coderegels geplaatst. Ik wil ook expliciet detail alle als/dan-voorwaarden en niet ELSE gebruiken, tenzij ik ben ervan overtuigd dat alle IF-voorwaarden niet zal worden voldaan.
Ten derde, ik maak herbruikbare modules waar mogelijk en zet ze in een gemeenschappelijke map die alle programma's kunnen zien. Deze manier, ik heb niet opnieuw uitvinden van het wiel voor elk programma dat ik schrijf.
Volgende: Maak de behuizing