Stap 9: [Software] uploaden Arduino schets
De bijgevoegde schets van de Arduino zal uitvoeren van het proces van "kicktracker.py", de geretourneerde gegevens ontvangen, parse het voor de gewenste informatie en eventuele andere vereiste acties uitvoeren. Op dit moment het alleen controleert het aantal donateurs en triggers een feest (fanfare muziek en knipperende LED verkeer signaal).
Enkele interessante fragmenten uit het Wetboek (download het bijgevoegde ZIP-bestand voor uitvoerbare code):
Process p; // Create Process object p.begin("python"); // Start Python p.addParameter("/root/kicktracker.py"); // Run the kicktracker.py script p.addParameter("https://www.kickstarter.com/projects/macetech/rgb-led-shades/stats.json"); // Specify the Kickstarter stats URL p.addParameter("12000"); // Specify the Kickstarter goal amount p.run(); // Run the process
De bovenstaande code draait eigenlijk het script "kicktracker.py" uit de vorige stap. Het begint van Python, levert de naam en locatie van het script, de Kickstarter stats URL, en de campagne doel bedrag (want die informatie geen onderdeel van de geretourneerde gegevens is).
// Read incoming bytes and split into strings when forward slash is found // (Stream).readStringUntil() does not seem to work here while (p.available() > 0) { char c = p.read(); if (wordcount < 5) { if (c == '/') { wordcount++; } else { switch (wordcount) { case 0: pledgedRawStr += c; break; case 1: pledgedFormattedStr += c; break; case 2: backersStr += c; break; case 3: percentFundedFormatted += c; break; } } } }
De bovenstaande code zal ontleden de gegevens die worden verzonden door het kicktracker.py script, dat tekenreeksen worden zal, gescheiden door een slash. Op dit moment alleen de gegevens van de backer wordt gebruikt door de Arduino, maar andere acties kunnen worden gekoppeld aan de gegevens (rekken doelen bereikt, een nieuwe opmerking, enz).
Download het bijgevoegde zip-bestand voor het volledige codevoorbeeld.