Stap 4: Uw RPi codering
Op dit punt, neem we aan dat je hebt gedaan een basisopstelling van uw Raspberry Pi en u bekijkt de Linux bevellijn. Als niet, is het raadzaam gaan door deze handleiding eerst. U kunt ook controleren deze post over het gebruik van Wicd inrichten van de WiFi van je Raspberry Pi.
Laten we beginnen door ervoor te zorgen hebben we alle vereiste bibliotheken:
$ sudo apt-get update$ sudo apt-get upgrade $ sudo apt-get install python-setuptools $ sudo easy_install pip $ pip install ubidots
Maak een nieuw bestand met de naam "peoplecounter.py":
$ sudo nano peoplecounter.py
En schrijf daarin de onderstaande code. Zorg ervoor dat de waarden van de API-sleutel en de variabele-ID te vervangen door degenen die in uw persoonlijke account van de Ubidots. (Opmerking: de code is niet ook elegant, maar hey ik ben niet een Python ontwikkelaar, gewoon een hardware vent :)
Het script bestaat uit een lus die de status van de pin #7 (de bewegingssensor controleert). Als het een "1", wat betekent dat er verkeer was, leest vervolgens verhoogt de variabele "peoplecount" en wacht 1,5 seconden zodat de bewegingssensor terug naar normaal gaat. Dit gebeurt 10 keer, om ervoor te zorgen er ten minste 1 seconde tussen elke cyclus, dan wordt het totale bedrag van de "bewegingen" verzonden naar Ubidots. Als u kalibreren van de mensen-teller wilt, moet u dan spelen met de regels van de "time.sleep" met andere waarden.
from ubidots import ApiClientimport RPi.GPIO as GPIO import timeGPIO.setmode(GPIO.BCM)GPIO.setup(7, GPIO.IN)try: api =ApiClient("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")people = api.get_variable("5238cec3f91b282c7357a140") except: print "Couldn't connect to the API, check your Internet connection"counter = 0peoplev = 0while(1): presence = GPIO.input(7) if(presence): peoplecount += 1 presence = 0time.sleep(1.5)time.sleep(1)counter += 1if(counter==10):print peoplecount people.save_value({'value':peoplecount})counter = 0peoplev = 0