Webbaktiverade hem termostaten (och hemautomation Hub) (5 / 10 steg)

Steg 5: Installera databastabeller, Python servrar och webbsidor

Om du väljer att hämta och installera programvaran för denna termostat och du arbetar på Raspberry Pi distans med PuTTy, kanske du, som jag, undrar vad är det bästa sättet att flytta filer fram och tillbaka från din dator till din Raspberry Pi. Jag har hittat FileZilla att vara ett mycket lättanvänt program.

Du installerar databasen

Som nämnts i början, kunde databasen förmodligen lätt avlägsnas från detta projekt och ersättas med några textfiler om jag hade ingenting körs på detta system än Termostaterna jag beskriver här. Men jag har andra saker på det system som behöver databasen, så jag har tagit det i mitt system...

GitHub databasen innehåller en fil som heter thermostat_db.sql. Filen innehåller strukturen av MySQL tabeller behövs för termostaten. För att skapa dessa tabeller i en databas, skulle du loggar in MySQL som "root" och skapa en ny databas med hjälp av kommandot "skapa databas [database_name]," där [database_name] är vilket namn du vill använda för din databas. (exempel: "Skapa databas tstat_database;") Att importera tabellstrukturen i databasen, avsluta MySQL, gå till katalogen där du har sparat filen thermostat_db.sql och ange "mysql -u root -p [database_name] < thermostat_db.sql" och ange lösenordet för root-användaren när du uppmanas. (exempel: "mysql -u root -p tstat_database < thermostat_db.sql")

Nu, om du loggar in mysql med hjälp av kommandot "mysql -u root -p", kan du ange kommandot "användning [database_name];" för att markera den nya databasen och ange sedan "Visa tabeller." att se fyra bord upptagna där: termostater, thermostat_programs, thermostat_status och användare.

Tabellen "termostater" kommer att innehålla en post för varje termostat som du har inkluderat i ditt system och varje post innehåller tre fält:

  • user_id – Välj bara ett användar-id som du vill använda för dig själv; Detta kommer att vara samma för alla termostater. (exempel: 1234)
  • nod -varje termostat kommer att ha det egna unika "" nodvärde; Detta bör vara ett tal mellan 1 och 255. Den används av kommunikation programvaran för att identifiera varje termostat. (exempel: 122)
  • namn – varje termostat kommer att ha sitt eget namn, och detta är hur termostaten kommer att visas på webbsidor. Detta namn kan vara upp till 45 tecken. (exempel: övervåningen sovrum)

När du har valt dessa värden, måste du infoga en post i databasen för varje termostat med kommandot "Infoga i termostater värden ([user_id], [nod], [namn]);" (exempel: "Infoga i termostater värden (1234, 122, 'På övervåningen sovrum');").

Nu, bara för att se till att allt gick som väntat, ange "Välj * från termostater;" och du bör se de poster som du just lade till.

Därefter måste du infoga ett användarnamn och lösenord i tabellen "användare". Det första du vill behov till gör är välja ett användarnamn (e.g. "dittnamn"), ett lösenord (t.ex. ' yourpassword') och två salter, som bör vara slumpmässiga strängar av tecken, kanske fyra till sex tecken (e.g. salt1 = "& 7: e$ #" och salt 2 = ' (oJ då, ska du infoga en post i tabellen användare med kommandot "INSERT INTO användare värden ([user_id] md5 ("[salt1passwordsalt2]"), "[användarnamn]"); " (exempel: "Infoga i användare värden (1234, md5 (" & 7: e$ #yourpassword(oJ 'yourname'); ").

Sedan kan du "Välj * från användare;" att se denna post i tabellen. Observera att lösenordet har kodats med funktionen md5() (som inte kanske är det bästa alternativet ute vid denna punkt).

Slutligen, infoga en post i tabellen thermostat_status för varje termostaten visar att termostaten är inledningsvis avstängd med hjälp av kommandot "Infoga i thermostat_status värden ([user_id], [nod], now(), 0, 1, 0, NULL, NULL);" (exempel: "Infoga i thermostat_status värden (1234, 122, now(), 0, 1, 0, NULL, NULL);"). Webbsidan måste denna inledande post för varje termostat för att fungera från början.

De andra tabellerna fylls senare när webbsidor är igång.

Installera Python servrar

GitHub databasen bör också omfatta tre filer kallas TstatMaster.py, TstatLogger.py och Thermostat.py. Gå vidare och kopiera dessa till någon katalog på Raspberry Pi. Om du inte redan har Python installerade på din Raspberry Pi, bör du installera det nu (gott om platser på nätet som kan gå igenom som. Jag använder Python 2.7.3).

Om du är inloggad på Raspberry Pi distans från en annan dator med spackel, och om du har installerat Xming på datorn, kan du köra Xming och skriv "idle" i PuTTy fönster att köra tomgång redaktör på din Raspberry Pi och se det på din dator. Detta är ett bra verktyg för visning och redigering Python koden. Annars finns det olika andra textredigerare som du kan använda i Linux som vim eller nano.

Thermostat.py är en modul som innehåller kod för en termostat klass. TstatMaster.py kontrollerar Termostaterna, och TstatLogger.py tar emot loggmeddelanden från Termostaterna och skriver dem till en loggfil. Dessa senare två kommer att kräva vissa uppdateringar som markeras i början av varje fil-fälten är tydligt markerade.

Du måste också skapa en/home/pi/Tstat_Data/katalog på din Raspberry Pi för loggfilerna att skrivas, annars ändra filerna TstatMaster.py och TstatLogger.py så att logFilePrefix refererar till en annan katalog.

Om du vill köra servrar, gå till katalogen där serverfiler sparades, skriv "python TstatMaster.py" och "python TstatLogger.py" och se till att de startar korrekt (inga fel). Men, finns det två problem med detta.

  1. Om du gör detta genom ett terminalprogram som kitt, att programmen sluta så snart du avsluta sessionen. Och du kommer inte att kunna göra något annat på Raspberry Pi medan dessa servrar kör. För att åtgärda detta, kommer du vill köra dessa i skärmar. För att köra program i en skärm, måste du starta en skärm först med det befalla "skärm -S", till exempel: "skärm -S TstatMaster". Det här fönstret finns nu kvar även när du stänger fönstret kitt. Det finns gott om dokumentation på kommandot skärmen tillgängliga, inklusive alternativ för att växla mellan skärmar, listan aktiva skärmar, och öppna en befintlig skärm.
  2. Även om du kör servrarna i skärmar, om du förlorar makt till din Raspberry Pi och startas om, kommer det inte längre att köra dina servrar. För att fixa detta, kommer att du behöva berätta Raspberry Pi att skapa skärmar och köra dessa servrar när det omstarter.

För att göra detta, du kan lägga till följande rader till filen rc.local (mer information här):

skärm -dm -S TstatLogger python //home/pi/ www/LCLogger.py

sömn 2s

skärm -dm -S TstatMaster python //home/pi/ www/LCMaster.py

sömn 3s

Installation av webbsidor

När du installerade lighttpd, bör det har ställt in en www broschyren för dig, förmodligen var/www /. GitHub databasen bör även några PHP filer för web-sida, och du bör sätta dessa i följande kataloger under/var/www / (eller andra webbkatalog till vilka lighttpd är ute). Skapa dessa underkataloger om det behövs.

  • /Public/ – tstat_index.php, tstat_login.php, tstat_logout.php, tstat_ProgTstat.php, tstat_SetThermostat.php och tstat_Status.php.
  • / public/omfattar / - tstat_MainHeader.php
  • /Private/ - tstat_ConnDb.php

Följande ändringar kommer att behöva göras för att dessa filer:

tstat_ConnDb.php – ändras värdena för DB_USER, DB_PASSWORD och DB_NAME till de du använder för ditt MySQL login och databas namn.

tstat_login.php – ändra värden för $salt1 och $salt2 vara strängar du använde när du sparar din termostat lösenord i MySQL-databasen.

tstat_ProgTstat.php – ändra $service_port för att numrera av hamnen som kontrollerar servern körs. Ändra $CommPwd för att vara lösenord du väljer att använda för RFX kommunikation. Ändra standardtidszonen till din prioriterad tidszon.

tstat_SetTstat.php – ändra $service_port för att numrera av hamnen som kontrollerar servern körs. Ändra $CommPwd för att vara lösenord du väljer att använda för RFX kommunikation. Ändra standardtidszonen till din prioriterad tidszon.

tstat_Status.php – ändra $service_port för att numrera av hamnen som kontrollerar servern körs. Ändra $CommPwd för att vara lösenord du väljer att använda för RFX kommunikation. Ändra standardtidszonen till din prioriterad tidszon. Ändra $thermostats för att vara en lista över noder som du använder för din termostater.

Nu, testa den ut – i webbläsaren, ange IP-adressen för din Raspberry Pi följt av /tstat_index.php (exempel 192.168.1.75/tstat_index.php). Du bör se en inloggningssida som frågar efter ett användarnamn och lösenord. Ange användarnamn och lösenord som du sparat i användarna tabellen ovan (inga salter runt lösenordet, bara lösenordet). Som bör ta dig till en välkomstsida med 4 länkar överst: ställa in termostaten där du kommer att kunna ställa din termostater, aktuell Status där du kan se aktuell status för varje termostaten, programmering där du kan programmera scheman för din termostater och logga ut (förhoppningsvis att en är självförklarande). Naturligtvis, eftersom du inte har programmerat Termostaterna ännu, dessa sidor är inte fullt ut funktionell, så vidare till nästa steg. (Obs: om du byter namn på filen "tstat_index.php" för att helt enkelt "index.php" så bör du kunna få till det genom att skriva i bara IP-adressen för Raspberry Pi utan att inkludera filnamnet i URL-adressen.)

Se Steg
Relaterade Ämnen

Titta på TV-kanaler från hela världen gratis på ditt hem TV och förvandla din TV till en billig hem-PC

Med hjälp av en $50 Android Mini PC (hittas via Amazon eller eBay), ex-pats eller alla som vill berika sina kunskaper i främmande språk titta på utländska TV-stationer på deras hem TV. Android Mini PC ansluter till en HDTV uppsättning, och med tilläg...

En trådlös Smart Home (var: hem simulator och larm med Arduino eller Atmega328 (Uppdaterad maj 2016))

Obs: det nu är en android bluetooth kontroll app ibble för detta projektObs: Även om det började som ett projekt simulera min närvaro i hemmet, det har vuxit till ett smart hem, därav titeln jag detta InstructableNär folk är på semester, eller ibland...

DIY hemsäkerhet och Automation med Raspberry Pi 2

I detta instructable kommer jag detalj mina metoder för att skapa en helt anpassad hem säkerhets- och automationssystem.Detta är ett pågående arbete, och som jag kommer att lägga till det som jag går.För nu kommer jag att ge en uppdelning av målen fö...

Enklaste smarta hem Panel och information Center - återanvända en gammal telefon!

I detta Instructable, ska jag gå igenom några av de steg som jag följde i återanvända en telefon som en smart hem touch apparat för mitt rum. Du kommer att kunna kontrollera dina lampor, vet din daglig väderprognos och få några andra personuppgifter...

Bolt hem Automation och varningssystem

Detta är ett nytt system av Shantam och mig bygger på bulten IOT plattform (www.boltiot.com) för att automatisera och förenkla hur människor interagerar med hushållsmaskiner och apparater i allmänhet.Steg 1: Vad är det? Det är en samling av intellige...

Hem Automation och säkerhet med 1Sheeld

Detta är en home automation och säkerhet system med 1Sheeld, projektet fungerar som följande:när användaren når dörren till hans hem en pir-sensor kommer att känna honom så en ledde slås på och sedan han har att säga ett specifikt lösenord till kan k...

Att göra Trike och Quadcycle Hub flänsar utan en svarv

först och främst vill jag tacka alla dem som besöker vårt forum och hjälpa andra med råd och erbjuda deras tips och hjälp. Det har varit två alternativa idéer postat i fråga om att skapa hub flänsarna som jag använder på trikes och fyrhjulingar som D...

Biogas på hem-billigt och Easy

Hej, jag är Sahas chitlange, åldrande 14, från Indien. här är min hemlagade billiga och lätt att bygga mini Biogas anläggning. Det brinner i ca. 20-30 minuter på en bunsenbrännare. Du kan lägga till något från ditt köksavfall (Exept lök peeling och ä...

Hem-bakat och glaserade kakor

SUGAR COOKIES:Ingredienser:1/2 kopp/125 ml smör/margarin1 kopp/250 ml socker1 ägg2 öknen sked / 30 ml mjölk1/2 te sked vaniljessens2 1/2 cups / 625ml mjöl2 teskedar / 10 ml bakpulver1/2 te sked saltVägbeskrivning:Grädde smör och socker. Blanda ägg oc...

Handledning: Ändra termostaten och kylvätska på en 2000 Volvo S40

Lär dig hur du ändrar den termostat och radiator vätskan på en 2000 Volvo S40....

Gör ett super anpassningsbara hem teater och film/TV-spel rum

hur till setup och plan ut ett billigt, billig, enkel-att-setup hemmabiosystem.Steg 1: Hitta en bra plats i min källare, det är en ganska öppen plats med en TV-hylla, soffor och ett skrivbord. Jag hade åter ordna allt i rummet för att göra det mer be...

Hemautomation och säkerhet med x10

i detta instructable skulle jag vilja dela några erfarenheter som jag har med x10 och använder den för att styra hemautomation, hemsäkerhet och sänka din hem försäkring faktura. Jag kommer inte för att beskriva varje enskild metod x10 kan användas me...

B &amp; Q homeeasy hemautomation centralvärme controller hacka

B & Q Homeeasy hemautomation centralvärme controller ModHej är detta ett billigare alternativ till standard hem lätt centralvärme styrenheten säljs av b & q.Jag skulle köpa ordentlig centralvärme controller H105 men fann det vara lite för dyrt och...

Chibikart: Snabb-prototyper en subminiatyr elektriska Go-Kart använder Digital fabrikation och Hobby komponenter

Chibikart! är en mycket liten ändå kraftfull och lättmanövrerad 2WD elektriska go-kart som du kan bygga med off-the-shelf industri och hobby komponenter och digitalt fabricerade ram delar. Med moderna litiumjonbatterier och borstlösa permanentmagnet...

Miljövänliga hem Design: En steg för steg Guide

att vara miljövänlig är mycket mer än en trend-det har blivit en livsstil för de flesta. Vi har lärt oss att återvinna, återanvända och minska vår användning av otaliga produkter. Lyckligtvis har många återförsäljare har hittat sätt att gå grönt själ...

Ugnen tillägg till förbättra hem luftkvalitet

när man tänker på inomhusluftens kvalitet, ugnar och centrala luftkonditioneringsanläggningar bör kommer att tänka. Trots allt, varje kubikfot av luft i ett hus är så småningom dras genom dessa system – och förändras genom processen. Luften blandas,...

Aktivera lampor och andra apparater med Touch och smällar (under 2$!)

Hej, alla! I detta Instructable visar jag hur du kan styra enheter som lampor och fläktar, med hjälp av smällar och touch! Dessa är bara andra sätt att aktivera hushållsapparater, istället för att använda konventionella växlar. Detta projekt är prakt...

Touchscreen väggmonterad familj Sync & hem Kontrollpanelen

Vi har en kalender som uppdateras varje månad med händelser men det sker manuellt. Vi tenderar också att glömma saker vi har sprang av eller andra mindre sysslor.I denna ålder som jag tyckte det var mycket lättare att ha en synkronisering kalender oc...

Enhetlig kommunikation och automation skåp.

jag ursprungligen hade en rörig ordning av ledningar och anordningar gömd bakom TV: N. Dessa enheter är mitt hem automation och data kommunikationsutrustning. Jag ville ha ett skåp att ena allt för att ge skydd och enkelt underhåll.Här är hur jag gjo...