Control Jansen with alexa

알렉사 얀센 연동 동영상

Team member

김영수, 김현준

Development period

2017.4 - 5

Using device

Alexa echo dot, jansen, L239D motor driver, esp8266

Schematic diagram

About the project

aduino library 설치 아래 있는거 다 설치했더니 됬다

ESPAsyncTCP-master.zip
ESPAsyncUDP-master.zip
ESPAsyncWebServer-master.zip
fauxmo-master.zip
xoseperez-fauxmoesp-fdf5ffd6793d.zip
Adafruit_CC3000_Library-master.zip
CDM v2.12.06 WHQL Certified.zip

code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include "fauxmoESP.h"

#define WIFI_SSID "KBDLAB1"
#define WIFI_PASS "kbdlabwifi2@"
#define SERIAL_BAUDRATE 115200


fauxmoESP fauxmo;

// -----------------------------------------------------------------------------
// Wifi
// -----------------------------------------------------------------------------
#define Driver1 5 // D1
#define Driver2 4 // D2
#define Driver3 0 // D3
#define Driver4 2 // D4


void wifiSetup() {

// Set WIFI module to STA mode
WiFi.mode(WIFI_STA);

// Connect
Serial.printf("[WIFI] Connecting to %s ", WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASS);

// Wait
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(100);
}
Serial.println();

// Connected!
Serial.printf("[WIFI] STATION Mode, SSID: %s, IP address: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());
}

void callback(uint8_t device_id, const char * device_name, bool state) {
Serial.printf("[MAIN] %s state: %s\n", device_name, state ? "ON" : "OFF");

if ( (strcmp(device_name, "left") == 0) ) {
// this just sets a variable that the main loop() does something about
if (state) {
digitalWrite(Driver3, HIGH);
digitalWrite(Driver4, LOW);

} else {
digitalWrite(Driver1, LOW);
digitalWrite(Driver2, LOW);
digitalWrite(Driver3, LOW);
digitalWrite(Driver4, LOW);

}
}
if ( (strcmp(device_name, "going") == 0) ) {
// this just sets a variable that the main loop() does something about
if (state) {
digitalWrite(Driver1, HIGH);
digitalWrite(Driver2, LOW);
digitalWrite(Driver3, HIGH);
digitalWrite(Driver4, LOW);

} else {
digitalWrite(Driver1, LOW);
digitalWrite(Driver2, LOW);
digitalWrite(Driver3, LOW);
digitalWrite(Driver4, LOW);

}
}
if ( (strcmp(device_name, "backing") == 0) ) {
// this just sets a variable that the main loop() does something about
if (state) {
digitalWrite(Driver1, LOW);
digitalWrite(Driver2, HIGH);
digitalWrite(Driver3, LOW);
digitalWrite(Driver4, HIGH);

} else {
digitalWrite(Driver1, LOW);
digitalWrite(Driver2, LOW);
digitalWrite(Driver3, LOW);
digitalWrite(Driver4, LOW);

}
}
if ( (strcmp(device_name, "spinning") == 0) ) {
// this just sets a variable that the main loop() does something about
if (state) {
digitalWrite(Driver1, HIGH);
digitalWrite(Driver2, LOW);
digitalWrite(Driver3, LOW);
digitalWrite(Driver4, HIGH);

} else {
digitalWrite(Driver1, LOW);
digitalWrite(Driver2, LOW);
digitalWrite(Driver3, LOW);
digitalWrite(Driver4, LOW);

}
}
}

void setup() {
// Init serial port and clean garbage
Serial.begin(SERIAL_BAUDRATE);
Serial.println("FauxMo demo sketch");
Serial.println("After connection, ask Alexa/Echo to 'turn <devicename> on' or 'off'");
pinMode(Driver1, OUTPUT);
pinMode(Driver2, OUTPUT);
pinMode(Driver3, OUTPUT);
pinMode(Driver4, OUTPUT);


// Wifi
wifiSetup();

// Fauxmo
fauxmo.addDevice("going");
fauxmo.addDevice("backing");
fauxmo.addDevice("left");

fauxmo.addDevice("spinning");

fauxmo.onMessage(callback);
}

void loop() {
fauxmo.handle();
}

코드에서

1
fauxmo.addDevice("going");

를 통해 알렉사 장치에 device를 추가해 주고,
callback 함수를 통해 해당 디바이스를 on/off 제어 한다.

Thanks to

영수~~

Reference

[1]알렉사 esp8266 SW setup adafruit 홈페이지
[2]아마존 알렉사

더듬이 로봇 (feelers robot) Line Tracing Jansen Mechanism
You need to set install_url to use ShareThis. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×