Raspberry Pi käyttöönotto - DigiaMinions/Project GitHub Wiki

Asennus ja käyttöönotto

Esivaatimukset

Kytkennät

Ennen laitteen käynnistämistä tulisi antureiden ja servojen liitosten Raspberry Pin kanssa olla kytkettynä. Alla kuva Raspberry Pin GPIO-pinneistä ja ohjeet liitäntöjen kytkemiseen. Raspberry Pi 3 GPIO pins

Load Cell & HX711 -AD-muunnin

HX711 AD-muunnin on yhdistetty Raspberry Pihin 4 johdolla, mitkä tulee kytkeä seuraavasti:

VCC - Pin#01 3.3v DC Power
DT - Pin#21 GPIO09 (SPI_MISO)
SCK - Pin#23 GPIO11 (SPI_CLK)
GND - Pin#06 Ground

Ylempi servo - Power HD HD9001MG Analog

Ylempi servo, mikä vastaa ruoan täytöstä täyttöputkeen, kiinnittyy Raspberry Pi:hin kolmella johdolla seuraavasti:

Signal (oranssi) - Pin#35 GPIO19
+5V (punainen) - Pin#02 5v DC Power
Ground (ruskea) - Pin#39 Ground

Servon tuotetiedot. Viitattu 20.02.2017

Alempi servo - Power HD HD6001MG Analog

Alempi servo, mikä vastaa ruoan syötöstä täyttöputkesta ruokakuppiin, kiinnittyy Raspberry Pi:hin kolmella johdolla seuraavasti:

Signal (oranssi) - Pin#GPIO26
+5V (punainen) - Pin#04 5v DC Power
Ground (ruskea) - Pin#25 Ground

Servon tuotetiedot. Viitattu 20.02.2017

Tiedostot

Ohjelmiston automaattisen käynnistyksen vuoksi laitteessa tulee käyttää absoluuttisia polkuja ja siten ohjelmisto tulee asentaa laitteen juureen kansioon "feeder". Kansioon sijoitettavat pakolliset tiedostot ovat:

  • createcert.py
  • FeederProgram.py
  • JSONMaker.py
  • start.sh
  • init.sh

Sertifikaatit

"feeder"-kansion sisällä tulee olla "cert"-kansio ja tämän sisällä "default". "default"-kansioon kuuluvat käyttöönoton yhteydessä AWS:n seuraavat sertifikaatit:

  • 4847123d22-certificate.pem.crt
  • 4847123d22-private.pem.key
  • 4847123d22-public.pem.key

Sertifikaateja ei ole tallennettu GitHubiin, vaan ovat noudettavissa AWS IoT:sta Security/Certificates-välilehdestä nimellä 4847123d22

Rakenne

Laitteen tiedostorakenne ensikäyttöönotossa tulisi näyttää seuraavanlaiselta

/
`-- feeder
	| -- createcert.py
	| -- FeederProgram.py
	| -- idconf.py
	| -- JSONMaker.py
	| -- start.sh
	| -- init.sh
	`-- cert
		`-- default
			| -- 4847123d22-certificate.pem.crt
			| -- 4847123d22-private.pem.key
			| -- 4847123d22-public.pem.key

Ensikäyttöönotto

Ohjelmiston automaattinen suorittaminen käynnistyksen yhteydessä

Kun tarvittavat tiedostot löytyvät laitteesta, tulee ajaa init.sh pääkäyttäjän oikeuksin komennolla bash /feeder/init.sh Skripti merkitsee start.sh:n käynnistymään automaattisesti jokaisen laitteen käynnistyksen yhteydessä. init.sh:n ajon jälkeen laite on käyttövalmis ja voidaan sammuttaa.

start.sh -käynnistysskripti

Varmista, että skriptin rivien 134 ja 149 ARN vastaa oman tilin tietoja, jos AWS-tiliä on muutettu.

Jokaisen käynnistyksen yhteydessä start.sh huolehtii seuraavista toiminnoista:

  • Varmistaa että internet-yhteys on käytettävissä, jää odottamaan mikäli yhteys ei ole saatavilla
  • Tarkistaa onko laitepäivityksiä saatavilla laitteen muistissa ja asentaa tarvittaessa
  • Tarkistaa löytyykö laitteesta seuraavat asiat sekä noutaa ja asentaa tarvittaessa:
    • AWS IoT Root CA -sertifikaatti
    • AWS IoT SDK
    • abyz.co.uk:n PiGPIO -kirjasto
    • abyz.co.uk:n HX711 -AD-muuntimen kirjasto
    • Apache Subversion
  • Tarkistaa, onko PiGPIO -daemon päällä, käynnistää tarvittaessa
  • Tarkistaa, puuttuvatko laitekohtaiset sertifikaatit ja ovatko oletussertifikaatit tallella. Mikäli uusia sertifikaateja ei ole vielä luotu, ajaa ohjelman createcert.py
  • Kun tarvittavat ohjelmat on asennettu, uudet sertifikaatit luotu ja vanhat tuhottu, ajaa pääohjelman FeederProgram.py

Rakenne

Kun ohjelmisto on ajettu ensimmäisen kerran ja kaikki tarvittava on noudettu ja asennettu, on laitteen tiedostorakenne muuttunut ja näyttää seuraavalta:

/
|-- root-CA.crt
`-- aws-iot-sdk
`-- feeder
	| -- createcert.py
	| -- FeederProgram.py
	| -- HX711.py
            | -- HX711.pyc
	| -- idconf.py
            | -- idconf.pyc
            | -- init.sh
	| -- JSONMaker.py
	| -- JSONMaker.pyc
	| -- offset.dat
	| -- schedule.dat
	| -- schedule_fedtoday.dat
	| -- start.sh
	| -- todaysnumber.dat
            `-- update
	`-- cert
		| -- laitekohtainen.crt
		| -- laitekohtainen.pem.key
		| -- laitekohtainen.pem.key
		`-- default
	`-- PIGPIO
		|-- ...