Skip to content

Commit ab59849

Browse files
authored
Add files via upload
1 parent 191137f commit ab59849

File tree

9 files changed

+596
-0
lines changed

9 files changed

+596
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// SPDX-FileCopyrightText: 2018 Dave Astels for Adafruit Industries
2+
//
3+
// SPDX-License-Identifier: MIT
4+
5+
/************************ Adafruit IO Config *******************************/
6+
7+
// visit io.adafruit.com if you need to create an account,
8+
// or if you need your Adafruit IO key.
9+
#define IO_USERNAME "your_username"
10+
#define IO_KEY "your_key"
11+
12+
/******************************* WIFI **************************************/
13+
14+
// the AdafruitIO_WiFi client will work with the following boards:
15+
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
16+
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
17+
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
18+
// - Feather WICED -> https://www.adafruit.com/products/3056
19+
20+
#define WIFI_SSID "your_ssid"
21+
#define WIFI_PASS "your_pass"
22+
23+
// comment out the following two lines if you are using fona or ethernet
24+
#include "AdafruitIO_WiFi.h"
25+
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
26+
27+
28+
/******************************* FONA **************************************/
29+
30+
// the AdafruitIO_FONA client will work with the following boards:
31+
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
32+
33+
// uncomment the following two lines for 32u4 FONA,
34+
// and comment out the AdafruitIO_WiFi client in the WIFI section
35+
// #include "AdafruitIO_FONA.h"
36+
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
37+
38+
39+
/**************************** ETHERNET ************************************/
40+
41+
// the AdafruitIO_Ethernet client will work with the following boards:
42+
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
43+
44+
// uncomment the following two lines for ethernet,
45+
// and comment out the AdafruitIO_WiFi client in the WIFI section
46+
// #include "AdafruitIO_Ethernet.h"
47+
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);
Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
// SPDX-FileCopyrightText: 2018 Dave Astels for Adafruit Industries
2+
//
3+
// SPDX-License-Identifier: MIT
4+
5+
// Crickit + Adafruit IO Publish & Subscribe Example
6+
//
7+
// Adafruit invests time and resources providing this open source code.
8+
// Please support Adafruit and open source hardware by purchasing
9+
// products from Adafruit!
10+
//
11+
// Written by Dave Astels for Adafruit Industries
12+
// Copyright (c) 2018 Adafruit Industries
13+
// Licensed under the MIT license.
14+
//
15+
// All text above must be included in any redistribution.
16+
17+
/************************** Configuration ***********************************/
18+
19+
// edit the config.h tab and enter your Adafruit IO credentials
20+
// and any additional configuration needed for WiFi, cellular,
21+
// or ethernet clients.
22+
#include "config.h"
23+
#include <Adafruit_Crickit.h>
24+
#include <seesaw_servo.h>
25+
#include <seesaw_neopixel.h>
26+
27+
#define NEOPIX_PIN (20) /* Neopixel pin */
28+
#define NEOPIX_NUMBER_OF_PIXELS (7)
29+
30+
#define CAPTOUCH_THRESH 500
31+
32+
#define IO_LOOP_DELAY (1000)
33+
unsigned long lastUpdate = 0;
34+
35+
// set up the feeds
36+
AdafruitIO_Feed *servo1_control;
37+
AdafruitIO_Feed *neopixel_control;
38+
AdafruitIO_Feed *light;
39+
uint16_t last_reported_light = 0;
40+
41+
AdafruitIO_Feed *touch;
42+
boolean last_touch = false;
43+
44+
// set up the Crickit
45+
46+
Adafruit_Crickit crickit;
47+
seesaw_Servo servo_1(&crickit); // create servo object to control a servo
48+
49+
// Parameter 1 = number of pixels in strip
50+
// Parameter 2 = Arduino pin number (most are valid)
51+
// Parameter 3 = pixel type flags, add together as needed:
52+
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
53+
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
54+
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
55+
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
56+
// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
57+
seesaw_NeoPixel strip = seesaw_NeoPixel(NEOPIX_NUMBER_OF_PIXELS, NEOPIX_PIN, NEO_GRB + NEO_KHZ800);
58+
59+
void setup_feeds()
60+
{
61+
servo1_control = io.feed("crickit.servo1-control");
62+
neopixel_control = io.feed("crickit.neopixel-control");
63+
light = io.feed("crickit.light");
64+
touch = io.feed("crickit.touch-0");
65+
}
66+
67+
68+
void setup()
69+
{
70+
setup_feeds();
71+
Serial.println("Feeds set up");
72+
73+
// start the serial connection
74+
Serial.begin(115200);
75+
76+
// wait for serial monitor to open
77+
while(! Serial);
78+
79+
Serial.println("Connecting to Adafruit IO");
80+
81+
// connect to io.adafruit.com
82+
io.connect();
83+
84+
// set up a message handler for the count feed.
85+
// the handleMessage function (defined below)
86+
// will be called whenever a message is
87+
// received from adafruit io.
88+
// setup handlers
89+
servo1_control->onMessage(handle_servo_message);
90+
neopixel_control->onMessage(handle_neopixel_message);
91+
92+
// wait for a connection
93+
while(io.status() < AIO_CONNECTED) {
94+
Serial.println(io.statusText());
95+
delay(500);
96+
}
97+
98+
// we are connected
99+
Serial.println();
100+
Serial.println(io.statusText());
101+
102+
if (!crickit.begin()) {
103+
Serial.println("Error starting Crickit!");
104+
while(1);
105+
} else {
106+
Serial.println("Crickit started");
107+
}
108+
109+
if(!strip.begin()){
110+
Serial.println("Error starting Neopixels!");
111+
while(1);
112+
} else {
113+
Serial.println("Neopixels started");
114+
}
115+
116+
servo1_control->get();
117+
servo_1.attach(CRICKIT_SERVO1);
118+
119+
Serial.println("setup complete");
120+
}
121+
122+
123+
void loop()
124+
{
125+
126+
// io.run(); is required for all sketches.
127+
// it should always be present at the top of your loop
128+
// function. it keeps the client connected to
129+
// io.adafruit.com, and processes any incoming data.
130+
io.run();
131+
132+
if (millis() > (lastUpdate + IO_LOOP_DELAY)) {
133+
134+
uint16_t light_level = crickit.analogRead(CRICKIT_SIGNAL1);
135+
uint16_t light_delta = abs(light_level - last_reported_light);
136+
137+
if (light_delta > 10) {
138+
light->save(light_level);
139+
last_reported_light = light_level;
140+
Serial.print("Sending ");
141+
}
142+
Serial.print("Light: ");
143+
Serial.println(light_level);
144+
145+
uint16_t val = crickit.touchRead(0);
146+
147+
if (val >= CAPTOUCH_THRESH && !last_touch) {
148+
touch->save(1);
149+
last_touch = true;
150+
Serial.println("CT 0 touched.");
151+
} else if (val < CAPTOUCH_THRESH && last_touch) {
152+
touch->save(0);
153+
last_touch = false;
154+
Serial.println("CT 0 released.");
155+
}
156+
157+
// after publishing, store the current time
158+
lastUpdate = millis();
159+
}
160+
161+
}
162+
163+
void handle_servo_message(AdafruitIO_Data *data)
164+
{
165+
Serial.print("received servo control <- ");
166+
Serial.println(data->value());
167+
int angle = data->toInt();
168+
if(angle < 0) {
169+
angle = 0;
170+
} else if(angle > 180) {
171+
angle = 180;
172+
}
173+
servo_1.write(angle);
174+
175+
}
176+
177+
178+
void handle_neopixel_message(AdafruitIO_Data *data)
179+
{
180+
Serial.print("received neopixel control <- ");
181+
Serial.println(data->value());
182+
long color = data->toNeoPixel();
183+
for (int pixel = 0; pixel < NEOPIX_NUMBER_OF_PIXELS; pixel++) {
184+
strip.setPixelColor(pixel, color);
185+
}
186+
strip.show();
187+
}

Crickits/Crickit_AdafruitIO/crickit_io/esp8266.test.only

Whitespace-only changes.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// SPDX-FileCopyrightText: 2018 Dave Astels for Adafruit Industries
2+
//
3+
// SPDX-License-Identifier: MIT
4+
5+
/************************ Adafruit IO Config *******************************/
6+
7+
// visit io.adafruit.com if you need to create an account,
8+
// or if you need your Adafruit IO key.
9+
#define IO_USERNAME "your_username"
10+
#define IO_KEY "your_key"
11+
12+
/******************************* WIFI **************************************/
13+
14+
// the AdafruitIO_WiFi client will work with the following boards:
15+
// - HUZZAH ESP8266 Breakout -> https://www.adafruit.com/products/2471
16+
// - Feather HUZZAH ESP8266 -> https://www.adafruit.com/products/2821
17+
// - Feather M0 WiFi -> https://www.adafruit.com/products/3010
18+
// - Feather WICED -> https://www.adafruit.com/products/3056
19+
20+
#define WIFI_SSID "your_ssid"
21+
#define WIFI_PASS "your_pass"
22+
23+
// comment out the following two lines if you are using fona or ethernet
24+
#include "AdafruitIO_WiFi.h"
25+
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
26+
27+
28+
/******************************* FONA **************************************/
29+
30+
// the AdafruitIO_FONA client will work with the following boards:
31+
// - Feather 32u4 FONA -> https://www.adafruit.com/product/3027
32+
33+
// uncomment the following two lines for 32u4 FONA,
34+
// and comment out the AdafruitIO_WiFi client in the WIFI section
35+
// #include "AdafruitIO_FONA.h"
36+
// AdafruitIO_FONA io(IO_USERNAME, IO_KEY);
37+
38+
39+
/**************************** ETHERNET ************************************/
40+
41+
// the AdafruitIO_Ethernet client will work with the following boards:
42+
// - Ethernet FeatherWing -> https://www.adafruit.com/products/3201
43+
44+
// uncomment the following two lines for ethernet,
45+
// and comment out the AdafruitIO_WiFi client in the WIFI section
46+
// #include "AdafruitIO_Ethernet.h"
47+
// AdafruitIO_Ethernet io(IO_USERNAME, IO_KEY);

0 commit comments

Comments
 (0)