Vi på m älskar e-ink. Så mycket att vi senaste tiden fyllt på med massor av e-ink skärmar: https://www.m.nu/prototyping/eink-epaper

Men självklart måste vi ha ett projekt för att inspirera och visa våra kära kunder vad man kan göra med dem!

Vi ville ha ett roligt sätt att visa upp alla fantastiska omdömen vi får, både på prisjakt och även direkt via mail. Därför byggde vi en variant av en “magic 8-ball” med e-ink skärm och en månads batteritid.

Citatmaskinen visar ett slumpmässigt valt guldkorn i timmen eller varje gång någon trycker på en knapp.

Kommentarerna hämtas från en textfil på en server så vi enkelt kan lägga upp nya utan att behöva programmera om något.

Om du inte har just guldkorn du vill visa upp, kan samma projekt användas för att visa till exempel slumpmässiga citat eller peppande ord.

För detta projekt behövs:

Förberedelser:

Installera Arduino IDEn samt LOLIN EPD och Adafruit-GFX biblioteket. Du behöver även en boardmanager för din D1 mini.

Dessutom behövs en textfil som är publikt tillgänglig på en server. Helst utan HTTPS då krypteringen är jobbigare att få till.

Gör så här:

Mjukvaran:

Vi börjar med mjukvaran då vi på hårdvarusidan behöver göra några ingrepp som gör det svårare att programmera om D1 mini.

Koden finns att ladda ner på vår github och är framför allt ett hopkok av exemplen från LOLIN EPD biblioteket tillsammans med några andra projekt vi hittat på nätet.

Koden är ganska rakt fram och inte optimerad speciellt mycket. Om du önskar göra exakt som vi gjorde behöver endast två uppdateringar göras:

  1. På rad 74: byt ut “SSID” och “WIFIPASSWORD” till ditt nätverks motsvarighet
  2. På rad 89: Byt ut webbadressen till en som pekar på din textfil

Thats it! Flasha koden och provkör. I seriell-monitorn kan du kontrollera så att WiFi hittas och kopplas upp.

Textfilen skall ha ett meddelande per rad. “Rubriken” skall stå i början på raden och vara semikolonseparerad från själva meddelandet. Exempel:

TEST MESSAGE;This is a very short test message to test my awesome project

Hårdvaran:

Nu är det dags att ta tag i hårdvaran.

Börja med att löda på headers som vanligt. Vi föreslår att man löder på så kallade “hylslister” (eng. female headers) på D1 mini och batteri-shielden då det ger större frihet senare i projektet.

På TFT-shielden: klipp bort pinnen på D0 och kortslut den med D1 pinnen enligt bilden. Detta görs för att D0 på skölden används till TFT_CS signalen, men på D1 minin behöver vi använda D0 till sleepmode.

Nu rekommenderar vi att du kopplar ihop allt och testar. Om allt är korrekt skall det bara vara att koppla på ström på batteri-shielden.

Börja med att lägga D1 minin i botten. Koppla in batteri-shielden ovanpå så pinnarna är korrekt (portarna pekar åt samma håll). Fortsätt med tårtbygget och avsluta med TFT-shielden på toppen. Koppla in ena änden av skärmkabeln i batteri-shielden och andra änden i skärmen (kabelns riktning spelar ingen roll).

Efter några sekunder skall skärmen blinka till och texten “Getting new message, please wait!” borde synas upp och ner på skärmen.

Nu är projektet i princip klart. Dock vill vi kunna få någon batteritid att tala om. Därför måste vi tvinga ner D1 minin i så kallad deep sleep där den drar minimalt med ström.

För att kunna aktivera detta läge måste pinnen “RST” kortslutas med pinnen “D0” på D1 minin. I vårt exemplar fanns det en liten platta på botten för just detta ändamål, så vi satte en liten lödbrygga där istället.

Före
Efter

OBSERVERA – när “RST” och “D0” är kortslutna blir det mycket svårare att programmera om D1 mini. För att kunna göra detta måste pinne “GND” och “D3” kortslutas medan omprogrammering sker. Men vår upplevelse är att det fortfarande inte fungerar varje gång, så man får lirka lite för att få det att fungera.

Nu återstår det bara att snygga till projektet. Vi valde att slänga ihop en liten 3D-konstruktion för att hålla alla våra delar på plats. Skärmen fästs upp och ner med lite smältlim.

Tadaaa! Du har nu byggt en ståtlig display som visar dina meddelanden. Meddelandet byts ungefär en gång i timmen eller om du klickar på knappen på baksidan (som går till reset-knappen på D1 mini).