Оглавление:

Температура и влажность от Arduino до Raspberry Pi: 6 шагов
Температура и влажность от Arduino до Raspberry Pi: 6 шагов

Видео: Температура и влажность от Arduino до Raspberry Pi: 6 шагов

Видео: Температура и влажность от Arduino до Raspberry Pi: 6 шагов
Видео: Raspberry Pi - Что можно сделать? Готовые проекты. Есть ли смысл? Как научиться? 2024, Ноябрь
Anonim
Температура и влажность от Arduino до Raspberry Pi
Температура и влажность от Arduino до Raspberry Pi

Отслеживание температуры и влажности важно, если у вас есть теплица или вы планируете превратить теплицу в мини-смарт-ферму.

Для моего первого Instructable я продемонстрирую, как создать прототип:

  • Подключите датчик температуры и влажности DHT11 к Arduino Mega 2560
  • Запрограммируйте Arduino на C для чтения данных датчика
  • Отображение данных о температуре и влажности на ЖК-дисплее, подключенном к Arduino
  • Дайте указание Arduino отправить данные датчика на Raspberry Pi 3 Model B +.
  • Напишите код на Python для отображения данных датчика

Зачем использовать вместе RPi и Arduino?

Соединение Arduino и RPi может обеспечить большие возможности, если вам нужен ввод-вывод, в котором Arduino превосходит Arduino, и сетевое взаимодействие / многопоточность / визуальные эффекты, с которыми RPi намного лучше.

Другими словами, мы собираемся использовать Arduino для задач с интенсивным управлением и использовать RPi для задач с интенсивными вычислениями.

Защищенные версии Arduinos доступны в Rugged-Circuits.

Шаг 1. Получение оборудования Arduino и RPi

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

Стартовый комплект Arduino (Banggood)

Стартовый комплект Arduino (Amazon, США)

Материнская плата Element14 RPi 3 B + (Amazon, США)

Корпус Raspberry Pi 3 B + (Amazon, США)

Карта Micro SD 32 ГБ (Amazon, США).

Шаг 2: Подключите DHT11 и ЖК-дисплей к Arduino

Подключите DHT11 и ЖК-дисплей к Arduino
Подключите DHT11 и ЖК-дисплей к Arduino

Шаг 3: запрограммируйте Arduino

# arduino-dht11-lcd2004

# Автор: Васу Вирапен

#https://www.instructables.com/member/VasooV/ # Считывает данные с DHT11, подключенного к Arduino, отображает на LCD2004 и отправляет данные по последовательному каналу на Raspberry Pi.

#включают

#включают

// ЖК-дисплей определяется как номер устройства 0x27 на шине I2C

LiquidCrystal_I2C lcd (0x27, 20, 4);

// DHT11 подключен к выводу 8

dht DHT; #define sensorPin 8

// Raspberry Pi подключен к Serial 0

#define serialPi Serial

void setup () {

lcd.begin (20, 4); // Инициализирует интерфейс для ЖК-экрана и задает размеры (ширину и высоту) дисплея lcd.init (); lcd.backlight (); serialPi.begin (9600); // Arduino к последовательному монитору}

void loop () {

// Считываем данные датчика

int sensorData = DHT.read11 (sensorPin); температура поплавка = температура DHT; влажность поплавка = DHT. влажность;

// Распечатать температуру

lcd.setCursor (0, 0); lcd.print («Температура»); lcd.print (температура); lcd.print («C»);

// Распечатать влажность

lcd.setCursor (0, 1); lcd.print («Влажность»); lcd.print (влажность); lcd.print ("%");

// Отправляем данные о температуре и влажности в Raspberry Pi

serialPi.print ("");

// Ждем 10 секунд

задержка (10000); }

Шаг 4: Рабочая настройка Arduino, LCD и DHT11

Рабочая настройка Arduino, LCD и DHT11
Рабочая настройка Arduino, LCD и DHT11

Шаг 5: подключите Raspberry Pi к Arduino

Подключите Raspberry Pi к Arduino
Подключите Raspberry Pi к Arduino

Шаг 6. Код Python RPi для чтения последовательных данных USB-порта

# rpi-arduino-dht11

#Raspberry Pi считывает данные датчиков температуры и влажности с Arduino

импортный серийный номер, строка, время

# В этом примере используется / dev / ttyUSB0

# В вашем случае это может измениться на / dev / ttyUSB1, / dev / ttyUSB2 и т. Д. Ser = serial. Serial ('/ dev / ttyUSB0', 9600)

# Следующий блок кода работает так:

# Если присутствуют последовательные данные, прочитать строку, декодировать данные UTF8, # … удалить символы конца строки # … разделить данные на температуру и влажность # … удалить начальный и конечный указатели () # … распечатать вывод, пока Истина: если ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookedserial.split (',') temperature = datasplit [0].strip ('') печать (температура) печать (влажность)

Рекомендуемые: