- 1x - IMK 2 Slice Toaster : $9.95
- 1x - NodeMCU ESP8266 : $5.01
- 16x - Red, Blue, Green, Yellow LEDs
Create the src/main.h
file based on src/main.h.example
with the relevant information for your project and save it.
#ifndef MAIN_H
// Wifi Details
const char *ssid = "YourWifiSSID";
const char *password = "YourWifiPassword";
const String thing_id = "YourThingID";
// AWS MQTT Details
char *aws_mqtt_server = "YourAWSThingID.iot.us-east-1.amazonaws.com";
char *aws_mqtt_client_id = "YourMQTTClientID";
char *aws_mqtt_thing_topic_pub = "Your/MQTT/Topic";
char *aws_mqtt_thing_topic_sub = "Your/MQTT/Topic";
#endif
You will also need to create the cert files based on the output from the CloudFormation deploy of the vending machine
openssl x509 -in certs/certificate.pem.crt -out data/cert.der -outform DER
openssl rsa -in certs/private.pem.key -out data/private.der -outform DER
openssl x509 -in certs/root-CA.pem -out data/ca.der -outform DER
Then upload the certificates using SPIFFS
pio run -t uploadfs
For more information on AWS IoT, check out the AWS IoT Setup guide
This project is build and run with PlatformIO. The library dependencies can be found in the platformio.ini
file. Below is the current configuration targetting the NodeMCU varient of the ESP8266 development board.
[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino
monitor_speed = 115200
lib_deps =
ArduinoJson@5.13.1
PubSubClient@2.6
The audio clip within the /audio
directory is used in main.h
. This byte stream cannot exceed the Program Memory size of the microcontroller you have chosen to use.
The tutorial on setting up the audio clip for encoding can be founds here: http://highlowtech.org/?p=1963. It's important to note that you need a WAV/MP3 with a sample rate of 8Khz
and a bit rate of 16Khz
.
There's a copy of the EncodeAudio.exe
binary in the /audio
directory also incase the site mirror goes down.