SmartHouse

Лампа

В нашата къща светодиодът играе ролята на лампа.

В това ръководство ще ви покажем как да го направите да се включва и изключва с гласови команди.

Хардуер

  • 1x Ардуино съвместим модул esp8266
  • 1x Прототипна платка
  • 2x Проводника
  • 1x Светодиод
  • 1x 220Ω резистори

Онлайн услуги и софтуер

  • Arduino IDE
  • Adafruit
  • IFTTT

Стъпки:

Стъпка 1:

Първо ще трябва да свържете пиновете на ардуиното към пиновете на светодиода и резистора, както е показано на схемата:
• Ардуино GND към катода (късия крак) на светодиода
• Ардуино Пин D2 към единия крак на 220Ω резистор
• Анода (дългия крак) към другия крак на резистора.

Стъпка 2:

Следващата стъпка е да се влезнете в io.adafruit.com и да създадете нов feed с името LED.

Стъпка 3:

Ще трябва да създадете и нов Toggle Button във вашия dashboard. Дайте му каквото име си искате, например: LED.

Стъпка 4:

В Adafruit отиде на AIO key и копирайте вашия Active Key, ще ви трябва по-късно.

Стъпка 5:

Отворете нов ардуинo проект с името LED. Отиде на file -> Preference. В полето „additional Boards Manager URLs“ въведете: http://arduino.esp8266.com/stable/package_esp8266com_index.json

Стъпка 6:

В програмната среда на ардуино отиде на Tools -> Board -> Board Manager. Изберете ESP8266.

Стъпка 7:

В програмната среда на ардуино отиде на Tools -> Manage Libraries. Изберете Adafruit Io Arduino.

Стъпка 8:

Отворете File Explore и отворете папката на проекта. В нея създайте header файл с името config.h.

Стъпка 9:

Отвори програмната среда на Arduino. В нея се е появил един нов таб config.h. Отворете го и поставете следния код:

                
#define IO_USERNAME "твоето_потребителско_име"
#define IO_KEY      "твоят_ключ"

#define WIFI_SSID "твоят_ssid"
#define WIFI_PASS "твоята_парола_за_wifi"

#include "AdafruitIO_WiFi.h"

#if defined(USE_AIRLIFT) || defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE) || defined(ADAFRUIT_PYPORTAL)
#if !defined(SPIWIFI_SS) 
#define SPIWIFI SPI
#define SPIWIFI_SS 10 
#define NINA_ACK 9    
#define NINA_RESETN 6 
#define NINA_GPIO0 -1 
#endif
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS, SPIWIFI_SS, NINA_ACK, NINA_RESETN, NINA_GPIO0, &SPIWIFI);
#else
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
#endif
                
            

Стъпка 10:

Редактирайте кода като в полето „твоето потребителско име" сложете вашето потребителско име от adafruit, в „твоят ключ“ поставете ключа, който сте копирали по-рано, в „твоят_ssid“ поставете името на вашата мрежа, а в полето "твоята_парола_за_wifi" поставете паролата за мрежата.

Стъпка 11:

Отворете раздела LED и поставете следния код:

                        
// Правим връзка с config.h файла
#include "config.h"

// дефинираме дигитален пин D2
#define LED_PIN D2

// Правим връзка с feed LED
AdafruitIO_Feed *LED = io.feed("LED");

void setup() {
  
  pinMode(LED_PIN, OUTPUT);
  
  // Започване на серейна комуникация 
  Serial.begin(115200);

  // изчакваме да се отвори серийния монитор
  while(! Serial);

  // свърваме се с io.adafruit.com
  Serial.print("Connecting to Adafruit IO");
  io.connect();

  // Настройваме функцията handleMessage,
  // която ще се извиква всеки път, когато
  // получим нова информация от adafruit
  LED->onMessage(handleMessage);

  // Изчакваме да се свържим с adafruit
  while(io.status() < AIO_CONNECTED) {
    Serial.print(".");
    delay(500);
  }

  // Свързани сме
  Serial.println();
  Serial.println(io.statusText());
  LED->get();

}

void loop() {

  // io.run() е функция, която трябва
  // да бъде винаги най-отгоре в loop,
  // тя отговаря за обмяната на данни
  // с adafruit
  io.run();

}

// Тази функция се извиква всеки път когата,
// когата получим информация от adafruit
void handleMessage(AdafruitIO_Data *data) {

  Serial.print("received <- ");

  if(data->toPinLevel() == HIGH)
    Serial.println("HIGH");
  else
    Serial.println("LOW");


  digitalWrite(LED_PIN, data->toPinLevel());
}
                        
                    

Стъпка 12:

Отворете www.ifttt.com и влезнете с вашия имейл. Кликнете върху профилната си снимка и изберете Create.
Внимание: Имейла трябва да бъде на Gmail и да е един и същи с този, с който сте влезли в Adafruit, за да може да използвате Google Assistant.

Стъпка 13:

Изберете “THIS”, потърсете “GOOGLE ASSISTANT” и изберете “SAY A SIMPLE PHRASE”. Въвеждате дума, при която да се активира Google Assistant, примерно „Turn on the lamp”. В отговор искате да Ви каже „OK”. Когато сте готови кликвате върху “CREATE TRIGGER”.

Стъпка 14:

Изберете “That”, потърсете “Adafruit” и изберете “Send data to Adafruit IO”. Избирате „LED Feed“ и на „Data to save” пишете “ON”. Когато сте готови кликнете върху “Create action” и след това “Finish”.

Стъпка 15:

Отново кликнете върху профилната си снимка и изберете Create. След това изберете “This”, потърсете за “google assistant” и изберете “Say a simple phrase”. Въвеждаtе дума, при която да се активира Google Assistant, примерно „Turn off the lamp”. В отговор искате да Ви каже „OK”. Като сте готови кликнете върху “Create trigger”.

Стъпка 16:

Изберете “That”, потърсете “Adafruit” и изберете “Send data to Adafruit IO”. Избирате „LED Feed“ и на „Data to save” пишете “OFF”. Когато сте готови кликнете върху “Create action” и след това “Finish”.

Стъпка 17:

Готови сте! Вече имате работещ светодиод, който работи с гласови команди. Опитайте го