Databas

Den nya ljusstyrningen blir lite mer avancerad (hoppas jag) än den gamla och jag tänker ha en databas i botten. Jag vill kunna styra ljuset manuellt via en webbsida och då är det behändigt att låta skriptet som skickar ut styrsignalerna hämta sina instruktioner från en databas som styrsidan uppdaterar. Då krävs det lite mer saker som ska installeras:

sudo apt-get install mysql-server phpmyadmin python3-pip
sudo python -m pip install mysql-connector
sudo python -m pip install mysql-connector-python-rf

När installationerna är klara kör man

sudo mysql --user=root mysql

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

för att skapa ditt eget admin-konto i MySQL (byt ut username och password). Sedan kan man surfa till din_pajs_ip_adress/phpmyadmin för att hantera databasen. Jag börjar med att skapa en ny användare som heter aqua-light och anger att det ska skapas en databas med samma namn där man har fulla behörigheter.

I databasen skapar jag fyra tabeller:

  1. config
    ID av typ INT, autoincrement, primary index
    Name av typ VARCHAR(255)
    Value av typ VARCHAR(255)
  2. manual
    ID av typ INT, autoincrement, primary index
    R av typ INT
    G av typ INT
    B av typ INT
    I av typ INT
  3. automatic
    ID av typ INT, autoincrement, primary index
    Sec av typ INT
    R av typ INT
    G av typ INT
    B av typ INT
    I av typ INT
  4. basedata
    ID av typ INT, autoincrement, primary index
    H av typ INT
    M av typ INT
    S av typ INT
    R av typ INT
    G av typ INT
    B av typ INT
    I av typ INT

När jag ändå är inne i phpMyAdmin skapar jag en post i config med Name automatic och Value 0. Jag lägger även till en rad i manual med bara nollor.

Tanken är att värdet automatic i config-tabellen ska ange om ljusrampen ska köras i manuellt eller automatiskt läge. I manuellt läge läser den värdena för rött, grönt och blått samt ljusstyrkan från tabellen manual. I automatiskt läge slår den upp vilka värden som ska sättas beroende på hur många sekunder det har gått sedan midnatt. Tabellen manual kommer alltså att ha en rad och tabellen automatic kommer att ha 86400 rader. Med lite webbsidor är det tänkt att man ska kunna växla mellan manuellt och automatiskt läge samt fylla tabellen automatic beroende på hur man vill att ljuset ska växla under dagen. Tabellen basedata innehåller reglerna man har satt upp för det automatiska ljuset.

Share