Индикатор погоды IoT
Скачать файл: weatherindicator.zip [1011 b] (cкачиваний: 13) Индикатор погоды IoT
 
Интернет вещей (IoT) имеет много возможностей для подключения устройств к Интернету и легко доступных данных и информации в вашем доме, чтобы сделать вашу жизнь проще и эффективнее.

Этот индикатор погоды даст вам знать, какое текущее состояние погоды и когда погодные условия меняются. Исходя из текущего состояния погоды, она будет отображать определенный цвет в облаке:

Ясная погода: Желтый цвет

Облачно: Синий цвет

Дождь: Фиолетовый цвет

Снег: Белый цвет

Это идеальный гаджет для комнат, из которых вы не можете просмотреть условия снаружи и кроме того, он является прекрасной отправной точкой для запуска других проектов интернета вещей.


Элементы:

    
корпус
    
Вата (не горючая)

    Particle Photon
    
NeoPixel 12 кольцо
    
Макетная плата
    
2 переключатели (опции)
    
Провода
    
Micro USB кабель с адаптером
    
Беспроводная сеть для подключения Particle Photon к Интернету
    
Аккаунт для Particle Photon (particle.io)
    
Аккаунт для IFTTT (ifttt.com)

Шаг 1: Сборка



Для отображения разных цветов используется Adafruit NeoPixel кольцо с 12 цифровыми светодиодами управляемых WS2812B. LED-кольцо управляется Particle Photon, который сочетает в себе мощный STM32 ARM Cortex M3 микроконтроллер и чип Cypress Wi-Fi.


Photon Particle питается через USB (используйте кабель USB Micro с адаптером для этого).

NeoPixel кольцо теперь может быть подключено к Particle PhotonМы рекомендуем использовать макетку для легкого создания прототипов, но вы также можете напрямую подключить провода к вашему Photon.

Подключите PWR на NeoPixel кольце к VIN Particle Photon.

Подключите GND на NeoPixel кольце к GND Particle Photon.

Подключите IN на NeoPixel кольце к D4 Particle Photon.



Шаг 2: Установка Particle Photon

Для работы в качестве устройства IoT, Particle Photon должен быть подключен к Wi-Fi сети и подключен к вашей учетной записи Particle.io.

При подключении к сети Wi-Fi, светодиод на Photon будет светить бирюзовым цветом.

Для программирования Photon, войдите в https://build.particle.io с учетной записью ParticleВаш Photon должен быть перечислен здесь.

Создайте новое приложение и импортировать или скопировать код, что прилагается. Единственное, что вам, возможно, нужно сделать, это удалить строку


#include "neopixel/neopixel.h"

Затем перейдите в библиотеку и добавьте библиотеку NeoPixel в приложение, которое вы только что создали, так что будет правильно распознать эту библиотеку (в противном случае он может дать вам сообщение об ошибке при компиляции кода). Она должна автоматически добавить строку


#include "neopixel/neopixel.h"

вернемся к коду.

Если вы подключили Photon, макетная плата, NeoPixel кольцо и переключатели точно так же, как на схеме в предыдущем шаге, вам не нужно ничего менять в коде.

Чтобы лучше понять код, который мы кратко пройти через него.

Определения:

Несколько цветов предопределены. Если вы хотите изменить определенный цвет, просто замените текущий цвет в части цыкла кода.
Кроме цветов, настройки NeoPixel и пин определены, а также используются пины для переключателей и определение других используемых переменных:


// Define colors (R, G, B)<br>#define PEACH 200,50,5
#define CYAN 10,150,70
#define PURPLE 180,3,180
#define BLUE 20,20,255
#define WHITE 255,255,255
#define GREEN 10,180,10
#define YELLOW 200,150,0
#define LIGHTBLUE 135,206,250
#define INDIGO 75,0,130
#define OFF 0,0,0
// IMPORTANT: Set pixel COUNT, PIN and TYPE
#define PIXEL_PIN D4
#define PIXEL_COUNT 12
#define PIXEL_TYPE WS2812B
Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);
int knop1 = D2;
int knop2 = D3;
int var_knop1 = 0;
int var_knop2 = 0;
int i = 0;
int weather = 0;
Настройка:

На этапе установки кода, пины для выключателей установлены для контроля входа. Кроме того, функция частиц "LED"  будет использоваться IFTTT для изменения цвета. Потом NeoPixel инициализируется.

void setup()<br>{
  // Declare inputs
  pinMode(knop1, INPUT_PULLDOWN);
  pinMode(knop2, INPUT_PULLDOWN);  
  // register the Particle function
  Particle.function("Led", LedAansturing);
  
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop()<br>{
  var_knop1 = digitalRead(knop1);
  var_knop2 = digitalRead(knop2);
  
  if(var_knop1 == HIGH)
  {
    // Knop AAN / CHANGE
    weather++;
    if(weather == 5)
    {
        weather = 1;
    }
    delay(500);
  }
  if(var_knop2 == HIGH)
  {
    // Knop UIT
    weather = 0;
    delay(500);
  }
  
  // weather functies
  if(weather == 1)
  {
    // RAIN
    for(i=0; i < PIXEL_COUNT; i++) {
      strip.setPixelColor(i, INDIGO);
    }
    strip.show();
  }
  
 if(weather == 2)
  {
    // SNOW  
    for(i=0; i < PIXEL_COUNT; i++) {
      strip.setPixelColor(i, WHITE);
    }
    strip.show();
  }
  
  if(weather == 3)
  {
    // CLOUDY
    for(i=0; i < PIXEL_COUNT; i++) {
      strip.setPixelColor(i, BLUE);
    }
    strip.show();
  }
  
  if(weather == 4)
  {
    // CLEAR
    for(i=0; i < PIXEL_COUNT; i++) {
      strip.setPixelColor(i, YELLOW);
    }
    strip.show();
  }
  if(weather == 0)
  {
    // OFF
    for(i=0; i < PIXEL_COUNT; i++) {
      strip.setPixelColor(i, OFF);
    }
    strip.show();
  }
}
Функция IFTTT:

Эта часть кода позволяет IFTTT изменить цвет светодиодов. На основе команды, заданной IFTTT (дождь, снег, облачно или ясно), он установит  значение. Цикл будет распознавать это изменение значения и изменит цвет светодиода соответственно.

// this function automagically shows up in IFTTT<br>int LedAansturing(String command)
{
  if(command == "RAIN")
  {
    weather = 1;
  }
  
 if(command == "SNOW")
  {
    weather = 2;
  }
  
  if(command == "CLOUDY")
  {
    weather = 3;
  }
  
  if(command == "CLEAR")
  {
    weather = 4;
  }
  if(command == "OFF")
  {
    weather = 0;
  }
}
Скачать файл: weatherindicator.zip [1011 b] (cкачиваний: 13)

Шаг 3: Настройка IFTTT для мониторинга изменений погоды
Мы используем платформу IFTTT, которая позволяет различные облачные сервисы связать друг с другом.

Войдите на IFTTT.com с вашей учетной записью IFTTT и нажмите на кнопку My Applets. Там нажмите на New Applet, чтобы связать службу погоды Particle Photon в шесть этапов. Мы расскажем, как настроить функцию для дождя, вы можете пройти через те же шаги, чтобы настроить условия погоды снег, облачно и ясно.

Шаг 1: Выберите услугу.
 
На экране появится "if this then that'. Нажмите на выделенный "that", чтобы продолжить выбирать услугу.

Услуга Weather Underground может отслеживать текущее состояние погоды, так что выбирайте Weather Underground.

Шаг 2: Trigger
 
Выберите триггер "Current condition changes to (Текущие изменения условий на )' и выберите Rain в "Current Condition".

Шаг 3: Action service
 
На экране появится "'if this then that" еще раз. Выберите highlighted что для продолжения.

Для службы действий мы будем использовать Particle. При нажатии на Particle может попросить вас войти в систему, используйте учетную запись Particle здесь, чтобы подключить его к IFTTT.

Шаг 4: Выберите действие
 
Это действие, которое мы хотим выбрать в Particle, чтобы выполнить вызов функции

Шаг 5: Заполните поля действий
 

Шаг 6: Summary








{poster_avatar}  admin
2 353