Восьмой урок из цикла «Arduino и Telegram». В нём мы научимся управлять цветами RGB светодиодной ленты при помощи telegram бота.[/vc_wp_text][/vc_column][/vc_row][vc_row id=»» color=»warning» font_color=»» hover_color=»» border_radius=»10px» box_shadow=»» block=»» close=»1″ close_memory=»2″ shadow=»0″ class=»» margin_top=»» margin_bottom=»» margin_left=»» margin_right=»» padding_top=»» padding_bottom=»» padding_left=»» padding_right=»» tab_984862461=»» tab_411412670=»» tab_1479978263=»» tab_1595777515=»» tab_1376433241=»» tab_928372326=»»][vc_column][intense_alert border_radius=»10px» close=»1″ close_memory=»2″ shadow=»0″ margin_bottom=»» tab_984862461=»» tab_411412670=»» tab_1479978263=»» tab_1595777515=»» tab_1376433241=»» tab_928372326=»» tab_900568950=»» tab_687746087=»»]Для прохождения данного урока необходимо настроить ArduinoIDE и подключить телеграм бота, как показано в первом уроке, а также уметь работать с мосфет транзисторами как во втором уроке. [/intense_alert][/vc_column][/vc_row][vc_row id=»» color=»warning» font_color=»» hover_color=»» border_radius=»10px» box_shadow=»» block=»» close=»1″ close_memory=»2″ shadow=»0″ class=»» margin_top=»» margin_bottom=»» margin_left=»» margin_right=»» padding_top=»» padding_bottom=»» padding_left=»» padding_right=»» tab_984862461=»» tab_411412670=»» tab_1479978263=»» tab_1595777515=»» tab_1376433241=»» tab_928372326=»»][vc_column][intense_alert color=»warning» border_radius=»10px» close=»1″ close_memory=»2″ shadow=»0″ margin_bottom=»» tab_984862461=»» tab_411412670=»» tab_1479978263=»» tab_1595777515=»» tab_1376433241=»» tab_928372326=»» tab_900568950=»» tab_687746087=»»]Не забывайте о технике безопасности при работе с электрическими устройствами![/intense_alert][/vc_column][/vc_row][vc_row][vc_column][vc_tta_tour][vc_tta_section title=»Компоненты» tab_id=»1532815193568-d33602e7-fe88″][vc_wp_text]Для выполнения урока понадобятся: плата nodemcu, breadboard, светодиодная лента, источник питания 12 В, соединительные провода, 3 мосфет транзистора irf3205 (для повторения урока его будет достаточно, но для больших нагрузок советую мосфет-транзистор AO3400 в корпусе sot-23. Напряжение открытия 2.5 В), 3 резистора на 100 Ом и 3 резистора на 10кОм.[/vc_wp_text][vc_gallery interval=»3″ images=»2993,2992,2991,2990,2938,2935,2915″ img_size=»full»][/vc_tta_section][vc_tta_section title=»Схема подключения» tab_id=»1532815193622-4b1eae5b-bf1c»][vc_wp_text]Схема, которую предстоит собрать, представлена на рисунке. Если не соединить землю источника питания светодиодной ленты и платы, то схема не будет исправно работать.
По даташиту irf3205 от 3.3 вольт открываться не должен, но в реальности на светодиодную ленту его хватает.
[/vc_wp_text][/vc_tta_section][vc_tta_section title=»Прошивка» tab_id=»1532815576443-34454999-53ef»][vc_wp_text]Перед тем, как вы загрузите прошивку, обратите внимание, что настройки wifi сети и бота лежат в файле secrets.h.
Прошивку можно скачать на github.
//настройки пинов
#define red 5 //D1
#define green 4 //D2
#define blue 0 //D3
//имя сети, пароль, токен бота лежат в этом файле (должен находиться в одной папке)
#include "secrets.h"
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <TelegramBot.h>
WiFiClientSecure net_ssl;
TelegramBot bot (BotToken, net_ssl);
void setup() {
Serial.begin(9600);
wifiConnect();
bot.begin();
//конфигурируем пины как цифровые выходы
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
}
void loop() {
//получаем сообщение
message m = bot.getUpdates();
//включаем нужный цвет
if (m.text.equals("Red")){
digitalWrite(red, HIGH);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
bot.sendMessage(m.chat_id, "Red strip");
}else if (m.text.equals("Green")){
digitalWrite(red, LOW);
digitalWrite(green, HIGH);
digitalWrite(blue, LOW);
bot.sendMessage(m.chat_id, "Green strip");
}else if (m.text.equals("Blue")){
digitalWrite(red, LOW);
digitalWrite(green, LOW);
digitalWrite(blue, HIGH);
bot.sendMessage(m.chat_id, "Blue strip");
}else if (m.text.equals("Purple")){
digitalWrite(red, HIGH);
digitalWrite(green, LOW);
digitalWrite(blue, HIGH);
bot.sendMessage(m.chat_id, "Purple strip");
}else if (m.text.equals("Off")){
digitalWrite(red, LOW);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
bot.sendMessage(m.chat_id, "Strip off");
}
}
void wifiConnect(){
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println(WiFi.localIP());
}
[/vc_wp_text][/vc_tta_section][vc_tta_section title=»Демонстрация работы» tab_id=»1532815691410-f7179d0c-113a»][vc_wp_text]Демонстрация работающего устройства.[/vc_wp_text][vc_video link=»https://www.youtube.com/watch?v=BSsOXbhcCI0″][/vc_tta_section][/vc_tta_tour][/vc_column][/vc_row][vc_row][vc_column][vc_wp_text]Если вы заметили какие-то ошибки или что-то показалось непонятным, буду очень рад если напишите об этом в комментариях. [/vc_wp_text][/vc_column][/vc_row]