- Необхідні матеріали:
- Кругова діаграма:
- Програма Raspberry Python:
- Керування світлодіодами за допомогою бота Raspberry Pi та Telegram:
Telegram - це оптимальний додаток для поєднання з Raspberry Pi для всіх наших цілей мобільного управління. Він має дуже хорошу підтримку розробників, і незабаром планується випуск безлічі функцій для підвищення ефективності роботи ботів Telegram. У нашому попередньому навчальному посібнику ми дізналися, як ми можемо встановити телеграм-бота для Raspberry Pi, а також навчилися спілкуватися з ним і ділитися зображеннями, документами та аудіофайлами.
Тепер ми перейдемо до наступного кроку, дізнавшись, як ми можемо управляти штифтами GPIO на Raspberry Pins за допомогою Telegram, щоб ми могли забезпечити певну апаратну підтримку для нашого бота. У цьому підручнику ми підключимо чотири світлодіоди до шпильок Raspberry Pi GPIO та перемкнемо їх, використовуючи природну мову (в чаті, як) від Telegram. Звучить цікаво, правда? Давайте почнемо.
Необхідні матеріали:
- Чотири світлодіоди (будь-який колір)
- Raspberry Pi (з підключенням до Інтернету)
- Макет
- Підключення проводів
Передумови:
Перш ніж продовжити підручник, переконайтеся, що ваш Raspberry Pi підключений до Інтернету, і ви можете запускати програми python на своєму Pi. Також прочитайте попередній підручник, щоб дізнатись, як налаштувати бота Telegram за допомогою Raspberry Pi Pi, оскільки я вважаю, що ви знайомі з цим матеріалом для продовження проекту.
Якщо ви новачок у Raspberry Pi, дотримуйтесь нашої статті про введення Raspberry Pi та інших посібників з Raspberry Pi.
Кругова діаграма:
Схема керування світлодіодами за допомогою Raspberry Pi та Telegram Android App - це не що інше, як чотири світлодіоди та деякі з'єднувальні дроти. Нам не будуть потрібні струмові обмежувальні резистори, оскільки шпильки Raspberry Pi GPIO працюють на 3,3 В TTL. Дотримуйтесь наведеної нижче схеми та підключіть світлодіод.
Наступна таблиця допоможе вам визначити номер контакту та номер GPIO для підключення чотирьох світлодіодів.
Світлодіодний термінал |
Номер PIN-коду |
Номер GPIO |
Зелений анод |
Контакт 31 |
GPIO 6 |
Червоний анод |
Штифт 33 |
GPIO 13 |
Жовтий анод |
Контакт 35 |
GPIO 19 |
Білий анод |
Pin 37 |
GPIO 26 |
Катод усіх чотирьох |
Контакт 39 |
Земля |
Нижче наведена схема, на якій підключено чотири світлодіоди відповідно до таблиці, наведеній вище:
Після підключення апаратне налаштування має виглядати приблизно так, як показано нижче.
Програма Raspberry Python:
Коли обладнання буде готове, ми можемо продовжувати роботу з програмою Python. У цій програмі ми повинні прочитати дані (повідомлення), надіслані від бота Telegram, і відповідно перемкнути світлодіод. Щоб зробити це більш природним, замість перевірки кожного речення та жорсткого кодування цих речень у нашій програмі ми можемо перевірити наявність слів і діяти відповідно.
Отже, програма в першу чергу перевірить наявність двох слів, вони ввімкнені та вимкнені. Виявивши одне з цих двох слів, воно буде шукати інші ключові слова, такі як білий, жовтий, зелений та червоний. Відповідний кольоровий світлодіод буде перемикатися, лише якщо слово виявлено. Ми також оновимо рядок для виявлених слів, щоб надіслати повідомлення назад до телеграм-бота.
Повна програму можна знайти в нижній частині цієї сторінки; трохи нижче я пояснив програму, розбиваючи її на маленькі значущі сміття.
Щоб ця програма працювала, нам потрібен телепот, завантажений та імпортований на нашому Raspberry Pi. У нашому попередньому підручнику ми вже завантажили телепорт всередині нашої Raspberry Pi, тому тепер нам просто потрібно імпортувати його до нашої програми разом із бібліотекою GPIO, як показано нижче.
імпортувати RPi.GPIO як GPIO імпортувати телепот з telepot.loop імпортувати MessageLoop
Ми будемо контролювати світлодіодні ліхтарі за допомогою цієї програми, і колір світлодіодів буде білим, жовтим, червоним та зеленим. Вони підключені до висновків, показаних на принциповій схемі; давайте визначимо назви контактів для цих світлодіодів на основі їх кольору, щоб він використовував їх у програмі.
білий = 26 жовтий = 19 червоний = 13 зелений = 6
Наступним кроком було б визначити всі ці світлодіодні висновки як вихідні висновки та визначити їх як вимкнені за замовчуванням, використовуючи наведені нижче рядки.
#LED Білий GPIO.setup (білий, GPIO.OUT) GPIO.output (білий, 0) # Вимкнено спочатку #LED Жовтий GPIO.setup (жовтий, GPIO.OUT) GPIO.output (жовтий, 0) # Вимкнено спочатку #LED Червоний GPIO.setup (червоний, GPIO.OUT) GPIO.output (червоний, 0) # Вимкнено спочатку #LED зелений GPIO.setup (зелений, GPIO.OUT) GPIO.output (зелений, 0) # Вимкнено спочатку
Як ми дізналися в нашому попередньому підручнику, усі дії, які повинен виконати бот Raspberry, будуть визначені всередині дії функції. Тут ми повинні змусити бота прослуховувати повідомлення, надіслане з мобільного, порівняти його з деякими ключовими словами та відповідно перемикати світлодіод.
Для кожного повідомлення, яке ми надсилаємо з мобільного, буде вказаний ідентифікатор чату та команда. Цей ідентифікатор чату потрібен програмі, щоб відповісти відправнику. Тож ми зберігаємо ідентифікатор чату та повідомлення, як показано нижче.
chat_id = msg command = msg
Тепер все, що ми надішлемо з телефону, буде збережено як рядок у команді змінної. Отже, все, що нам потрібно зробити, це перевірити ключові слова в цій змінній. У Python є команда, яка полегшує роботу тут. Наприклад, якщо нам потрібно перевірити, чи присутнє слово “on” у рядку, що зберігається у командній змінній, ми можемо просто використати наведений нижче рядок.
якщо 'on' у команді:
Подібним чином ми перевіряємо всі ключові слова, після того, як ми отримуємо “увімкнено”, ми продовжуємо перевіряти, який колір згадав користувач. Це також робиться за допомогою тих самих команд, порівнюючи однакові ключові слова. Ми також оновлюємо рядок із назвою повідомлення, на яке користувач може відповісти як повідомлення про стан.
якщо 'on' у команді: message = "Увімкнено", якщо "white" у команді: message = message + "white" GPIO. вихід (білий, 1), якщо "жовтий" у команді: message = message + "жовтий" GPIO.output (жовтий, 1), якщо "червоний" у команді: message = message + "червоний" GPIO. output (червоний, 1), якщо "зелений" у команді: message = message + "зелений" GPIO.output (зелений, 1) якщо 'all' у команді: message = message + "all" GPIO.output (білий, 1) GPIO.output (жовтий, 1) GPIO.output (червоний, 1) GPIO.output (зелений, 1) message = message + "світло (и)" telegram_bot.sendMessage (chat_id, повідомлення)
Як показано вище, ми шукаємо такі ключові слова, як „зелений”, „білий”, „червоний”, „жовтий” та „все” та „Увімкнено” саме цей світлодіод. Після завершення роботи ми надсилаємо користувачеві повідомлення про те, що щойно сталося. Цим самим методом можна добре вимкнути світло.
якщо 'вимкнено' в команді: message = "Вимкнено", якщо "біле" в команді: message = message + "біле" GPIO. вихід (білий, 0), якщо "жовтий" у команді: message = message + "жовтий" GPIO.output (жовтий, 0), якщо "червоний" у команді: message = message + "червоний" GPIO. output (червоний, 0), якщо "зелений" у команді: message = message + "зелений" GPIO.output (зелений, 0) якщо 'all' у команді: message = message + "all" GPIO.output (білий, 0) GPIO.output (жовтий, 0) GPIO.output (червоний, 0) GPIO.output (зелений, 0) message = message + "світло (и)" telegram_bot.sendMessage (chat_id, повідомлення)
Керування світлодіодами за допомогою бота Raspberry Pi та Telegram:
Підключіть світлодіоди та запустіть програму на python. Переконайтеся, що ви змінили адресу маркера для вашого бота. І починайте вводити потрібні команди. Наприклад, щоб увімкнути червоне та жовте світло, ви можете використовувати будь-яку з наведених нижче команд.
1.Увімкніть червоне та жовте світло
2.Увімкніть червоний та жовтий кольори праворуч
3. На червоному та жовтому
4.Please поклав на в жовтий і червоний світло
Як ви бачите, бот шукає лише ключові слова, а інші слова у реченні буде ігнорувати, таким чином ви зможете говорити з ним природно. Повну роботу над проектом можна знайти у відео, поданому в кінці цієї сторінки.
Вперед! зіграйте зі своїм проектом та отримайте задоволення. Зараз ви можете підняти його на абсолютно новий рівень. Завдяки поєднанню навчальних посібників ми маємо можливість контролювати будь-яке обладнання зі нашого смарт-телефону в будь-якій точці світу, а також отримувати вхідні дані / результати від нашого Raspberry Pi у формі повідомлення, аудіо, зображення та навіть як документа. Якщо ви заміните світлодіоди на реле та прилади змінного струму, то це може бути система автоматизації будинку, керована смартфоном. Отже, використовуйте свою креативність і будуйте власні круті проекти…
Сподіваюся, вам сподобався проект і сподобалося будувати щось подібне. Повідомте мене, якщо у вас виникнуть проблеми через розділ коментарів, і я буду радий вам допомогти. Також поділіться зі мною своєю крутою ідеєю і дайте нам побачити, що ми можемо побудувати.