Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
I det här projektet gör jag en kaffebryggare på kontoret smart, genom att bygga ett kaffevarningssystem som skickar Slack -meddelanden när någon brygger en ny gryta kaffe. Koden kan ändras för att skicka ett e -postmeddelande eller textmeddelande. Detta projekt är byggt på en Raspberry Pi Zero-W
För att göra detta måste jag kontinuerligt övervaka temperaturen på kaffemaskinen. Jag gick med DS18B20 vattentät temperatursensor och en Raspberry Pi Zero-W.
Om du gillar det här projektet, följ mig på Instagram och YouTube.
Länkar
Kod- och kopplingsschema:
Adafruit's Raspberry Pi & DS18B20 Temperatursensorguide:
Delar (vissa länkar)
Mini lodlös prototypbrödbräda:
Manliga till kvinnliga bygelkablar:
DS18B20 Digital Temp Sensor från Adafruit:
Digital temp-sensor på eBay (den jag använde):
Raspberry Pi Zero W -kit:
Raspberry Pi Zero W från Adafruit ($ 10 frakt):
Jag hade lysdioden liggande.
Singelboxen och rören kom från Lowes
Steg 1: Kretsen
Denna krets är enkel kvällsmat. Jag byggde min på en mini -brödbräda så att jag inte behövde lödda (jag lärde mig just då). Jag löd dock några bygelkablar på trådarna som kom från DS18B20, så att den kunde anslutas till brödbrädet. Du behöver inte göra det på det här sättet, och allt kan lätt lödas ihop (se min Duel Internet of Things Thermometer -video).
Ta en titt på diagrammet.
I princip kör du bara en bygelkabel från stift 5 till den gula ledningen på DS18B20, jordad till jordledningen (svart) och 3,3V till den röda tråden. Lägg sedan till ett 4,7K motstånd mellan 3,3V och den gula ledningen (signalen) på sensorn
För mer information bör du kolla Adafruit's Raspberry Pi & DS18B20 Temperatursensorguide
Steg 2: Konfigurera Pi och få en temperaturavläsning
Efter att ha installerat Raspbian (jag har en Gist och en video för det) på Pi Zero W, måste du SSH in i Pi och köra dtoverlay = w1-gpio för att aktivera gränssnittet för temperatursonder. Starta sedan om genom att köra sudo reboot. Efter SSHing tillbaka till Pi kan du köra följande för att få en temperaturavläsning.
- sudo modprobe w1-gpio
- sudo modprobe w1-therm
- cd/sys/bus/w1/devices ls cd 28-xxxx (ändra detta för att matcha vilket serienummer som dyker upp)
- katt w1_slave
Obs: till SSH i Windows kan du behöva använda Putty.
Steg 3: Anslutning till kaffebryggaren och kalibrering
För att koppla temperatursonden till kaffebryggaren använde jag metalltejp av tejp och fäst den precis bakom pannan. Kaffebryggaren vi har på kontoret är en gammal bulle med en fin metallbaksida som leder värmen bra. Du måste hitta ett bra ställe att sätta sonden på din kaffebryggare. DS18B20 temperaturgivare är vattentät, så du har alternativ.
När sonden är ansluten måste du övervaka temperaturen under bryggningen och se vilken temperatur den når när den bryggs, liksom när den bryggs. Du kan behöva spela med sensorns positionering för att hitta en plats som ger dig en tillräckligt stor tempskillnad mellan normal temp och bryggt temp.
För att få dina temp -nummer kan du logga temperaturen till konsolen genom att köra kommandona från steget "Konfigurera Pi och få en temperaturavläsning".
Obs! Du behöver bara köra alla kommandon en gång och sedan bara köra kommandot "cat w1_slave" för att se den senaste tempavläsningen.
Steg 4: Koden
Här är en länk till koden: https://github.com/calebbrewer/pi-coffee-ready/blo… Den är skriven i JavaScript (nodejs)
Överst finns det några konstanter du kan ändra för att få det att fungera för din installation.
- const brewingTemp = 88; (Detta är den lägsta temperaturen under bryggning. LED -lampan på framsidan blinkar när denna temperatur träffas)
- const brewedTemp = 93; (När denna temperatur har uppnåtts vet vi att kaffet är klart)
- const brewOffset = 45 * 60000; (Det här är tiden att vänta innan du kontrollerar igen. Ändra 45 till det antal minuter du vill vänta på att kaffebryggaren ska svalna)
- const filePath = '/sys/bus/w1/devices/28-031702a501ff/w1_slave'; (Detta är sökvägen till filen med tempavläsning. Din kommer att skilja sig från min. Använd filen du hittade genom att köra kommandona i steget "Konfigurera Pi och få en temperaturavläsning".)
- const slackMessage = {"username": "Coffee Bot", "text": "Det finns färskt kaffe! Hämta det medan det är gott."}
- const slackHook = ""; (Din slack krok)
Denna kod är baserad på att skicka en Slack -avisering, men rad 75 är dit jag faktiskt skickar meddelandet. Du kan ändra detta för att skicka ett meddelande med vilken tjänst du vill.
Om du vill veta hur du konfigurerar en Slack-krok för att skicka meddelanden, se detta dokument:
För att lägga till din kod till Pi, använd bara kommandot scp för att kopiera index.js- och package.json -filerna till Pi. Till exempel: scp index.js pi@pi-ip-address:/var/pi-coffee-ready
Steg 5: Nod och starta koden vid start med PM2
För att köra koden måste du installera nodejs genom att göra följande:
- SSH in
- Kör: $ wget -O -https://raw.githubusercontent.com/sdesalas/node-p… | våldsamt slag
- Använd kommandot "cd" för att byta till katalog där du lägger din kod
- Kör "npm install"
- Kör "npm start"
För att köra koden när Pi startar använde jag pm2. Medan du skjuter in i Pi -körningen:
- npm installera pm2 -g
- pm2 starta app.js
Efter detta startar manuset när Pi startar.
Steg 6: Få det att se coolt ut
Jag tog en utloppslåda för att hålla komponenterna och ett metall 1/2 tum rör från en hemförbättringsbutik. Jag satte ihop det så att pipen skulle bli ett stativ för lådan. Sen målade jag det rött och vitt.
Jag skapade en grafik på framsidan av lådan och använde en vinylskärare för att klippa ut den. Jag borrade ett hål för indikatorlampan och fäst sedan vinylen på lådans lock.
Jag täckte baksidan av Pi med eltejp så att kontakterna på baksidan inte skulle bli korta i metallboxen. Jag fäst sedan Pi på ena sidan av lådan med tejp. Jag fäst mini -brödbrädan på andra sidan med den medföljande självhäftande baksidan.
Ledningarna går fint genom röret och ut ur T -kopplingen. Ursäkta färgkörningen. Jag fick lite bråttom.
Steg 7: Allt klart
Och precis så har du ett kaffevarningssystem som ser fantastiskt ut!
Om du gillar det här projektet, följ mig på Instagram och YouTube.