Last active
June 5, 2019 11:29
-
-
Save danielcharrua/b022bef64e906acd5a897c5b2915d3fa to your computer and use it in GitHub Desktop.
Arduino MKR1000 source code to make an authenticated request to our Laravel API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <SPI.h> | |
#include <WiFi101.h> | |
char ssid[] = "myNetwork"; // your network SSID (name) | |
char pass[] = "myPassword"; // your network password | |
int keyIndex = 0; // your network key Index number (needed only for WEP) | |
int status = WL_IDLE_STATUS; | |
const char server[] = "example.com"; // name address for Google (using DNS) | |
const String api_route = "/api/protected-route"; // our api route | |
// get this from the api auth flow | |
const String access_token = "your-token-here"; | |
// Initialize the Ethernet client library | |
// with the IP address and port of the server | |
// that you want to connect to (port 80 is default for HTTP): | |
WiFiClient client; | |
void setup() { | |
//Initialize serial and wait for port to open: | |
Serial.begin(9600); | |
while (!Serial) { | |
; // wait for serial port to connect. Needed for native USB port only | |
} | |
// check for the presence of the shield: | |
if (WiFi.status() == WL_NO_SHIELD) { | |
Serial.println("WiFi shield not present"); | |
// don't continue: | |
while (true); | |
} | |
// attempt to connect to WiFi network: | |
while (status != WL_CONNECTED) { | |
Serial.print("Attempting to connect to SSID: "); | |
Serial.println(ssid); | |
// Connect to WPA/WPA2 network. Change this line if using open or WEP network: | |
status = WiFi.begin(ssid, pass); | |
// wait 10 seconds for connection: | |
delay(10000); | |
} | |
Serial.println("Connected to wifi"); | |
printWiFiStatus(); | |
Serial.println("\nStarting connection to server..."); | |
// if you get a connection, report back via serial: | |
if (client.connect(server, 80)) { | |
Serial.println("connected to server"); | |
// Make a HTTP request: | |
client.println("GET " + api_route + " HTTP/1.1"); | |
client.println("Host: " + String(server)); | |
client.println("Authorization: Bearer " + access_token); | |
client.println("Connection: close"); | |
client.println(); | |
} | |
} | |
void loop() { | |
// if there are incoming bytes available | |
// from the server, read them and print them: | |
while (client.available()) { | |
char c = client.read(); | |
Serial.write(c); | |
} | |
// if the server's disconnected, stop the client: | |
if (!client.connected()) { | |
Serial.println(); | |
Serial.println("disconnecting from server."); | |
client.stop(); | |
// do nothing forevermore: | |
while (true); | |
} | |
} | |
void printWiFiStatus() { | |
// print the SSID of the network you're attached to: | |
Serial.print("SSID: "); | |
Serial.println(WiFi.SSID()); | |
// print your WiFi shield's IP address: | |
IPAddress ip = WiFi.localIP(); | |
Serial.print("IP Address: "); | |
Serial.println(ip); | |
// print the received signal strength: | |
long rssi = WiFi.RSSI(); | |
Serial.print("signal strength (RSSI):"); | |
Serial.print(rssi); | |
Serial.println(" dBm"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment