diff --git a/BME280-BMP280-snippets.ino b/BME280-BMP280-snippets.ino new file mode 100644 index 0000000..5e301af --- /dev/null +++ b/BME280-BMP280-snippets.ino @@ -0,0 +1,34 @@ +// BME280: Suche in Arduino Libraries nach BME280 und installiere Adafruit BME280 +// BMP280: Suche in Arduino Libraries nach BMP280 und installiere Adafruit BMP280 + +// kopiere in die jeweils entsprechenden Funktionen in ui.ino + +#include +#include +#include +#include + +#define SEALEVELPRESSURE_HPA (1013.25) + +Adafruit_BME280 bme; // BME280 +//Adafruit_BMP280 bmp; // BMP280 + +void setup() { + bme.begin(0x76); + //bmp.begin(0x76); +} + +void loop() { + int temp = bme.readTemperature(); + int pressure = bme.readPressure() / 100.0F; + int humidity = bme.readHumidity(); + + //int temp = bmp.readTemperature(); + //int pressure = bmp.readPressure() / 100.0F; + + // Label (oder andere Text-Elemente) + lv_label_set_text(ui_Label1, String(pressure).c_str()); + + // Bar / Arc (alles mit Werten) + lv_bar_set_value(ui_Bar1, humidity, LV_ANIM_ON); // oder LV_ANIM_OFF +} diff --git a/README.md b/README.md index e6fa026..80b2757 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,137 @@ # squareline-howtos +## Arduino Board + +![](pico-embed.png) + +## Squareline - Arduino Verknüpfung + +Namen in Squareline benutzt man in Arduino mit dem Vorsatz ui_. + +Squareline: LabelTemp +Arduino: ui_LabelTemp + +Um den Text in einem Label zu aktualisieren ruft man eine Funktion auf. + +```c++ + +// Text +lv_label_set_text(ui_LabelTemp, "Hallo Welt!"); + +// Numerische Werte +lv_label_set_text(ui_LabelTemp, String(25).c_str()); + +// Numerische Werte aus Variable +int temperature = bme.readTemperature(); +lv_label_set_text(ui_LabelTemp, String(temperature).c_str()); + + +``` + +Welche Funktion man nutzen muss findet man hier: https://docs.lvgl.io/master/widgets/index.html + +Es gibt für jedes Widget eine eigene Funktion. + +## Screenshots + +![alt text]() + +![alt text]() + +![alt text]() + +## Snippets + +### BME280 / BMP280 + +```c++ +// BME280: Suche in Arduino Libraries nach BME280 und installiere Adafruit BME280 +// BMP280: Suche in Arduino Libraries nach BMP280 und installiere Adafruit BMP280 + +// kopiere in die jeweils entsprechenden Funktionen in ui.ino + +#include +#include +#include +#include + +#define SEALEVELPRESSURE_HPA (1013.25) + +Adafruit_BME280 bme; // BME280 +//Adafruit_BMP280 bmp; // BMP280 + +void setup() { + bme.begin(0x76); + //bmp.begin(0x76); +} + +void loop() { + int temp = bme.readTemperature(); + int pressure = bme.readPressure() / 100.0F; + int humidity = bme.readHumidity(); + + //int temp = bmp.readTemperature(); + //int pressure = bmp.readPressure() / 100.0F; + + // Label (oder andere Text-Elemente) + lv_label_set_text(ui_Label1, String(pressure).c_str()); + + // Bar / Arc (alles mit Werten) + lv_bar_set_value(ui_Bar1, humidity, LV_ANIM_ON); // oder LV_ANIM_OFF +} + +``` + +### TSL2591(1) + +```c++ + +// Suche in Arduino Libraries nach TSL2591 und installiere Adafruit TSL2591 +// kopiere in die jeweils entsprechenden Funktionen in ui.ino + +#include +#include +#include "Adafruit_TSL2591.h" + +Adafruit_TSL2591 tsl = Adafruit_TSL2591(2591); + +void setup(){ + tsl.begin() + tsl.setGain(TSL2591_GAIN_MED); + tsl.setTiming(TSL2591_INTEGRATIONTIME_100MS); +} + +void loop(){ + int lux = tsl.getLuminosity(TSL2591_VISIBLE); + + // Label (oder andere Text-Elemente) + lv_label_set_text(ui_Label1, String(lux).c_str()); + + // Bar / Arc (alles mit Werten) + lv_bar_set_value(ui_Bar1, lux, LV_ANIM_ON); // oder LV_ANIM_OFF +} + + +``` + +```c++ + +// kopiere in die jeweils entsprechenden Funktionen in ui.ino +// um analogRead benutzen zu können, muss man das Board "Pico (Arduino MBED)" auswählen + +void setup(){ +} + +void loop(){ + int moisture_raw = analogRead(A0); + int moisture_mapped = map(moisture_raw, 800, 300, 0, 100); + int moisture = constrain(moisture_mapped, 0, 100); + + // Label (oder andere Text-Elemente) + lv_label_set_text(ui_Label1, String(moisture).c_str()); + + // Bar / Arc (alles mit Werten) + lv_bar_set_value(ui_Bar1, moisture, LV_ANIM_ON); // oder LV_ANIM_OFF +} + +``` \ No newline at end of file diff --git a/Soil-Moisture-Sensor.ino b/Soil-Moisture-Sensor.ino new file mode 100644 index 0000000..8710260 --- /dev/null +++ b/Soil-Moisture-Sensor.ino @@ -0,0 +1,19 @@ +// kopiere in die jeweils entsprechenden Funktionen in ui.ino + +// um analogRead benutzen zu können, muss man das Board "Pico (Arduino MBED)" auswählen + +void setup(){ +} + +void loop(){ + int moisture_raw = analogRead(A0); + int moisture_mapped = map(moisture_raw, 800, 300, 0, 100); + int moisture = constrain(moisture_mapped, 0, 100); + + // Label (oder andere Text-Elemente) + lv_label_set_text(ui_Label1, String(moisture).c_str()); + + // Bar / Arc (alles mit Werten) + lv_bar_set_value(ui_Bar1, moisture, LV_ANIM_ON); // oder LV_ANIM_OFF +} + diff --git a/TSL2591-snippets.ino b/TSL2591-snippets.ino new file mode 100644 index 0000000..d660f6c --- /dev/null +++ b/TSL2591-snippets.ino @@ -0,0 +1,25 @@ +// Suche in Arduino Libraries nach TSL2591 und installiere Adafruit TSL2591 +// kopiere in die jeweils entsprechenden Funktionen in ui.ino + +#include +#include +#include "Adafruit_TSL2591.h" + +Adafruit_TSL2591 tsl = Adafruit_TSL2591(2591); + +void setup(){ + tsl.begin() + tsl.setGain(TSL2591_GAIN_MED); + tsl.setTiming(TSL2591_INTEGRATIONTIME_100MS); +} + +void loop(){ + int lux = tsl.getLuminosity(TSL2591_VISIBLE); + + // Label (oder andere Text-Elemente) + lv_label_set_text(ui_Label1, String(lux).c_str()); + + // Bar / Arc (alles mit Werten) + lv_bar_set_value(ui_Bar1, lux, LV_ANIM_ON); // oder LV_ANIM_OFF +} + diff --git a/pico-embed.png b/pico-embed.png new file mode 100644 index 0000000..47aa940 Binary files /dev/null and b/pico-embed.png differ