http://wm-monitoring.ru/ ')) {alert('Спасибо за то что установили нашу кнопку! =)');} else {alert('Очень жаль! =(');}"> http://wm-monitoring.ru/

IoT: как управлять устройствами с помощью Python и Raspberry Pi

  1. Нур Али
  2. Начните расти с Cloudways сегодня.

Время чтения: 4 минуты

Привет, приятели! Надеюсь, у тебя все хорошо. Сегодня я буду идти дальше, чем то, что мы делали ранее. Если вы, ребята, еще не читали предыдущий блог, кликните сюда и пройти через это. Это даст вам общее представление о том, как создать двустороннюю связь между вашим пи-узлом и веб-приложением.

В прошлый раз проект был очень простым, в котором был создан простой канал для Raspberry Pi, который отправлял значения в облачное приложение, размещенное на Cloudways. Эти значения могут поступать из любого источника, будь то датчик или сам процессор. Для целей приложения я поместил значения использования ЦП в облачное приложение.

Для целей приложения я поместил значения использования ЦП в облачное приложение

Сегодня я буду делать что-то подобное, но поток данных будет полностью изменен. Я покажу, как отправлять инструкции в Raspberry Pi из приложения, размещенного на Cloudways. Для простоты я покажу, как загораться простым светодиодом. Хотя демонстрация очень проста, этого достаточно, чтобы создать основу системы, которая могла бы управлять (включать и выключать) множество устройств. Это позволяет реализовать интеллектуальную систему устройств удаленного управления.

Итак, начнем. Есть некоторые предпосылки, так что просто возьмите свои вещи и будьте готовы.

Требования

  • Raspberry Pi B + (вы можете использовать любую версию. Просто будьте уверены в назначении контактов)
  • Простое приложение PHP Cloudways. Если у вас его нет, нажмите Вот запустить один!
  • Проволочные перемычки
  • макетировать
  • Красный, синий и зеленый светодиоды

Что происходит на веб-странице и Raspberry Pi

На веб-странице я буду использовать простую форму с 6 кнопками для управления светодиодами, подключенными к Raspberry Pi. Я сделаю REST API в нашем RPi, сделанном на Python-Flask. Затем я буду вызывать маршруты API для выполнения определенных действий. С каждым маршрутом я добавляю действие GPIO, которое включает и выключает светодиоды. Звучит слишком много? Просто держись, и я объясню.

Прежде чем приступить к написанию кода, давайте проверим некоторые настройки Raspberry Pi.

Конфигурация R-Pi

1- Raspberry Pi должен быть доступен удаленно через IP. Если нет, то может быть несколько проблем, которые можно легко исправить. Проверять, выписываться этот ссылка на сайт

2- Фреймворк Flask должен быть установлен на Raspberry Pi. Проверьте эту документацию для установки

Программа Python на Raspberry Pi

  • - SSH в ваш Raspberry Pi с вашими полномочиями.
  • - Создайте новый каталог и перейдите в него.

mkdir iot && cd iot vim remoteLed.py импорт RPi.GPIO в виде GPIO // Инициализация времени импорта GPIO GPIO.setmode (GPIO.BCM) GPIO.setwarnings (False) GPIO.setup (17, GPIO.OUT) // Инициализация выводов GPIO как вывод GPIO.setup (18, GPIO.OUT) GPIO.setup (27, GPIO.OUT) из колбы, импортирующей Flask // Импорт Flask app = Flask (__ name__) @ app.route ('/') // Простой Hello World Route def hello_world (): вернуть 'Hello, World!' @ app.route ('/ redledon') // Маршрут включения красного цвета def redledon (): GPIO.output (17, GPIO.HIGH) // Включение контакта 17 -> Красный светодиод HIGH возвращает «Красный светодиод» @ app.route ('/ redledoff') // Маршрут выключения красного цвета def redledoff (): GPIO.output (17, GPIO.LOW) возвращает «красный светодиод выключен» // Отключение контакта 17 -> красный светодиод LOW @ app .route ('/ greenledon') def greenledon (): GPIO.output (18, GPIO.HIGH) возвращает "Зеленый светодиод включен" @ app.route ('/ greenledoff') def greenledoff (): GPIO.output (18, GPIO.LOW) возвращает «Зеленый светодиод выключен» @ app.route ('/ blueledon') def blueledon (): GPIO.output (19, GPIO.HIGH) возвращает «Синий светодиод включен» @ app.route ('/ blueledoff' ) def blueledoff (): GPIO.output (19, GPIO.LOW) возвращает "синий светодиод выключен", если __name__ == "__main__": app.run ()

Запуск программы Python

- Сохранить и выйти из VIM

- Запустите вашу программу, используя следующую команду

python smartLed.py

Схемостроение

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

Все заземление подключено к (GND) выводу Rpi, который в основном действует как отрицательный или 0 вольт батареи. С другой стороны, контакты GPIO 17, 18 и 19 действуют как положительный вывод батареи. Когда сигнал ВЫСОКИЙ, светодиод загорится, а когда сигнал НИЗКИЙ, светодиод перестанет светиться.

Теперь взгляните на схему ниже:

Приложение Code for Cloudways

Вы должны изменить свой IP-адрес R-Pi в действиях кнопок. Это даст расположение кнопок, которые вы можете использовать для включения и выключения вашей схемы.

<html> <body> <title> Raspberry PI Remote Control </ title> <h1> Raspberry PI Remote Control </ h1> <form action = "http: // <your_raspberry_ip>: 5000 / redledon"> <тип ввода = "submit" value = "Красный светодиод включен"> </ form> <form action = "http: // <your_raspberry_ip>: 5000 / redledoff"> <input type = "submit" value = "Красный светодиод выключен"> </ form> <form action = "http: // <your_raspberry_ip>: 5000 / blueledon"> <input type = "submit" value = "Синий светодиод включен"> </ form> <form action = "http: // <your_raspberry_ip >: 5000 / blueledoff "> <input type =" submit "value =" Синий светодиод выключен "> </ form> <form action =" http: // <your_raspberry_ip>: 5000 / greenledon "> <input type =" submit "value =" Зеленый светодиод включен "> </ form> <form action =" http: // <your_raspberry_ip>: 5000 / greenledoff "> <input type =" submit "value =" Зеленый светодиод выключен "> </ form> </ body> </ html>

тестирование

Теперь посетите приложение. Вы увидите что-то вроде этого:

Нажмите на любое действие, и вы увидите результат на Raspberry Pi.

Это оно! Небольшая настройка, которая позволяет вам управлять устройствами из удаленного приложения.

Нур Али

Нур Али - младший инженер-программист в Cloudways. Он любит решать технические проблемы с помощью программирования и математики.

Начните расти с Cloudways сегодня.

Наши клиенты любят нас, потому что мы никогда не идем на компромисс с этими

Звучит слишком много?
Карта