This commit is contained in:
Lukian 2024-10-23 22:46:16 +02:00
parent e92123ab22
commit 9a82196fd1
3 changed files with 104 additions and 84 deletions

View file

@ -6,40 +6,28 @@
-- cls()
-- console()
-- changer les valeurs qui suivent en fonction de
-- vos branchements
-- fonction permettant se s'attacher à l'écran
function attachscreen(sda, scl, i2cadd)
try (
function ()
i2c.setpins(0,sda,scl)
gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.LANDSCAPE, false, i2cadd)
gdisplay.clear()
gdisplay.setfont(gdisplay.FONT_LCD)
gdisplay.setwrap(false)
end,
-- GPIO pour I2C
local sda = 18
local scl = 19
function (where, line, error, message)
print("Couldn't attach the screen.\nError in "..where.." at "..line.." "..error..": "..message)
end,
-- adresse ecran I2C
i2cadd = 0x3C
-- configuration
local reset16 = false -- reset ecran
i2c.setpins(0,sda,scl) -- config i2C
-- ecran
if reset16 then -- reset pour l'ecran si necessaire
pio.pin.setdir(pio.OUTPUT, pio.GPIO16);
pio.pin.setlow(pio.GPIO16)
tmr.delayms(50);
pio.pin.sethigh(pio.GPIO16)
tmr.delayms(50);
function () end
)
end
pcall( function() -- pas d'erreur
gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.LANDSCAPE, false, i2cadd)
gdisplay.clear()
gdisplay.setfont(gdisplay.FONT_LCD)
gdisplay.setwrap(false)
end)
local consolepos = 0
local consoletab = {}
local consolemax = 6
local oledflip = 1
function flip()
@ -101,37 +89,46 @@ function top()
end
end
function fonts()
cls()
gdisplay.setfont(gdisplay.FONT_DEFAULT)
console("DEFAULT")
tmr.delay(5); cls()
gdisplay.setfont(gdisplay.FONT_DEJAVU18)
console("DEJAVU18")
tmr.delay(5); cls()
gdisplay.setfont(gdisplay.FONT_DEJAVU24)
console("DEJAVU24")
tmr.delay(5); cls()
gdisplay.setfont(gdisplay.FONT_UBUNTU16)
console("UBUNTU16")
tmr.delay(5); cls()
gdisplay.setfont(gdisplay.FONT_COMIC24)
console("COMIC24")
tmr.delay(5); cls()
gdisplay.setfont(gdisplay.FONT_TOONEY32)
console("TOONEY32")
tmr.delay(5); cls()
gdisplay.setfont(gdisplay.FONT_MINYA24)
console("MINYA24")
tmr.delay(5); cls()
gdisplay.setfont(gdisplay.FONT_7SEG)
console("7SEG")
tmr.delay(5); cls()
gdisplay.setfont(gdisplay.FONT_LCD)
console("LCD")
end
-- fonction permettant de dessiner une courbe selon l'humidité captée par le capteur DHT22
function displayhumi()
attachscreen(18, 19, 0x3C)
s = sensor.attach("DHT22", pio.GPIO21)
tmr.delayms(500)
width, height = gdisplay.getscreensize()
pcall( function()
cls()
console(">")
end)
values = {}
min_val = s:read("humidity")
max_val = s:read("humidity")
while true do
humi = s:read("humidity")
-- changement des valeurs min et max
if humi < min_val then min_val = humi
elseif humi > max_val then max_val = humi end
-- si le tableau est plein alors on affiche la courbe
if #values == 10 then
for i=1,9 do
values[i] = values[i + 1]
end
values[10] = humi
cls()
-- on dessine chaque partie de la courbe
for i=1,9 do
-- on dessine la partie de courbe
gdisplay.line(
{
math.floor(i/10 * width), -- coordonnée x du premier point
math.floor((values[i] - min_val)/(max_val - min_val) * (height - 10) + 5) -- valeur comprise entre la val min et la val max avec des espaces de 5px et haut et en bas
},
{
math.floor((i + 1)/10 * width), -- coordonnée x du deuxième point
math.floor((values[i + 1] - min_val)/(max_val - min_val) * (height - 10) + 5) -- valeur comprise entre la val min et la val max avec des espaces de 5px et haut et en bas
}
)
end
else
values[#values + 1] = humi
end
tmr.delayms(500)
end
end