Sensörler elektronik sistemlerin duyu organlarıdır. Hissetmek için derimizi, görmek için gözlerimizi, duymak için kulaklarımızı, tatmak için dilimizi, koku almak için burnumuzu kullanırız. Pikobrikste zaten çok sayıda duyu organı (sensör) bulunmaktadır. Ayrıca yenileri de eklenebilir. Nem, sıcaklık, ışık ve daha birçok sensörü kullanarak ortamla etkileşime girebilirsiniz. Picobrickler başka bir çevresel bileşene ihtiyaç duymadan ortam sıcaklığını ölçebilmektedir.
Ortam sıcaklığı seralarda, kuluçka merkezlerinde, ilaçların taşınması için kullanılan ortamlarda kısaca sıcaklık değişiminin sürekli izlenmesi gereken durumlarda kullanılmaktadır. Projelerinizde sıcaklık değişimi ile ilgili bir işlem yapacaksanız ortam sıcaklığının nasıl ölçüleceğini bilmelisiniz. Bu projemizde Picobricks ile ortam sıcaklığını ekranda gösterecek bir termometre hazırlayacaksınız. OLED ekran.
Proje Videosu
Ayrıntılar ve Algoritma
Picobricks'in bir DHT11 modülü vardır. Bu modül ortamdaki sıcaklık ve nemi algılayarak mikrodenetleyiciye veri gönderebilmektedir. Bu projemizde DHT11 sıcaklık ve nem sensörünün ölçtüğü sıcaklık değerlerinin OLED ekrana yazdırılması için gerekli kodları yazacağız.
Bileşenler
1X PicoBrick
Bağlantı şeması
Picobricks modüllerini kablolama olmadan kodlayabilir ve çalıştırabilirsiniz. Modülleri panodan ayırarak kullanacaksanız modül bağlantılarını grove kablolarla yapmalısınız.
PicoBricks'in MicroBlock Kodları
Projenin Microblocks kodlarına görseli Microblocks Run sekmesine sürükleyerek veya butonuna tıklayarak ulaşabilirsiniz. düğme
PicoBricks'in MicroPython Kodları
makine içe aktarma Pininden, I2C, ADC # donanım picobricklerine erişmek için
picobricks'ten SSD1306_I2C, DHT11 #oled kütüphanesini içe aktarın
utime #time kitaplığını içe aktar
#donanım picobrick'lerine erişmek için
GENİŞLİK=128
YÜKSEKLİK=64
#ağırlık ve boy pikotuğlalarını tanımlayın
sda=machine.Pin(4)
scl=machine.Pin(5)
#yollar arası iletişim için sda ve scl pinlerini tanımlıyoruz
i2c=machine.I2C(0, sda=sda, scl=scl, freq=2000000)#frekans değerlerini belirleyin
oled=SSD1306_I2C(128, 64, i2c)
pico_temp=DHT11(Pin(11))
current_time=utime.time()
Doğruyken:
if(utime.time() - current_time > 2):
current_time = utime.time()
pico_temp.measure()
oled.fill(0)#clear OLED
oled.show()
sıcaklık=pico_temp.temperature
nem=pico_temp.humidity
oled.text("Sıcaklık: ",15,10)#print "Sıcaklık: " OLED üzerinde x=15 y=10 konumunda
oled.text(str(int(sıcaklık))),55,20)
oled.text("Nem: ", 15,40)
oled.text(str(int(nem))),55,50)
oled.show()#OLED'de göster
utime.sleep(0.5)#yarım saniye bekle
PicoBricks'in Arduino C Kodları
#katmak
#katmak
#include "ACROBOTIC_SSD1306.h"
#DHTPIN 11'i tanımlayın
#define DHTTYPE DHT11
//kütüphaneyi tanımlıyoruz
DHT dht(DHTPIN, DHTTYPE);
şamandıra sıcaklığı;
//doğrulanabilir sıcaklığı tanımlayın
geçersiz kurulum() {
//dht sensörünü ve Oled ekranını tanımlıyoruz
Serial.begin(115200);
dht.begin();
Wire.begin();
oled.init();
oled.clearDisplay();
}
geçersiz döngü () {
sıcaklık = dht.readTemperature();
Seri.print("Sıcaklık: ");
Seri.println(sıcaklık);
oled.setTextXY(3,1);
oled.putString("Sıcaklık: ");
//x=3 y=1'de OLED'e "Sıcaklık:" yazdır
oled.setTextXY(4,3);
oled.putString(String(sıcaklık));
//sıcaklık sensöründen gelen değeri oled ekranına x=4 y=3 olarak yazdırıyoruz
Seri.println(sıcaklık);
gecikme(100);
}
GitHub Proje Sayfası