Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Agar issiqxonangiz bo'lsa yoki issiqxonangizni mini-fermer xo'jaligiga yangilash rejangiz bo'lsa, harorat va namlikni kuzatish juda muhim.
Birinchi ko'rsatma uchun men prototipni qanday yaratishni ko'rsataman:
- DHT11 harorat va namlik sensorini Arduino Mega 2560 ga ulang
- Sensor ma'lumotlarini o'qish uchun Arduino C -ni dasturlashtiring
- Arduino -ga ulangan LCD displeyda harorat va namlik ma'lumotlarini ko'rsatish
- Arduino -ga sensor ma'lumotlarini Raspberry Pi 3 Model B+ ga yuborishni buyuring
- Sensor ma'lumotlarini ko'rsatish uchun Python -ga kod yozing
Nima uchun RPi va Arduino -ni birgalikda ishlatish kerak?
Arduino va RPi ulanishi sizga Arduino -dan ustun keladigan kirish -chiqish va RPi ancha yaxshi bo'lgan tarmoq aloqasi/ko'p ishlovli/vizual tasvirlar kerak bo'lsa, katta imkoniyatlarga ega bo'lishi mumkin.
Boshqacha aytganda, biz intensiv vazifalarni boshqarish uchun Arduino -dan foydalanamiz va intensiv vazifalarni hisoblash uchun RPi -dan foydalanamiz.
Arduinosning mustahkam versiyalari Rugged-Circuits-da mavjud
1 -qadam: Arduino va RPi uskunalarini olish
Arduino -ning boshlang'ich to'plamlari mavjud va sizga har xil turdagi sensorlar va gadjetlar bilan tajriba o'tkazishga imkon beradi. Boshlang'ich to'plamni sotib olish, har xil qismlarga alohida buyurtma berish o'rniga arzonroq bo'ladi. Men quyida Banggood va Amazon US -ga ishora qiluvchi ba'zi sheriklik havolalarini berdim.
Arduino boshlang'ich to'plami (Banggood)
Arduino boshlang'ich to'plami (Amazon AQSh)
Element14 RPi 3 B+ anakart (Amazon AQSh)
Raspberry Pi 3 B+ qutisi (Amazon AQSh)
32 GB Micro SD karta (Amazon AQSh).
2 -qadam: DHT11 va LCD -ni Arduino -ga ulang
3 -qadam: Arduino -ni dasturlash
#arduino-dht11-lcd2004
#Muallif: Vasoo Veerapen
#https://www.instructables.com/member/VasooV/ #Arduino -ga ulangan DHT11 -dan ma'lumotlarni o'qiydi, LCD -2004da ko'rsatiladi va ma'lumotlarni ketma -ket Raspberry Pi -ga yuboradi.
#qo'shing
#qo'shing
// LCD displey I2C avtobusidagi 0x27 qurilma raqami sifatida aniqlanadi
LiquidCrystal_I2C lcd (0x27, 20, 4);
// DHT11 8 -pinga ulangan
DHT bilan; Sensorni aniqlang Pin 8
// Raspberry Pi 0 -seriyaga ulangan
#serialPi seriyasini aniqlang
bo'sh o'rnatish () {
lcd.begin (20, 4); // LCD displey interfeysini ishga tushiradi va lcd.init () displeyining o'lchamlarini (kengligi va balandligi) belgilaydi; lcd.backlight (); serialPi.begin (9600); // Arduino ketma -ket monitorga}
void loop () {
// Sensor ma'lumotlarini o'qing
int sensorData = DHT.read11 (sensorPin); suzish harorati = DHT.harorat; suzuvchi namlik = DHT. namlik;
// Bosib chiqarish harorati
lcd.setCursor (0, 0); lcd.print ("Harorat"); lcd.print (harorat); lcd.print ("C");
// Namlikni bosib chiqarish
lcd.setCursor (0, 1); lcd.print ("Namlik"); lcd.print (namlik); lcd.print (" %");
// Raspberry Pi -ga harorat va namlik ma'lumotlarini yuboring
serialPi.print ("");
// 10 soniya kuting
kechikish (10000); }
4 -qadam: Ishchi Arduino, LCD va DHT11ni sozlash
5 -qadam: Raspberry Pi -ni Arduino -ga ulang
6 -qadam: USB portining ketma -ket ma'lumotlarini o'qish uchun RPi Python kodi
#rpi-arduino-dht11
#Raspberry Pi Arduino -dan harorat va namlik sensori ma'lumotlarini o'qiydi
serial, qator, vaqtni import qilish
#Bu misolda /dev /ttyUSB0 ishlatiladi
#Bu sizning holatingizda/dev/ttyUSB1,/dev/ttyUSB2 va boshqalarga o'zgarishi mumkin ser = serial. Serial ('/dev/ttyUSB0', 9600)
#Quyidagi kodlar bloki shunday ishlaydi:
#Agar ketma -ket ma'lumotlar mavjud bo'lsa, satrni o'qing, UTF8 ma'lumotlarini dekodlang, #… chiziq belgilarining oxirini olib tashlang #… ma'lumotlarni harorat va namlikka bo'ling #… boshlang'ich va tugaydigan ko'rsatgichlarni olib tashlang () #… chiqishni chop eting. To'g'ri: agar ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookedserial.split (',') harorat = datasplit [0]. chiziq ('') bosma (harorat) bosma (namlik)