Permalänk
Medlem

Python Raspberry Pi Twitter

Hej!
Jag håller på med en kurs i Datorteknink och just nu håller jag på med en uppgift där målet är att: Skicka en tweet om CPU-temperaturen blir för hög.

Jag använder mig av en Raspberry Pi 3 med Raspbian. Hittils har jag använt mig av Python3 och följt först denna guiden: www.raspberrypi.org och sedan denna: www.raspberrypi.org

Jag har lyckats så jag får fram aktuell CPU-temperatur som sparas i en log och kan visa den på en graf. Även klar med guide två där jag kan skicka slumpmässiga meddelanden till Twitter. Men nu ska jag på något sätt koppla samman dessa så jag skickar ett meddelande till Twitter om CPU-temperaturen överstiger ett visst gradantal.

Hur gör jag (i Python) för att: om temperaturen överstiger x grader -> skicka tweet ?

Tacksam för tips och idéer! Förväntar mig inte hela scriptet klart men vad ska jag börja med? Jag har googlat en del och läst på forum men hittar inget.

Permalänk
Medlem

Jag gjorde ett pythonskript en gång som twittrar en bild. Du kanske kan ha nytta av det på något sätt.

https://github.com/bitlabbet/nestbox_tweet

Tweepy: http://www.tweepy.org/

Visa signatur

AMD Ryzen 7 5700X, ASUS ROG Crosshair VIII Dark Hero, 32GB Corsair Vengeance LP 3200MHz, Gigabyte Radeon RX 5600 XT, Fractal Design Define C, Sesonic FOCUS PX 650W.

Permalänk
Medlem
Skrivet av saturday_sun:

Jag gjorde ett pythonskript en gång som twittrar en bild. Du kanske kan ha nytta av det på något sätt.

https://github.com/bitlabbet/nestbox_tweet

Tweepy: http://www.tweepy.org/

Tack!

Efter lite pyssel löste jag problemet själv.

Kanske inte det vackraste scriptet och går säkert att korta ner och snygga till. Men det är mitt första som iallafall fungerar som det ska

from subprocess import check_output from re import findall from time import sleep, strftime, time from datetime import datetime from twython import Twython from kod import ( consumer_key, consumer_secret, access_token, access_token_secret ) twitter = Twython( consumer_key, consumer_secret, access_token, access_token_secret ) def get_temp(): temp = check_output(["vcgencmd","measure_temp"]).decode("UTF-8") temp = float(findall("\d+\.\d+",temp)[0]) return(temp) def write_temp(temp): with open("cpu_temp.csv", "a") as log: log.write("{0},{1}\n".format(strftime("%Y-%m-%d %H:%M:%S"),str(temp))) thetime = datetime.now().strftime('%-I:%M%P on %d-%m-%Y') message = (thetime + "CPU för varm!") while True: temp = get_temp() write_temp(temp) sleep(120) if get_temp() > 65.0: twitter.update_status(status=message) print("Tweeted: %s" % message)

Ser nu att jag har kvar skapandet av loggen som inte fyller någon funktion här. Jaja jag får jobba vidare på att snygga till det.

La till code-taggar
Permalänk
Hedersmedlem

Fixade code-taggar så man ser de indenteringar som är kritiska för att kunna läsa python.

Permalänk
Medlem
Skrivet av Shimonu:

Fixade code-taggar så man ser de indenteringar som är kritiska för att kunna läsa python.

Tack! Man lär sig något nytt varje dag

Permalänk
Medlem

@wicerd:

Såhär blev det efter lite justeringar.

from subprocess import check_output from re import findall from time import sleep, strftime, time from datetime import datetime from twython import Twython from kod import ( consumer_key, consumer_secret, access_token, access_token_secret ) twitter = Twython( consumer_key, consumer_secret, access_token, access_token_secret ) def getCPUtemperatur(): temp = check_output(["vcgencmd","measure_temp"]).decode("UTF-8") temp = float(findall("\d+\.\d+",temp)[0]) return(temp) while True: temp = getCPUtemperatur() tiden = datetime.now().strftime("Kl:"'%H:%M:%S den %d-%m-%Y') meddelande = (tiden + " CPU för varm!") if getCPUtemperatur() > 65.0: twitter.update_status(status=meddelande) print("Tweeted: %s" % meddelande) sleep(120)

Permalänk

Tänkte du bara vila om du skickat en tweet?