Съдържание:

Температура и влажност от 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, за да прочетете данните от сензора
  • Покажете данните за температурата и влажността на LCD, свързан към Arduino
  • Инструктирайте Arduino да изпраща сензорните данни към Raspberry Pi 3 модел B+
  • Напишете код в Python за показване на сензорните данни

Защо да използвате RPi и Arduino заедно?

Връзката Arduino и RPi може да позволи големи възможности, ако имате нужда от I/O, в който 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+ Case (Amazon САЩ)

32GB Micro SD карта (Amazon САЩ).

Стъпка 2: Свържете DHT11 & LCD към Arduino

Свържете DHT11 & LCD към Arduino
Свържете DHT11 & LCD към Arduino

Стъпка 3: Програмирайте Arduino

#arduino-dht11-lcd2004

#Автор: Vasoo Veerapen

#https://www.instructables.com/member/VasooV/ #Прочита данни от DHT11, свързан към Arduino, показва се на LCD2004 и изпраща данни по сериен път към Raspberry Pi

#включва

#включва

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

LiquidCrystal_I2C LCD (0x27, 20, 4);

// DHT11 е свързан към пин 8

dht DHT; #дефинирайте сензора Пин 8

// Raspberry Pi е свързан към Serial 0

#define serialPi Serial

void setup () {

lcd.begin (20, 4); // Инициализира интерфейса към LCD екрана и посочва размерите (ширина и височина) на дисплея 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: RPi Python код за четене на серийните данни на 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 () cookserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookserial.split (',') температура = datasplit [0]. лентов ('') печат (температура) печат (влажност)

Препоръчано: