Byg en vejrstation med skærm, uden lodning

Illustration: Byg en vejrstation med skærm, uden lodning

Her bygger du en lille vejrstation, der viser temperatur, luftfugtighed, lufttryk og luftkvalitet på en skærm. Alle dele klikkes sammen med kabler, så du skal hverken lodde eller bruge breadboard. Den kan stå på skrivebordet, i soveværelset eller i værkstedet, og den har WiFi, når du vil sende målingerne videre.

Det skal du bruge

Strøm fra en USB-C-oplader eller computeren.

537,75 kr.Samlet, inkl. moms

Har du allerede nogle af delene? Fjern fluebenet.

Derudover skal du bruge et USB-C-kabel og en computer eller en USB-oplader, du har i forvejen.

Sådan virker det

Hjernen er QT Py’en, et ESP32-S2-kort på knap 22 × 18 mm med WiFi og et STEMMA QT-stik. Stikket er en I2C-bus med fire ledninger: strøm, jord, data og clock. Hver enhed på bussen har sin egen adresse, så flere enheder kan dele de samme fire ledninger. Derfor kan du sætte sensor og skærm i kæde efter hinanden.

BME680-sensoren måler temperatur, luftfugtighed og lufttryk. Den har også en lille opvarmet gassensor, der reagerer på flygtige organiske stoffer (VOC) i luften, fx fra madlavning, rengøringsmidler eller mange mennesker i et lille rum. Den giver en samlet værdi og kan ikke skelne mellem gasserne, så brug den til at se tendenser. Skærmen er en 0,96″ OLED med 128 × 64 pixels. Det øverste bånd lyser gult og resten blåt, så overskriften kan stå i gult og tallene i blåt.

Sådan bygger du det

  1. Sæt det korte STEMMA QT-kabel i QT Py’en og i det ene STEMMA QT-stik på BME680-kortet. Kablet er ens i begge ender, og stikkene kan kun vende én vej.
  2. Sæt Grove-enden af det andet kabel i skærmen og STEMMA QT-enden i BME680-kortets andet stik. Nu hænger alle tre dele på samme bus.
  3. Installer Arduino IDE, som er gratis, og tilføj ESP32-kortpakken, så du kan vælge QT Py ESP32-S2 som kort. Vil du hellere skrive Python, kan du lægge CircuitPython på kortet i stedet.
  4. Installer biblioteket Adafruit BME680 og et skærmbibliotek, der kan styre SSD1315-chippen, fx U8g2. QT-stikket sidder på kortets anden I2C-port, så tjek i Adafruits guide til QT Py ESP32-S2, hvordan du vælger den i koden. Kør gerne en I2C-scanner først og se, at både sensor og skærm svarer.
  5. Start med eksemplet fra BME680-biblioteket og se målingerne i Serial Monitor. Flyt dem derefter over på skærmen, fx temperatur og fugt i store tal og tryk og luftkvalitet i små.
  6. Lad sensoren køre i et par døgn, før du stoler på luftkvaliteten. Adafruit anbefaler 48 timers indkøring første gang og cirka en halv times opvarmning, hver gang den har været slukket. Placér sensoren lidt væk fra QT Py’en, da varmen fra kortet kan trække temperaturen op.

Byg videre

  • Send målingerne til Home Assistant over WiFi. ESPHome understøtter BME680, så du kan slippe for at skrive WiFi-koden selv.
  • Gem en måling i kvarteret og tegn en lille graf over lufttrykket det seneste døgn. Et faldende tryk varsler ofte dårligere vejr.
  • Brug knappen på QT Py’en til at skifte mellem flere skærmsider, eller lad skærmen slukke om natten.
  • Byg et lille kabinet med lufthuller, gerne 3D-printet, så sensoren mærker rumluften og ikke luften inde i kassen.

Sidder du fast? Vi hjælper gratis med kode og opsætning. Skriv til [email protected].

Robotbil, der selv undgår forhindringer

Illustration: Robotbil, der selv undgår forhindringer

Robotbilen kører selv rundt på gulvet og drejer væk, når den nærmer sig en væg eller et stoleben. Byggesættet kræver ingen lodning, og det er et godt projekt for en forælder og et barn en weekend. Bagefter kan I programmere den videre i Arduino IDE og give den nye kunster.

Det skal du bruge

Kræver 6 AA-batterier (medfølger ikke).

1.008,95 kr.Samlet, inkl. moms

Har du allerede nogle af delene? Fjern fluebenet.

Bilen kører på 6 AA-batterier, som ikke følger med. Holderen til dem ligger i kassen. Du skal også bruge en computer til at overføre programmer med det medfølgende USB-kabel.

Sådan virker det

Foran sidder en HC-SR04-ultralydssensor på en lille servomotor. Sensoren sender et kort lydpip, der er for højt til, at vi kan høre det, og måler, hvor lang tid ekkoet er om at komme tilbage. Ud fra tiden regner kortet afstanden ud. Den kan måle fra et par centimeter og op til omkring fire meter.

Et typisk program til at undgå forhindringer gør sådan: Er der fri bane, kører bilen ligeud. Kommer den for tæt på noget, stopper den, servoen drejer sensoren til venstre og højre, og bilen vælger den side, hvor der er mest plads. De fire metalmotorer styres af et motorshield, så hjulene i hver side kan køre frem eller tilbage. Når bilen drejer, kører den ene side frem og den anden tilbage, ligesom en kampvogn.

Sådan bygger du det

  1. Pak delene ud og pil beskyttelsesfilmen af akrylpladerne. Læg skruer og små dele i en skål, og hold dem væk fra mindre søskende.
  2. Følg Keyestudios monteringsvejledning trin for trin: motorer og hjul på bundpladen, derefter kort, motorshield, sensorer og topplade. Alt samles med skruer og stik.
  3. Tjek ledningerne mod diagrammet i vejledningen, før du tænder. Motorerne skal have strøm fra batterierne, for USB-kablet alene kan ikke trække dem.
  4. Installer Arduino IDE, som er gratis, og forbind bilen til computeren med USB-kablet. Sættet har 15 projekter, der går fra det enkle til det mere avancerede. Tag dem i rækkefølge, så lærer I én del ad gangen.
  5. Når I når til projektet med forhindringer, så byg en bane af skotøjsæsker på gulvet og se, hvordan bilen reagerer. Hold den væk fra trapper. Sensoren kigger fremad og ser ikke, at gulvet forsvinder.
  6. Prøv også de andre funktioner: IR-fjernbetjeningen, styring fra mobilen over Bluetooth med en app til Android eller iPhone, og LED-ansigtet på fronten.

Byg videre

  • Tegn jeres egne ansigter på LED-matrixen med 8 × 16 punkter, fx et glad ansigt, når vejen er fri, og et overrasket, når bilen skal dreje.
  • Brug linjefølgersensoren til at få bilen til at følge en sort tapestribe, som I sætter på gulvet.
  • Skru op og ned for hastigheden og afstanden, hvor bilen reagerer, og find ud af, hvad der virker bedst på jeres gulv.
  • Lav en følg-mig-funktion, hvor bilen holder en fast afstand til din hånd og kører efter den.

Sidder I fast? Vi hjælper gratis med kode og opsætning. Skriv til [email protected].

E-ink-dashboard til væggen

Illustration: E-ink-dashboard til væggen

En e-ink-skærm på væggen i entréen kan vise dagens aftaler, vejret og hvornår bussen går. Skærmen lyser ikke og ligner tryk på papir, så den forstyrrer ikke om aftenen. Den beholder billedet uden strøm og bruger kun strøm, når billedet skifter.

Det skal du bruge

735,85 kr.Samlet, inkl. moms

Har du allerede nogle af delene? Fjern fluebenet.

Strømmen kommer gennem kortets USB-C-stik, fx fra en telefonoplader, du har i forvejen. Du skal også have WiFi og en computer med Arduino IDE.

Sådan virker det

E-paper består af små kapsler med sorte og hvide partikler, som et elektrisk felt trækker op eller ned. Når billedet er tegnet, bliver partiklerne liggende, også når strømmen er væk. Panelet er 5,83 tommer med 648 × 480 pixels i sort og hvid. En fuld opdatering tager cirka 3,5 sekunder og en hurtig cirka 1,5 sekunder. Det er for langsomt til video, men fint til en skærm, der skifter hvert kvarter.

ESP32-kortet henter data over WiFi, tegner siden og sender den til panelet over SPI. Adapterkortet sidder imellem og laver de spændinger, panelet skal bruge for at skifte billede. Mellem opdateringerne kan ESP32’en gå i dyb søvn, så den næsten intet bruger.

Sådan bygger du det

  1. Sæt adapterkortet på ESP32-kortet. Skub derefter panelets tynde fladkabel forsigtigt helt ind i adapterens 24-polede stik, og bøj det ikke skarpt. Tjek i GooDisplays dokumentation, hvilken vej kablet skal vende, og hvordan den lille DIP-kontakt på adapteren skal stå til dit panel.
  2. Installer Arduino IDE og ESP32-kortpakken. Tilslut kortet med USB-C og upload et lille testprogram, så du ved, at forbindelsen virker.
  3. Installer et e-paper-bibliotek, fx GxEPD2. Vælg den driver, der passer til panelet (GDEY0583T81 med UC8179-chippen), og sæt SPI-benene, så de passer til kortet. GooDisplays eksempelkode til kortet viser, hvilke ben der bruges.
  4. Kør et af bibliotekets eksempler. Står der tekst på skærmen, er driver og ben rigtige.
  5. Skriv dit eget program: forbind til WiFi, hent data fra fx en vejrtjeneste med åbent API, et iCal-link til din kalender eller Home Assistant, og tegn siden. Brug store skrifttyper til det vigtigste, for skærmen skal kunne læses på afstand.
  6. Lad kortet sove mellem opdateringerne, fx et kvarter ad gangen. Brug hurtig opdatering i løbet af dagen og en fuld opdatering engang imellem, så der ikke hober sig svage skygger op af gamle billeder.

Panelet er beregnet til 0 til 50 °C, så det hører til indendørs.

Byg videre

  • Vis data fra Home Assistant, fx temperaturen ude, om et vindue står åbent, eller hvornår skraldet hentes.
  • Brug delvis opdatering, som tager omkring en tredjedel sekund, til et ur i hjørnet, uden at hele skærmen blinker.
  • Byg skærmen ind i en dyb billedramme, så elektronikken gemmer sig bag passe-partoutet.
  • Sæt en ved døren til mødelokalet på kontoret og vis dagens bookinger.

Sidder du fast? Vi hjælper gratis med kode og opsætning. Skriv til [email protected].

Stemningslampe med NeoPixels og drejeknap

Illustration: Stemningslampe med NeoPixels og drejeknap

Her bygger du en lille lampe med en ring af 12 farvede LED’er, som du styrer med en drejeknap. Drej for at skifte farve, og tryk på knappen for at skifte mellem fx fast farve, langsom regnbue og et flakkende stearinlys. Det er et godt første projekt med lidt lodning, og lampen kan stå i reolen bagefter.

Det skal du bruge

Kræver lidt lodning: tre ledninger til LED-ringen.

367,75 kr.Samlet, inkl. moms

Har du allerede nogle af delene? Fjern fluebenet.

Du skal også bruge en loddekolbe og lidt loddetin, en lille skævbider til at afisolere med og et USB-C-kabel med en oplader eller computer, du har i forvejen.

Sådan virker det

NeoPixel-ringen har 12 RGB-LED’er, og hver LED har sin egen lille driverchip. Alle farverne sendes over én dataledning. Den første LED tager sin farve og sender resten videre til den næste. Derfor bruger ringen kun ét ben på QT Py’en, ud over strøm og jord.

Drejeknappen sidder på et lille kort med sin egen mikrocontroller. Den holder styr på klik og tryk og giver tallet videre over I2C, når QT Py’en spørger. Du slipper altså for selv at skrive kode til afprelning og interrupts. Kortet kobles til QT Py’ens STEMMA QT-stik med et kabel, uden lodning, og har sin egen NeoPixel, som du kan bruge til at vise den valgte tilstand.

Sådan bygger du det

  1. Lod de løse stiftlister på QT Py’en, så du kan sætte jumperledninger på den.
  2. Klip han-enden af tre jumperledninger, afisolér et par millimeter og lod dem på ringens pads til 5V, GND og data ind. Brug den data-pad, der er mærket som input, ikke output.
  3. Sæt hun-enderne på QT Py’ens 5V-ben, et GND-ben og et ledigt GPIO-ben til data. Notér, hvilket ben du brugte, for det skal stå i koden.
  4. Forbind drejeknap-kortet til QT Py’ens STEMMA QT-stik med det korte kabel.
  5. Programmér den i Arduino IDE med en kortpakke til RP2040 og bibliotekerne Adafruit NeoPixel og Adafruit seesaw, eller brug CircuitPython. QT-stikket sidder på kortets anden I2C-port, så tjek i Adafruits guide til QT Py RP2040, hvordan du vælger den i koden. Start med bibliotekernes eksempler, og prøv ringen og drejeknappen hver for sig.
  6. Kobl dem sammen: lad drejeknappens position styre farvetonen. Adafruit NeoPixel har funktionen ColorHSV, som laver en farve ud fra en farvetone, så hvert klik kan flytte farven et stykke rundt i farvehjulet.
  7. Sæt lysstyrken til cirka en fjerdedel. En NeoPixel kan trække omkring 60 mA ved fuld hvid, så hele ringen kan komme over 700 mA. Det er mere, end en almindelig USB-port på en computer skal levere, og det er alligevel for skarpt til en stemningslampe.

Byg videre

  • Sæt ringen under et matteret glas, en skærm af bagepapir eller et 3D-printet hus i hvidt materiale, så lyset bliver blødt.
  • Lav en natlampe-tilstand, der dæmper lyset langsomt ned over 20 minutter og slukker.
  • Brug et langt tryk på knappen til at slukke og tænde, og et kort tryk til at skifte tilstand.
  • Kæd en ring mere på. Ringens data ud kan forbindes til næste rings data ind, og det kræver stadig kun ét ben.

Sidder du fast? Vi hjælper gratis med kode og opsætning. Skriv til [email protected].

Meshtastic: send beskeder uden mobilnet

Illustration: Meshtastic: send beskeder uden mobilnet

Med to MeshPockets og Meshtastic kan I skrive beskeder til hinanden, hvor der ikke er mobildækning. Det er nyttigt i sommerhuset, på sejlbåden, på festival eller på en vandretur, og som reserve hvis mobilnettet falder ud. Der skal hverken loddes eller programmeres, det er ren opsætning.

Det skal du bruge

2.727,90 kr.Samlet, inkl. moms

Har du allerede nogle af delene? Fjern fluebenet.

Hver person skal have en smartphone med Bluetooth og Meshtastic-appen. Du lader enhederne op med et USB-C-kabel og en oplader, du har i forvejen.

Sådan virker det

LoRa er en radioteknik, der sender små mængder data langsomt, men langt, og med meget lidt strøm. Meshtastic er open source-software, der bruger LoRa til at lave et mesh-netværk. Hver enhed modtager beskeder og sender dem videre, så en besked kan hoppe fra enhed til enhed og nå længere end den direkte rækkevidde. Telefonen taler med MeshPocket’en over Bluetooth, og du skriver i appen som i en almindelig beskedapp. Selve beskeden går over radio, ikke over mobilnettet eller internettet.

Rækkevidden afhænger meget af terræn og højde. Fri sigt over vand eller fra et højt punkt giver langt. Bygninger, skov og bakker trækker ned. MeshPocket’en har en LoRa-radio, Bluetooth, en lille e-ink-skærm og et batteri på 5000 mAh. Den er samtidig en magnetisk Qi2-powerbank, så den kan lade din telefon trådløst på turen.

Sådan bygger du det

  1. Lad begge MeshPockets helt op med USB-C.
  2. Installer Meshtastic-appen på telefonerne. Den findes til både Android og iPhone.
  3. Tænd den første enhed og forbind den til telefonen over Bluetooth fra appen. Appen beder typisk om en pinkode, som står på enhedens skærm.
  4. Vælg regionen EU_868 i appens radioindstillinger. Det er det frekvensbånd, der bruges i Danmark og resten af EU, og enheden sender ikke, før regionen er sat.
  5. Giv enheden et navn, så de andre kan se, hvem der skriver. Gentag det hele med den anden enhed.
  6. Send en testbesked. Standardkanalen kan læses af alle med Meshtastic i nærheden, så opret jeres egen kanal med en hemmelig nøgle til private beskeder. Den kan deles mellem telefonerne som en QR-kode.
  7. Gå en tur med den ene enhed og find ud af, hvor langt I når i jeres eget terræn.

Batteriet er et lithium-batteri. Lad derfor ikke enhederne ligge i en varm bil eller i direkte sol, og lad dem op mindst hver tredje måned, når de ligger i skuffen.

Byg videre

  • Sæt en tredje Meshtastic-enhed fast højt oppe, fx i et vindue på første sal eller i masten, så den kan sende beskeder videre for hele området.
  • Lav en fælles kanal med naboerne i sommerhusområdet eller med resten af båden i havnen.
  • Lad appen dele telefonens position, så I kan se hinanden på kortet.
  • Hold øje med nye firmwareversioner. Meshtastics dokumentation beskriver, hvordan du opdaterer.

Sidder du fast? Vi hjælper gratis med opsætningen. Skriv til [email protected].

Bevægelsesalarm, der sender besked til mobilen

Illustration: Bevægelsesalarm, der sender besked til mobilen

Med en PIR-sensor og et lille ESP32-kort kan du bygge en alarm, der giver dig besked på mobilen, når nogen går ind i skuret, garagen eller kælderen. Den kan også bippe på stedet. Du skal ikke lodde, kun sætte jumperledninger på, og det er et godt første skridt ind i hjemmeautomatisering.

Det skal du bruge

Strøm fra en USB-C-oplader.

208,70 kr.Samlet, inkl. moms

Har du allerede nogle af delene? Fjern fluebenet.

Derudover skal du bruge en USB-C-oplader, som du sikkert har i forvejen, og et WiFi-net, som kortet kan nå.

Sådan virker det

HC-SR501 er en passiv infrarød sensor. Den sender ikke noget ud selv, men reagerer, når varmestrålingen foran linsen ændrer sig, fx når et menneske eller et dyr bevæger sig gennem rummet. Så går udgangen høj i et stykke tid. Udgangen ligger på 3,3 V, så den kan kobles direkte til en GPIO-pin på kortet.

Kortet er en ESP32-S3 med WiFi. Når sensoren slår til, sender kortet beskeden videre. Har du Home Assistant, kører kortet med ESPHome, og Home Assistant sender en notifikation til appen på din telefon. Har du ikke, kan kortet sende en push-besked gennem ntfy, en gratis tjeneste, hvor du følger et emne i ntfy-appen.

Sådan bygger du det

  1. Find pinout-tegningen for kortet. Waveshare kalder det ESP32-S3-Zero, og deres wiki viser, hvor 5V, 3V3, GND og de enkelte GPIO-pinde sidder.
  2. Sæt kortet i fumlebrættet, så det sidder over midterrillen. Træk en han-han-ledning fra kortets 5V til den ene strømskinne og en fra GND til den anden. Så kan begge moduler dele strøm og stel.
  3. Forbind PIR-sensoren med han-hun-ledningerne: hun-enden på sensorens stifter og han-enden i fumlebrættet. VCC går til 5V-skinnen, GND til GND-skinnen og OUT til en ledig GPIO. Sensoren skal have mindst 5 V, så den må ikke på 3V3. Pinnenes navne står tit under den hvide linse, som du forsigtigt kan tage af.
  4. Buzzermodulet får plus på kortets 3V3, minus på GND-skinnen og signalpinden på en anden GPIO. Det er en passiv buzzer, så kortet skal sende en tone til den. Et fast højt signal giver kun et lille klik.
  5. Justér sensoren med de to trimmere. Den ene sætter rækkevidden (3 til 7 meter), den anden hvor længe udgangen bliver høj (5 til 200 sekunder). Start med kort tid og lav følsomhed, og skru op derfra.
  6. Installer ESPHome i Home Assistant, opret en enhed til ESP32-S3 og tilføj sensoren som en binær sensor på den GPIO, du har brugt. Buzzeren kan spille små melodier med ESPHomes rtttl-komponent. Lav så en automatisering, der sender en notifikation, når sensoren slår til.
  7. Uden Home Assistant kan du skrive en sketch i Arduino IDE, der forbinder til WiFi og sender en besked til dit ntfy-emne, når pinnen går høj. Vælg et emnenavn, der er svært at gætte, for alle, der kender navnet, kan læse med.
  8. Giv sensoren omkring et minut, efter strømmen er sat til. Den skal falde til ro, og de første udløsninger kan være falske.

Byg videre

  • Brug kortets indbyggede RGB-LED som statuslys: grøn, når alarmen er slået til, og rød, når den har set noget.
  • Lad alarmen kun være aktiv om natten eller når ingen er hjemme, styret fra Home Assistant.
  • Sæt en ekstra sensor op i et andet rum, så du kan se, hvor bevægelsen var.
  • Byg det hele ind i en lille boks med et hul til linsen, så det kan hænge pænt på væggen.

Sidder du fast? Vi hjælper gratis med kode og opsætning. Skriv til [email protected].

Plantevagt: få besked, når planten er tørstig

Illustration: Plantevagt: få besked, når planten er tørstig

En fugtsensor i potten og et lille WiFi-kort er nok til at holde styr på, hvornår planten skal have vand. Du får en besked på mobilen, når jorden er ved at være tør, og kan følge kurven over tid. Det er et roligt første projekt med ESP32, og du skal ikke lodde.

Det skal du bruge

Strøm fra en USB-C-oplader.

161,90 kr.Samlet, inkl. moms

Har du allerede nogle af delene? Fjern fluebenet.

Du skal selv have en USB-C-oplader og et WiFi-net. Til kalibreringen skal du bruge et glas vand. Ender sensorkablet i et samlet stik, der ikke passer til kortets stifter, skal du også bruge tre hun-hun-jumperledninger. Dem kan du sætte flueben ved i listen ovenfor.

Sådan virker det

Sensoren måler kapacitivt. Den ser på, hvordan jorden omkring den påvirker et elektrisk felt, og fugtig jord giver et andet udslag end tør. Der sidder ikke blankt metal i jorden, så den tæres ikke op som de billige sensorer med to metalben, der sender strøm gennem jorden.

Udgangen er en analog spænding mellem ca. 1,2 og 2,5 V. ESP32-kortet læser den med sin ADC og sender tallet over WiFi. Med denne type sensor bliver værdien normalt højere, jo tørrere jorden er. Kalibreringen viser dig dine egne tal.

Sådan bygger du det

  1. Find pinout-tegningen for kortet. Waveshare kalder det ESP32-S3-Zero, og deres wiki viser, hvor pindene sidder.
  2. Forbind sensoren med kablet, der følger med: plus til 3V3, minus til GND og signal til en ADC-pin. Vælg en pin på ADC1, altså GPIO1 til GPIO10 på ESP32-S3, for ADC2 driller, når WiFi er tændt. Farvekoden står i DFRobots dokumentation for sensoren.
  3. Installer ESPHome i Home Assistant, lav en enhed til kortet og tilføj en ADC-sensor på pinnen. Sensorens udgang går op til ca. 2,5 V, så dæmpningen (attenuation) skal kunne måle så højt. ESPHome kan vælge den selv.
  4. Kalibrér: aflæs værdien, mens sensoren ligger i fri luft, og igen, mens den står i et glas vand til stregen. De to tal er helt tør og helt våd. Med et lineært kalibreringsfilter i ESPHome kan du regne om til procent.
  5. Sæt sensoren i potten, men ikke dybere end stregen. Elektronikken øverst skal holdes tør, så vand forsigtigt rundt om den.
  6. Følg kurven et par dage og notér, hvor den ligger, når planten begynder at hænge. Lav så en automatisering i Home Assistant, der sender en besked til telefonen, når fugten har været under grænsen et stykke tid. Uden Home Assistant kan en sketch fra Arduino IDE sende beskeden via ntfy.

Byg videre

  • Hold øje med to potter fra samme kort ved at sætte en sensor mere på en anden ADC1-pin.
  • Brug kortets indbyggede RGB-LED som lille lampe ved potten: grøn, når der er vand nok, og rød, når der skal vandes.
  • Kør på batteri med deep sleep, så kortet kun vågner og måler et par gange i timen.
  • Byg automatisk vanding med en lille pumpe og et relæ, styret af den samme måling.

Sidder du fast? Vi hjælper gratis med kode og opsætning. Skriv til [email protected].

Hold øje med fryseren med ESP32 og DS18B20

Illustration: Hold øje med fryseren med ESP32 og DS18B20

En fryser, der står og tør op, opdager man tit først, når det er for sent. Med en vandtæt temperaturføler og et lille WiFi-kort får du besked på mobilen, hvis temperaturen kryber op. Den samme opstilling kan holde øje med akvariet, drivhuset eller et kølerum på arbejdet.

Det skal du bruge

Strøm fra en USB-C-oplader.

198,80 kr.Samlet, inkl. moms

Har du allerede nogle af delene? Fjern fluebenet.

Du skal bruge en USB-C-oplader og et WiFi-net, der når ud til fryseren.

Sådan virker det

DS18B20 er en digital føler. Den måler selv temperaturen og sender tallet over én enkelt dataledning, en såkaldt 1-Wire-bus. Føleren sidder i et vandtæt rør af rustfrit stål, måler fra -55 til +125 °C og er nøjagtig inden for en halv grad mellem -10 og +85 °C.

Kortet læser føleren med jævne mellemrum og giver alarm, hvis temperaturen ligger over grænsen i flere minutter. Forsinkelsen er vigtig. Når du åbner lågen, stiger temperaturen ved føleren kortvarigt, og det skal ikke give alarm hver gang.

Sådan bygger du det

  1. Sæt kortet i breadboardet, så det står over midterrillen. Pinout-tegningen finder du i Waveshares wiki under kortets navn, ESP32-S3-Zero.
  2. Sæt følerens tre ledninger i hver sin række i breadboardet, og forbind dem til kortet med han-han-ledningerne: rød til 3V3, sort til GND og gul til en ledig GPIO.
  3. Sæt 4,7 kΩ-modstanden fra posen mellem den gule dataledning og 3V3. Den holder datalinjen høj, og uden den finder kortet ikke føleren.
  4. Installer ESPHome i Home Assistant, lav en enhed til kortet, og tilføj en 1-Wire-bus på din GPIO med en Dallas-temperatursensor. Foretrækker du Arduino IDE, klarer bibliotekerne OneWire og DallasTemperature det samme.
  5. Læg føleren ind i fryseren, og før kablet ud gennem tætningslisten ved lågen. Tjek bagefter, at lågen lukker tæt hele vejen rundt. Kortet bliver udenfor, hvor det er tørt.
  6. Lav en automatisering i Home Assistant, der sender en besked, hvis temperaturen har været over fx -15 °C i ti minutter. En almindelig fryser ligger omkring -18 °C, så der er plads til at åbne lågen. Uden Home Assistant kan en Arduino-sketch sende beskeden via ntfy.
  7. Går strømmen, går kortet også ud. Lav derfor også en besked i Home Assistant, når enheden ikke har meldt sig i et stykke tid.

Byg videre

  • Sæt flere følere på samme ledning. Hver DS18B20 har sin egen adresse, så ét kort kan måle både fryser og køleskab.
  • Gem temperaturen i Home Assistant og se kurven over døgnet, fx hvor længe lågen har stået åben.
  • Brug kortets indbyggede RGB-LED som lys, der skifter farve, når temperaturen er for høj.
  • I en virksomhed kan flere kort i kølerum og lager samles i én oversigt, så du har en log at kigge tilbage i.

Sidder du fast? Vi hjælper gratis med kode og opsætning. Skriv til [email protected].

Byg en theremin med Arduino og ultralyd

Illustration: Byg en theremin med Arduino og ultralyd

En theremin er et instrument, du spiller på uden at røre det. I denne udgave styrer afstanden fra din hånd til en ultralydssensor tonen fra en lille buzzer. Det tager en eftermiddag at bygge, og koden er kort nok til at forstå linje for linje.

Det skal du bruge

241,80 kr.Samlet, inkl. moms

Har du allerede nogle af delene? Fjern fluebenet.

Du skal bruge en computer med Arduino IDE, som er gratis. USB-kablet til kortet følger med.

Sådan virker det

HC-SR04 sender en kort ultralydspuls ud, som du ikke kan høre, og lytter efter ekkoet. Kortet måler, hvor lang tid der går, før ekkoet kommer tilbage. Lyden bevæger sig ca. 340 meter i sekundet og skal både frem og tilbage, så afstanden i centimeter er cirka tiden i mikrosekunder delt med 58.

Afstanden bliver omsat til en frekvens. Arduinos tone()-funktion laver en firkantbølge på buzzerens pin, og fordi buzzeren er passiv, spiller den præcis den tone, du beder om. Hånden tæt på giver høje toner, længere væk giver dybe. Er der intet inden for 50 cm, er der stille.

Sådan bygger du det

  1. Forbind ultralydssensoren til Uno’en med han-hun-ledningerne: VCC til 5V, GND til GND, Trig til pin 9 og Echo til pin 10.
  2. Find pinnavnene på buzzermodulet. Signalet er ofte mærket S, og minus med et minustegn eller GND. Signalet går til pin 8 og minus til en af Uno’ens andre GND-pinde.
  3. Har buzzermodulet også en plus-pin, så sæt den på 3,3V. Uno’en har kun én 5V-pin, og den bruger sensoren. Modulet kan køre på både 3,3 og 5 V.
  4. Åbn Arduino IDE, vælg Arduino Uno som board og vælg den port, kortet dukker op på. Kortet er Uno-kompatibelt, så det opfører sig som en almindelig Uno.
  5. Upload koden herunder. Hold hånden mellem 5 og 50 cm over sensoren, og bevæg den langsomt op og ned.
  6. Lad sensoren pege op mod loftet, så den ikke fanger bordkanten eller væggen. Den ser kun i en smal kegle på ca. 15 grader, så hånden skal være lige over den.

Koden

// Theremin: afstanden til hånden styrer tonen
const int TRIG = 9;
const int ECHO = 10;
const int BUZZER = 8;

void setup() {
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
}

void loop() {
  // send en kort ultralydspuls
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);

  // mål ekkoet, giv op efter 30 ms (0 = intet ekko)
  long varighed = pulseIn(ECHO, HIGH, 30000);
  long cm = varighed / 58;

  if (cm >= 5 && cm <= 50) {
    // tæt på = høj tone, langt væk = dyb tone
    int frekvens = map(cm, 5, 50, 2000, 200);
    tone(BUZZER, frekvens);
  } else {
    noTone(BUZZER);  // ingen hånd: stille
  }
  delay(50);
}

Byg videre

  • Lås tonerne til en skala, fx C-dur, så det lyder som musik og ikke som en sirene.
  • Tag gennemsnittet af de sidste tre målinger, så tonen ryster mindre.
  • Sæt en knap på, der skifter mellem glidende toner og skalaen.
  • Byg en kasse til det hele, med sensoren i toppen og buzzeren bag et lille hul.

Sidder du fast? Vi hjælper gratis med kode og opsætning. Skriv til [email protected].

Reaktionsspil med Arduino og LED-matrix

Illustration: Reaktionsspil med Arduino og LED-matrix

To spillere, to knapper og en lysende matrix. Når den tænder, gælder det om at trykke først, men trykker du for tidligt, har du tabt. Spillet er hurtigt at bygge og en god måde at lære knapper, tilfældige tal og et LED-display at kende.

Det skal du bruge

327,70 kr.Samlet, inkl. moms

Har du allerede nogle af delene? Fjern fluebenet.

Du skal bruge en computer med Arduino IDE, som er gratis. USB-kablet til Uno’en følger med.

Sådan virker det

Matrixen styres af en MAX7219-chip. Den holder selv styr på alle 64 lysdioder, så Uno’en kun skal fortælle den, hvilke prikker der skal lyse. Det sker over tre ledninger, og biblioteket LedControl klarer kommunikationen.

Knapperne sidder mellem en pin og GND. Med INPUT_PULLUP holder Uno’en selv pinnen høj gennem en indbygget modstand, og når knappen trykkes ned, bliver pinnen lav. Derfor skal du ikke bruge ekstra modstande. Spillet venter et tilfældigt antal sekunder, så ingen kan regne ud, hvornår det er tid. Trykker en spiller, før matrixen lyser, går sejren til den anden.

Sådan bygger du det

  1. Forbind matrixens indgang, den ende med DIN, til Uno’en med han-hun-ledninger: VCC til 5V, GND til GND, DIN til pin 12, CS til pin 10 og CLK til pin 11.
  2. Sæt to trykknapper i breadboardet, hver over midterrillen og med god afstand, så to personer kan sidde ved dem.
  3. Knapperne har fire ben, der er forbundet parvis. Bruger du to ben, der sidder diagonalt over for hinanden, rammer du altid rigtigt. Det ene ben går til breadboardets GND-skinne, det andet til pin 2 (venstre spiller) eller pin 3 (højre spiller).
  4. Forbind GND-skinnen til en GND-pin på Uno’en med en han-han-ledning.
  5. Installer LedControl via bibliotekshåndteringen i Arduino IDE, og upload koden herunder.
  6. Spil: én prik i midten betyder klar. Når hele matrixen lyser, trykker I. Bagefter viser en pil, hvem der vandt. Peger pilen ikke mod vinderen, så drej modulet, til den gør. Når begge knapper er sluppet, starter en ny runde af sig selv.

Koden

#include <LedControl.h>
// DIN til pin 12, CLK til pin 11, CS til pin 10, ét modul
LedControl lc = LedControl(12, 11, 10, 1);
const int KNAP_V = 2;  // venstre spiller
const int KNAP_H = 3;  // højre spiller
const byte PIL_V[8] = {0x10, 0x30, 0x7F, 0xFF, 0xFF, 0x7F, 0x30, 0x10};
const byte PIL_H[8] = {0x08, 0x0C, 0xFE, 0xFF, 0xFF, 0xFE, 0x0C, 0x08};

void setup() {
  pinMode(KNAP_V, INPUT_PULLUP);  // trykket knap = LOW
  pinMode(KNAP_H, INPUT_PULLUP);
  lc.shutdown(0, false);          // tænd modulet
  lc.setIntensity(0, 4);          // lysstyrke 0-15
  randomSeed(analogRead(A0));
}

void loop() {
  lc.clearDisplay(0);
  lc.setLed(0, 3, 3, true);       // én prik: gør jer klar
  unsigned long start = millis();
  unsigned long vent = random(2000, 6000);
  int vinder = 0;                 // 1 = venstre, 2 = højre
  // trykker man før tid, vinder den anden
  while (millis() - start < vent && vinder == 0) {
    if (digitalRead(KNAP_V) == LOW) vinder = 2;
    else if (digitalRead(KNAP_H) == LOW) vinder = 1;
  }
  if (vinder == 0) {
    for (int r = 0; r < 8; r++) lc.setRow(0, r, 0xFF);  // NU
    while (vinder == 0) {
      if (digitalRead(KNAP_V) == LOW) vinder = 1;
      else if (digitalRead(KNAP_H) == LOW) vinder = 2;
    }
  }
  const byte *pil = (vinder == 1) ? PIL_V : PIL_H;
  for (int r = 0; r < 8; r++) lc.setRow(0, r, pil[r]);
  delay(3000);
  while (digitalRead(KNAP_V) == LOW || digitalRead(KNAP_H) == LOW) {}
  delay(500);                     // kort pause før næste runde
}

Byg videre

  • Tæl point og spil bedst af fem.
  • Mål reaktionstiden med millis() og skriv den i den serielle monitor.
  • Kobl flere matrixmoduler efter hinanden og vis point eller navne.
  • Sæt en buzzer på, der bipper ved start og ved snyd.

Sidder du fast? Vi hjælper gratis med kode og opsætning. Skriv til [email protected].

Pages:12»