Smart följeslagare hösten alert: en hälsa övervaka våra äldre (4 / 8 steg)
Steg 4: Kan få codding
1) Logga in på https://build.particle.io/build/new och skapa en ny "App"
2) lägga till de nödvändiga biblioteken. Partikel bygga webb-gränssnitt, klicka på ikonen "Bibliotek" på sidan righ (ikonen liknar det av ett bokmärke). Du kommer att kunna söka och lägga de nödvändiga bibliotek du ansökan. Lägga till bibliotek "internetButton" och "Simon" som bör inclide math.h.
När du väljer biblioteket se till att klicka på knappen "Omfatta i App" och markera namnet på den app du just skapat.
Den nedan koden innehåller två olika sätt att kodning knappen Internet. Ett sätt har kommenterats ut och det andra sättet visar LED-färger och spelar musik lämnades utan kommentarer. Du bör kunna kopiera koden, kommentera ut de avsnitt som är okommenterade och ta bort kommentarer på de delar som är kommenterade för att testa två versionen.
I den nedan exempel är bara en av knapparna ställa upp till samla och analysera den acceleration informationen från accelerometern. Sådan knapp anses den "yngre äldre" läget och har också inrättats att utlösa en notifiering när set och en separat avisering om individen använder enheten faller.
#include "InternetButton/InternetButton.h"
#include "math.h"
#include "Simon/Simon.h"
InternetButton b = InternetButton();
uint8_t Knapp1 = 0;
uint8_t button2 = 0;
uint8_t button3 = 0;
uint8_t button4 = 0;
uint8_t meddelandenknappen alla = 0;
int gaugeCount = 0;
char Org [] = "Alert Buddy";
char Disp [] = "Alert Buddy";
char Locn [] = "Plats";
enum Position: int {toppen = 0, höger = 1, botten = 2, vänster = 3, ingen = -1}; < br > //enum stat: int {Välkommen, Ready, visar};
Påstå statligt;
Ställning Läs = anyButtonOn();
int person;
/*
void (Välkommen)
{
b.playSong("C4,8,E4,8,G4,8,C5,8,G5,4");
b.allLedsOn(0,20,20);
Delay(500);
b.allLedsOff();
Flash (topp, sant, sant);
Flash (rätt, sant, sant);
Flash (botten, sant, sant);
Flash (vänster, sant, sant);
State = redo;
}
*/
void (Välkommen)
{
b.playSong("C4,8,E4,8,G4,8,C5,8,G5,4");
b.allLedsOn(0,20,20);
Delay(500);
b.ledOn (11, 30, 250, 0); 255,0,0
b.ledOn (1, 30, 20, 0);
b.playNote("C4",4);
Delay(20);
b.allLedsOff();
b.ledOn (2, 0, 0, 255);
b.ledOn (3, 0, 0, 255);
b.ledOn (4, 0, 0, 255);
b.playNote("E4",4);
Delay(20);
b.ledOn (5, 120, 120, 0);
b.ledOn (6, 120, 120, 0);
b.ledOn (7, 120, 120, 0);
b.playNote("G4",4);
Delay(20);
b.ledOn (8, 255, 0, 0);
b.ledOn (9, 255, 0, 0);
b.ledOn (10, 255, 0, 0);
b.playNote("C5",4);
State = redo;
utresa.
}
void loop() {
Växla (staten) {
fall Välkommen:
Welcome();
bryta;
fall klar:
Ready();
bryta;
fall visar:
Show();
bryta;
//}
/*
int ledPos = b.lowestLed();
char nyttolast [255];
snprintf (payload, sizeof(payload), "{\"s\":\"Giroscope\ ", \"u\":\"Gir\",\"l\":\"%s\",\"m\":\"Movement\",\"o\":\"%s\",\"v\ ": % f,\"d\":\"%s\ "}", Locn, Org, ledPos, Disp);
Serial.println(Payload);
Spark.publish ("ConnectTheDots", nyttolasten);
Delay(500);
*/
}
/*
{Ogiltig flash (Position p, bool tidsinställda, bool ljud)
Växla (p) {
fall topp: //button 1 grön
b.ledOn (11, 30, 250, 0); 255,0,0
b.ledOn (1, 30, 20, 0);
om (ljud) {b.playNote("C4",4);}
bryta;
fall rätten: //button 2 blå
b.ledOn (2, 0, 0, 255);
b.ledOn (3, 0, 0, 255);
b.ledOn (4, 0, 0, 255);
om (ljud) {b.playNote("E4",4);}
bryta;
fall botten: //button 3 gul
b.ledOn (5, 120, 120, 0);
b.ledOn (6, 120, 120, 0);
b.ledOn (7, 120, 120, 0);
om (ljud) {b.playNote("G4",4);}
bryta;
fall vänster: //button 4 röd
b.ledOn (8, 255, 0, 0);
b.ledOn (9, 255, 0, 0);
b.ledOn (10, 255, 0, 0);
om (ljud) {b.playNote("C5",4);}
bryta;
fall ingen:
Delay(100);
hemkomst.
}
om (tidsinställd) {
b.allLedsOff();
}
}
*/
void ready() {
IF(b.allButtonsOn()) {
IF(!buttonAll) {
meddelandenknappen alla = 1;
Spark.publish ("allbuttons", NULL, 60, privata);
b.Rainbow(10);
Delay(100);
b.allLedsOff();
}
}
annat {meddelandenknappen alla = 0;}
IF(b.buttonOn(1)) {
IF(!button1) {
Knapp1 = 1;
Spark.publish ("Knapp1", NULL, 60, privata);
b.ledOn (12.30, 250, 0); topp grön
Delay(200);
b.ledOff(12);
}
}
annat {Knapp1 = 0;}
IF(b.buttonOn(2)) {
IF(!button2) {
button2 = 1;
Spark.publish ("ElderHelp", NULL, 60, privata);
b.ledOn (3,0, 0, 255); rätt blå
Delay(100);
b.ledOff(3);
}
}
annat {button2 = 0;}
IF(b.buttonOn(3)) {
IF(!button3) {
button3 = 1;
Spark.publish ("button3", NULL, 60, privata);
b.ledOn (6,120, 120, 0); nedre gula
Delay(100);
b.ledOff(6);
}
}
annat {button3 = 0;}
IF(b.buttonOn(4)) {
IF(!Button4) {
Button4 = 1;
Spark.publish ("button4", NULL, 60, privata);
b.ledOn(9,255,0,0); vänstra röda
Delay(100);
b.ledOff(9);
}
}
annat {button4 = 0;}
Vänta en mo "
Delay(50);
/ * Position läsa = anyButtonOn();
Växla (Läs) {
fall ingen:
hemkomst.
fall toppen:
äldre person grön
person = 1;
bryta;
fall rätt:
epileptiska blå
objekt = 4;
bryta;
fallet botten:
Baby gul
objekt = 8.
bryta;
}
*/
Celebrate();
}
/*
void setColor() {
om (objekt > 0 & & objektet < 2) {
RGB.color (30, 250, 0); grön
röd (255,0,0)
hemkomst.
}
om (objekt > 3 & & objektet < 6) {
RGB.color (0, 0, 255);
blå
hemkomst.
}
om (objekt > 7 & & objektet < 20) {
RGB.color (120, 120, 0);
gul
hemkomst.
}
RGB.color (0, 255, 0);
}
*
*
void start() {
generate(Object);
setColor();
State = visar;
}
void generera (int storlek) {
}
*/
void show() {
b.allLedsOff();
Hur mycket ska du flytta i x riktning? (titta på vit text på tavlan)
int xValue = b.readX();
Vad sägs om i y-riktningen?
int yValue = b.readY();
Och z!
int zValue = b.readZ();
int sumAccel = (abs(xValue) + abs(yValue) + abs(zValue)) / 30;
om (sumAccel > 10)
{
b.allLedsOn (255, 0, 0); om accelererar flash röd
b.playNote("G4",4);
Delay(900);
b.allLedsOff();
Spark.publish ("ALERT faller ner", NULL, 60, privata);
}
int ledPos = b.lowestLed();
/ * char nyttolast [255];
snprintf (payload, sizeof(payload), "{\"s\":\"Giroscope\ ", \"u\":\"Gir\",\"l\":\"%s\",\"m\":\"Movement\",\"o\":\"%s\",\"v\ ": % f,\"d\":\"%s\ "}", Locn, Org, sumAccel, Disp);
Serial.println(Payload);
Spark.publish ("ConnectTheDots", nyttolasten);
Delay(500);
*/
}
/*
enum anyButtonOn() {
om (b.buttonOn(1)) {
returnera topp;
}
om (b.buttonOn(2)) {
returnera rätt;
}
om (b.buttonOn(3)) {
returnera botten;
}
om (b.buttonOn(4)) {
återgå till vänster.
}
returnera ingen;
}
*/
/*
void celebrate() {
Delay(500);
b.ledOn (11, 30, 250, 0); 255,0,0
b.ledOn (1, 30, 20, 0);
b.playNote("C4",4);
Delay(20);
b.allLedsOff();
b.ledOn (2, 0, 0, 255);
b.ledOn (3, 0, 0, 255);
b.ledOn (4, 0, 0, 255);
b.playNote("E4",4);
Delay(20);
b.ledOn (5, 120, 120, 0);
b.ledOn (6, 120, 120, 0);
b.ledOn (7, 120, 120, 0);
b.playNote("G4",4);
Delay(20);
b.ledOn (8, 255, 0, 0);
b.ledOn (9, 255, 0, 0);
b.ledOn (10, 255, 0, 0);
b.playNote("C5",4);
*/
/ * flash (topp, falsk, falsk);
Flash (höger, falsk, falsk);
Flash (botten, falsk, falsk);
Flash (vänster, falsk, falsk);
b.playSong("C4,8,E4,8,G4,8,C5,8,G5,4");
Delay(300);
b.allLedsOff();
*/
/*
Delay(100);
Start();
}
*/
void setup() {
Berätta för b att få allt redo att gå
Använd b.begin(1); Om du har den ursprungliga SparkButton, som inte har en Summer eller plastkapsling
för att använda, bara lägga till en '1' mellan parenteserna i koden nedan.
State = Välkommen;
RGB.control(true);
int person = 0;
b.BEGIN();
Welcome();
b.allLedsOff();
}