Pienten ponistelujen jäkeen rautalankaversio.
keskiviikko 25. huhtikuuta 2018
SQLitestä Pythonilla nettisivulle
Hei, dataa!

Ja sitten seuraava versio
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
tiistai 24. huhtikuuta 2018
Voi jummi
No kestipäs hieman saada näin yksinkertainen ohjelma toimimaan, hah hah. Kaikkea sitä oppii.
No nyt pelittää, tästä se lähtee.
No nyt pelittää, tästä se lähtee.
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
torstai 19. huhtikuuta 2018
Uusi microbit projekti
Dataa syntyy ja se menee säilöön.
Raspberry lukee dataa ja tallentaa ne sql-tietokantaan.
Nettisivulla näytetään ne tiedot.
Testataan Raspberryllä, minicom-ohjelmalla
sudo minicom -b 11520 -D /dev/ttyACM0
Toimii, tulee V:30
Sitten tein tietokannan Raspberryyn
sqlite3 asennettu.
tietokanta.db
taulu
-avain, valo kaikki NUMERIC
Lisäsin yhden tietueen.
SQL-tietokanta
Tietokannan käsittelyyn Pythonilla löytyy ohjeita: http://sebastianraschka.com/Articles/2014_sqlite_in_python_tutorial.html#connecting-to-an-sqlite-database
Kokeilin tietokannan lukua:
from serial import *
import time
import sqlite3
conn = sqlite3.connect('tietokanta.db')
print("tietokanta avattu")
c = conn.cursor()
c.execute("SELECT * FROM taulu")
conn.commit()
for row in c:
print ("Aika ",row[0])
conn.close()
print("loppu")
import time
import sqlite3
conn = sqlite3.connect('tietokanta.db')
print("tietokanta avattu")
c = conn.cursor()
c.execute("SELECT * FROM taulu")
conn.commit()
for row in c:
print ("Aika ",row[0])
conn.close()
print("loppu")
Toimii.
Sitten koodataan lisää.
Ohjelma lukee sarjaporttia ja kirjoittaa sql-tietokantaan tietueita.
#! /usr/bin/python3
# -*- coding: utf-8 -*-
"""
Copyright (c) 2018 Jani Mantynen & Ville Heikkiniemi
Sirpa Mazarakis
Sirpa Mazarakis
Sarjaportin luku Janin ja VIllen ohjelmasta
Permission is granted to copy, distribute and/or modify this document under
the terms of the GNU Free Documentation License, Version 1.3 or any later
version published by the Free Software Foundation; with no Invariant Sections,
no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be
found online at http://www.fsf.org/licensing/licenses/fdl.txt
Ohjelma lukee sarjaportista rivin ja tekee siitä tietueen tietokantaan
"""
from serial import *
import time
import sqlite3
def Tapahtuma(data):
#print("data ",data)
if len(data) > 2:
try:
conn = sqlite3.connect('tietokanta.db')
#print("tietokanta avattu")
except Exception:
print("tietokantaa ei avattu")
sys.exit()
c = conn.cursor()
aika = int(time.time())
#print(aika)
valo = int(data[2:len(data)])
#print(valo)
c.execute("INSERT INTO taulu VALUES (?, ?)", (aika, valo))
conn.commit()
conn.close()
def main():
# Yritetään luoda sarjaportti
try:
microbit = Serial(port='/dev/ttyACM0', baudrate=115200, timeout=2)
except Exception:
print("tarkista portti")
while True:
try:
Tapahtuma(microbit.readline().decode()) # luetaan rivi
except KeyboardInterrupt:
print("keskeytetään")
sys.exit()
if __name__ == "__main__":
main()
Paitsi että kun syöte jää puskuriin, niin sama aikaleima tulee useaan tapahtumaan. Microbitin pitäisi lähettää se aika..eiku muuttamaan.
Tai olkoot.
Sitten tätä dataa pitäisi saada nettisivulle näkyviin.
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
torstai 12. huhtikuuta 2018
Tää toimii
Kyllä koodaaminen on kuin syömään rupeais 😊
Testasin ensin Python-ohjelman toiminnan Raspberryn työpöydällä. Kuinka vaikeaa onkaan ottaa kuvaruutukaappaus Raspbianilla, puhumattakaan videoida. Ohje kuvaruutukaappaukseen täältä: https://www.imore.com/how-take-screenshot-raspberry-pi
No, ohjelma toimii, eli työpöydälle syntyy json.tietokanta, ja se myös päivittyy.
Testasin ensin Python-ohjelman toiminnan Raspberryn työpöydällä. Kuinka vaikeaa onkaan ottaa kuvaruutukaappaus Raspbianilla, puhumattakaan videoida. Ohje kuvaruutukaappaukseen täältä: https://www.imore.com/how-take-screenshot-raspberry-pi
No, ohjelma toimii, eli työpöydälle syntyy json.tietokanta, ja se myös päivittyy.
Python koodia on täällä: https://docs.google.com/document/d/1Qvv-f5VeFt-dMbywJq2jOnxNhyFuyf4X43oGG7QJ2-Q/edit?usp=sharing
Kreditit Janille ja Villelle.
Sitten se jQuery. Eli micro:bitillä painetaan nappia, ja nettisivun divi liikkuu.
Koodipohja saatiin taas Villeltä. Ohjelma lukee json-tietokantaa.
// Koodi saatu Ville Heikkiniemeltä
// Haetaan JSON
function haeJson(e){
$.ajax({
cache: false,
url: 'data.json',
dataType: 'json',
success: function(data) {
var date = new Date(data['REF']*1000);
if (parseInt((date.getTime() / 1000), 10) - data['YY'] < 5){
$( "#keski1" ).addClass( "liikkuu" );
} else { $( "#keski1" ).removeClass( "liikkuu" ); }
if (parseInt((date.getTime() / 1000), 10) - data['II'] < 5){
$( "#keski3" ).addClass( "liikkuu" );
} else { $( "#keski3" ).removeClass( "liikkuu" ); }
}
});
setTimeout("haeJson()" ,1000);
}
function haivytys_click(lohko) {
var _lohko = document.getElementById(lohko);
_lohko.onclick = function() { _lohko.classList.add("liikkuu"); }
_lohko.ondblclick = function() { _lohko.classList.remove("liikkuu"); }
}
// Funktio joka ladataan sivun lataamisen yhteydessa
window.onload = function() {
haivytys_click('keski1');
haivytys_click('keski3');
haeJson();
}
Tää toimii!
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
torstai 5. huhtikuuta 2018
Toinenkin div liikkuu
Lisätään sama divin kasvaminen oikeaankin reunaan.
No onpas tyhmän näköistä koodia. Kun jos liikkuvia osia olisikin useampi. Tämä tarvinnee jQueryä.
No onpas tyhmän näköistä koodia. Kun jos liikkuvia osia olisikin useampi. Tämä tarvinnee jQueryä.
Tilaa:
Blogitekstit (Atom)
