Stap 3: Aansluiten op het Internet met WiFly
Nu moeten we naar de label-ID sturen naar de server zodat het kan bijhouden van wie luistert naar muziek op elk apparaat. We schreven een Arduino library webverzoeken veel, veel om gemakkelijker te maken dat we zullen gebruiken. U vindt alle code u hier moet en we de code regel voor regel hieronder zal uitleggen. Als u niet lezen van de uitleg wilt, maar zorg ervoor dat u het netwerk authenticatie-informatie wijzigen zodat de WiFly verbinding met uw internet maken kan.We hebben een paar toevoegingen aangebracht in de vorige RFID lezen van code. Neem een blik bij de nieuwe toevoegingen aan de bovenkant van het bestand:
wifiSerial.begin(9600); Serial.println("Connecting WiFly..."); // Setup network connection. if (!connectWifi(&wifiSerial, mySSID, myPassword)) { Serial.println("Failed to join network."); } else { Serial.println("Joined wifi network."); } // Create an object to send http requests api = JSONAPI(host, "", LIFEGRAPH_BUFFER, LIFEGRAPH_BUFFER_SIZE);
We hebben toegevoegd de WiFlyHQ en Lifegraph bibliotheken te maken van een verbinding met het internet gemakkelijker. De WiFly module moet een seriële poort voor communicatie met de Arduino waarmee we op pin 9 en 10 maken. Vervolgens instantiëren we een JSON-API (onderdeel van de Lifegraph-bibliotheek) die HTTP oproepen in een paar eenvoudige methoden wraps. Wij bieden dan onze netwerkreferenties zodat de WiFly verbinding kunt maken. De host is onze eigen muziek partij servers die alle http-verkeer behandelen. De laatste regel definieert de deviceId waaruit u kunt. Het zal bepalen de URL van uw muziek feest dus hoe meer unieke u aanbrengen, het minder waarschijnlijk willekeurige mensen zal verbinding maken met uw feest muziek.
Nu neem een blik bij de nieuwe code in de setup-functie:
// Start using the wifi serial so we can sent a request wifiSerial.listen(); // Send the next post to the tap endpoint api.post("/tap"); // Add the device Idparam api.form("deviceId", deviceId); // Convert the pId from uint8_t to a char so the server can understand it Lifegraph.stringifyTag(pId, pIdLength, pIdString); // Add the pId param api.form("pId", pIdString); // Send the request and get a response int response = api.request(); // Print out the response Serial.println("Server response: " + String(response)); if (response == 404 || response == 406) { Serial.println(F("Go to lifegraphconnect.com to sync device")); } else if (response == 200 || response == 0) { Serial.print(F("Go to http://musicparty.herokuapp.com/")); Serial.print(deviceId); Serial.println(F("/party")); }
We zijn in dit blok van de code, de WiFly seriële communicatie instellen en verbinden met WiFi. Vervolgens maken we een object van de API voor het afhandelen van onze HTTP-aanvragen naar de Servers van de partij muziek.
Nu laten we eens kijken naar de toevoeging aan de looping code:
Connecting WiFly... Joined wifi network. Requesting Firmware Version to make sure comm is working... Found Version Data. Comm is working. Waiting for an RFID Card ... Got a tag! Length: 4, ID: 0x88 0x04 0x16 0x34 open musicparty.herokuapp.com 80 Server response: 404 Go to lifegraphconnect.com to sync device
Zodra wij een succesvolle kraan hebt ontvangen van een NFC/RFID-apparaat, beginnen we met communiceren met het bestuur van de WiFI in plaats van de RFID-bestuur (wifiSerial.listen()). Wij stel vervolgens het eindpunt dat we gaan om te raken (die zal altijd worden ' / tik ') en voeg de deviceId als een parameter van het verzoek. Vervolgens zetten wij onze pId uit een matrix van uint_8 die eruit als afval ziet wanneer u, naar tekens met de stringifyTag-methode afdrukt. Tot slot, we stuurt het verzoek en controleren van het antwoord.
Plaats de code op je Arduino, openstellen van de seriële monitor en verifiëren dat u met succes een aanvraag verzendt. Het moet uitprinten met zoiets als dit:
Geweldig, nu ben je klaar om te synchroniseren uw digitale en fysieke IDs!