Vilken väg väljer du?
I denna workshop finns det två olika spår att gå på, så steg ett blir att välja vad du känner för att göra idag. Blir det att mäta temperatur eller trycka på en knapp? 🔀
Vilken väg du än väljer så finns det en gemensam nämnare, eftersom vi ska använda en Rasberry pi pico så kommer vi koda i Micropython.
Nyfiken på mer bakgrundsinfo? Läs mer om Micropython och Rasberry Pi Pico.
Skicka SMS baserat på temperatur
Tänk vad smart om det gick att få ett SMS när bastun är uppvärmd och klar! Eller om det blivit för kallt i stugan och en behöver dra igång kaminen från distans?
Förberedelser
Nedan beståndsdelar är möjliga att byta ut, men annars ger vi förslag på sådana komponenter som vi själva använt och byggt med.- Skaffa en Rasberry Pico Wireless
- Bra att veta om för att förstå var en ska löda ihop grejer Raspberry Pi Pico Pinout
- En sensor som ex denna: Sensor DS18b20
- Ett motstånd på 47kohm, ex: Motstånd 1W 5% 47kohm (47k)
- En lödkolv
- En python IDE (en kodeditor)
- Skapa ett 46elks konto
Skapa en setup
- Vi kommer använda Thonny under denna workshop som kodeditor
- Koppla din Rasberry Pi Pico till datorn
- Skapa en ny fil som du döper till ex temperature.py
- Det är här som vi kommer skriva resten av koden nu
Koppla koden till sensorn
För att vi ska kunna trycka mäta temperaturen så måste vi först koppla upp oss med sensorn
- Då ska vi lägga till några libraries som heter
machine
,onewire
ochds18x20
- Så ska vi konfigurera själva sensorn och dess inställningar
- Vi kommer behöva scanna efter sensorn och sedan lagra adressen till den så att vi kan använda den
- Vi skriver ut när vi hittat sensorn också, så vi ser att det funkar som det ska
Ange wifi och 46elks credentials
- Skapa variabler och fyll i ditt wifi användarnamn och lösenord, ex:
ssid = "wifi_ssid"
ochpassword = "wifi_pass"
- Leta fram dina 46elks APInycklar (credentials), du hittar dem på 46elks.se/dashboard under Account
- Skapa variabler och fyll i dina APInycklar, ex:
api_username = "api_username"
ochapi_password = "api_pass"
Ange dina SMS parametrar
- Skapa variabler för vem du ska skicka till och från vem, ex:
sms_from = "Bastun"
ochsms_to = "+46766861004"
- Både sms_to och sms_from går att byta ut. Använder du textavsändare så ska de vara mellan 3-11 tecken och inte börja med en siffra.
Koppla upp till wifi och se status
- Importera
network
ochtime
library - Skapa en funktion
connect_wifi(ssid, password)
som används för att ansluta till wifi - För säkerhets skull så lägger vi också till att fortsätta försöka under 30 sekunder på 5 sekunders intervaller, tills en blir ansluten
- Så skriver vi hela tiden ut status för att förstå när vi är anslutna
Skapa SMS funktionen
- Importera library
urequests
ochbase64
- Skapa en funktion
send_sms()
som skickar SMS via 46elks API - Skapa en autentiseringssträng, sätt rätt headers
- Själva SMS-innehållet kan du ändra till vad du vill:
sms_content = f"Warning! The temperature has now reached {temperature}°C"
- För att vi ska veta vad som händer, så kommer vi skriva ut när vi får svar från APIet också
Skicka SMSet när vi kommit upp i rätt temperatur
- Nu ska vi skapa en oändlig loop som hela tiden fortsätter mäta temperaturen
- Och när en kommit upp i rätt temperatur så anropar vi send_sms() funktionen som skickar ett SMS. Vi skriver hela tiden ut vilken temp det är också.
- Så här kan du ju själv ändra vilken temperatur som passa ditt användningsområde
- Nu är det bara att testa själv och se om du får något SMS 💬
Hela koden som referens
Om du kört fast någonstans längs vägen, så finns hela koden här för att jämföra eller använda sig av 🛠
Skicka SMS med ett knapptryck
Börjat laga mat åt familjen och vill att de kommer i tid till middagen den här gången? Det är nu bara ett knapptryck bort att förverkliga för alla framtida familjemiddagar.
Förberedelser
Nedan beståndsdelar är möjliga att byta ut, men annars ger vi förslag på sådana komponenter som vi själva använt och byggt med.- Skaffa en Rasberry Pico Wireless
- Bra att veta om för att förstå var en ska löda ihop grejer Raspberry Pi Pico Pinout
- En knapp som ex denna: Återfjädrande tryckknapp
- Ett motstånd på 47kohm, ex: Motstånd 1W 5% 47kohm (47k)
- En lödkolv
- En python IDE (en kodeditor) som ex Thonny
- Skapa ett 46elks konto
Skapa en setup
- Vi kommer använda Thonny under denna workshop som kodeditor
- Koppla din Rasberry Pi Pico till datorn
- Skapa en ny fil som du döper till ex button.py
- Det är här som vi kommer skriva resten av koden nu
Koppla koden till knappen
För att vi ska kunna trycka på knappen och skicka ett SMS, så måste vi först lägga till att vi har en knapp i vår kod.
- Då ska vi lägga till ett library som heter
machine
- Så lägger vi till själva knappen och dess inställningar
machine.Pin()
Ange wifi och 46elks credentials
- Skapa variabler och fyll i ditt wifi användarnamn och lösenord, ex:
ssid = "wifi_ssid"
ochpassword = "wifi_pass"
- Leta fram dina 46elks APInycklar (credentials), du hittar dem på 46elks.se/dashboard under Account
- Skapa variabler och fyll i dina APInycklar, ex:
api_username = "api_username"
ochapi_password = "api_pass"
Ange dina SMS parametrar
- Skapa variabler för vem du ska skicka till och från vem, ex:
sms_from = "Knappen"
ochsms_to = "+46766861004"
- Både sms_to och sms_from går att byta ut. Använder du textavsändare så ska de vara mellan 3-11 tecken och inte börja med en siffra.
Koppla upp till wifi och se status
- Importera
network
ochtime
library - Skapa en funktion
connect_wifi(ssid, password)
som används för att ansluta till wifi - För säkerhets skull så lägger vi också till att fortsätta försöka under 30 sekunder på 5 sekunders intervaller, tills en blir ansluten
- Så skriver vi hela tiden ut status för att förstå när vi är anslutna
Skapa SMS funktionen
- Importera library
urequests
ochbase64
- Skapa en funktion
send_sms()
som skickar SMS via 46elks API - Skapa en autentiseringssträng, sätt rätt headers
- Själva SMS-innehållet kan du ändra till vad du vill:
sms_content = f"The button is pressed, and this is my message to you!" # You can change this if you want to
- För att vi ska veta vad som händer, så kommer vi skriva ut när vi får svar från APIet också
Skicka SMSet när vi tryckt på knappen
- Nu ska vi skapa en oändlig loop som hela tiden kollar knappens tillstånd
- Om en tryckt på knappen så anropar vi send_sms() funktionen som skickar SMSet
- Nu är det bara att testa själv och se om du får något SMS 💬
Hela koden som referens
Om du kört fast någonstans längs vägen, så finns hela koden här för att jämföra eller använda sig av 🛠