Geen toegang tot mysql database bij nieuwe Raspbian installatie op Raspberry Pi

Nieuwe installaties van mysql (suo apt-get install mysql-server) regelen de authenticatie op een andere manier dan voorheen: er wordt niet meer tijdens de installatie gevraagd naar een ‘database administrator user’. In plaats daarvan wordt gebruik gemaakt van ‘local unix authorization’. Het effect is, dat je oeverloos op zoek kunt naar de oorzaak van de foutmelding mysql - ERROR 1698 (28000): Access denied for user 'root'@'localhost', en via omwegen zonder enig effect het wachtwoord van de root user kunt wijzigen, of de installatie helemaal opnieuw doen en tot de conclusie komen dat er nog stééds niet om een wachtwoord wordt gevraagd. De oplossing is simpel, echter: wijzig het account van de root gebruiker zodat deze van een los wachtwoord gebruikt maakt, en voeg de normale pi user toe aan de mysql installatie:

$ sudo mysql -u root

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

$ service mysql restart

en toevoegen pi user aan toegangsrechten:

$ sudo mysql -u root

mysql> USE mysql;
mysql> CREATE USER 'pi'@'localhost' IDENTIFIED BY '';
mysql> GRANT ALL PRIVILEGES ON * . * TO 'pi'@'localhost';
mysql> UPDATE user SET plugin='auth_socket' WHERE User='pi';
mysql> FLUSH PRIVILEGES;
mysql> exit;

$ service mysql restart

Apple event op dinsdag 12 september 19.00 (NL tijd)

Aan de uitnodiging vallen een aantal zaken op:

  • Gebruik van heldere tinten, in de kleuren blauw, rood en wit. Amerikaanse vlag? Productie van Apple producten of diensten vanuit de VS in plaats van China? Of viering van het 10-jarige bestaan van de iPhone?
  • Heldere kleuren, nieuwe beeldtechnologie? OLED?
  • Rechthoekige, afgeronden vormen met verhoudingen die lijken op een iPhone. Nieuw model iPhone? Ik zie er overigens drie (het rode vlak heeft rechtsonder een onverwachte afbuiging, hetgeen suggereert dat er twee iPhones op elkaar liggen, de bovenste kleiner dan de onderste).
  • In het nieuwe Steve Jobs Theater. Da’s mooi, een ruimte vernoemd naar de overleden baas van Apple. Zeker als bij introductie van de oorspronkelijke iPhone in 2007 wordt stilgestaan. Ik weet dat me dat in 2007 wel maanden heeft beziggehouden.

Het evenement is om 19.00 en normaliter is het live te volgen vanaf een Apple TV, iPad, iPhone of Mac. Apple heeft hiervoor deze placeholder gereserveerd. Uiteraard hebben de blogs ook de nodige berichtgeving:

Het gevalletje bedrijfsspionage waar Apple afgelopen week mee te maken heeft gekregen is toch een beetje alsof je stukken van het script van Jochem Meyjers nieuwe theatershow te zien krijgt. Gelukkig is de media overwegend terughoudend om al te veel ‘clues’ te lekken, zodat ik nog steeds uitkijk naar het live event. Ik ben ook erg benieuwd welk verhaal er achter de bedrijfsspionage vandaan komt. Niemand wordt er beter van, zeker de betreffende medewerker van Apple niet.

WS2812 displays als samengesteld display gebruiken met NodeMCU

Met de komst van de WS2812 individueel-adresseerbare RGB leds ontstaat de mogelijkheid om displays te maken in elk gewenst formaat. Op dit moment zijn displaymodules te koop met afmetingen 2×2, 4×4 en 8×8 WS2812 leds met afmetingen van 15x15mm, 30x30mm en 71x71mm die onderling kunnen worden doorgelust om een groter geheel te maken. De leds hebben een individueel volgnummer, genummerd 1 tot aantal modules x aantal leds per module.

In de afbeelding hierboven zijn 8 WS2812-ledmodules van 8×8 leds aaneengeschakeld tot een groter display. De led linksboven in de eerste module heeft nummer 1, de led linksboven in de tweede module heeft 65, enzovoorts. Het omrekenen van een  coördinatenpaar (x, y) naar een led-volgnummer gaat als volgt:

function toLineair(x, y)
  boardNumber = math.floor((y - 1) / boardHeight) * boardsWide + math.floor((x - 1) /   boardWidth)
  boardX = x - math.floor((x - 1) / boardWidth) * boardWidth
  boardY = y - math.floor((y - 1) / boardHeight) * boardHeight
  linPos = boardNumber * ledsPerBoard + (boardY - 1) * boardHeight + boardX
  return linPos
end

De programma’s en documentatie zijn te vinden op GitHub: https://github.com/rudiniemeijer/NodeMCU-Lua-WS2812-matrix-displays

Test PIR sensor

ledpen = 0 -- D0/GPIO16

gpio.mode(ledpen, gpio.OUTPUT)
gpio.write(ledpen, gpio.HIGH) -- led uitzetten
pirsensorpen = 2 -- D2/GPIO4
gpio.mode(pirsensorpen, gpio.INT, gpio.PULLUP)

function beweging()
 print("PIR sensor detecteerde beweging")
 gpio.write(ledpen, gpio.LOW) -- led AAN
 tmr.alarm(0,2000, tmr.ALARM_SINGLE, function()
 gpio.write(ledpen, gpio.HIGH) -- led UIT na 2s
 end)
end

-- Roep de functie aan als het signaal begint ("up")
gpio.trig(pirsensorpen, "up", beweging)