Arduino UNO -> nettemp (zapis danych do bazy)

Ogólne forum z pytaniami i propozycjami
carpov
Posty: 74
Rejestracja: pt lut 05, 2016 10:17 am
Lokalizacja: Głogów

Arduino UNO -> nettemp (zapis danych do bazy)

Post autor: carpov » ndz paź 22, 2017 9:01 pm

Witam

Mam program idealnie realizujący pomiar przepływu wody za pomocą http://www.hotmcu.com/g1-water-flow-sensor-p-312.html.
Za Chiny ludowe nie działa poprawnie na ESP czy też Rpi.

W jaki sposób mogę prawidłowe pomiary z Arduino posłać do nettempa?
Proszę o pomoc
Ostatnio zmieniony ndz sty 07, 2018 9:27 pm przez carpov, łącznie zmieniany 2 razy.

carpov
Posty: 74
Rejestracja: pt lut 05, 2016 10:17 am
Lokalizacja: Głogów

Arduino UNO -> nettemp (zapis danych do bazy)

Post autor: carpov » ndz sty 07, 2018 9:19 pm

Powróciłem do tematu. Na razie testowo bawię się na testowej bazie sqlite3. Test na przykładzie czujnika DHT11 podpiętego do arduino.
Poniżej skrypt zapisujący dane do bazy jacek.db

Kod: Zaznacz cały

import serial
import time
import sqlite3 as mdb

arduino = serial.Serial("/dev/ttyACM0")
arduino.baudrate=9600

data = arduino.readline()
time.sleep(1)
data = arduino.readline()
pieces = data.split("\t")

temp = pieces[0]
humid= pieces[1]

print(temp)
print(humid)

con = mdb.connect('jacek.db')

with con:

	cursor = con.cursor()
	cursor.execute("INSERT INTO dane (ID, T, H) VALUES('', %i, %i)", (temp, humid))
	con.commit()
	cursor.close()
Wykonując polecenie

Kod: Zaznacz cały

[email protected]:~ $ python ./czytaj.py
Otrzymuje

Kod: Zaznacz cały

Traceback (most recent call last):
  File "./czytaj.py", line 24, in <module>
    cursor.execute("INSERT INTO dane (ID, T, H) VALUES('', %i, %i)", (temp, humid))
sqlite3.OperationalError: near "%": syntax error
Co powinno być za VALUES? Pomoże ktoś?

uzi18
Posty: 531
Rejestracja: pn kwie 18, 2016 9:35 pm

Re: Arduino UNO -> nettemp (zapis danych do bazy)

Post autor: uzi18 » czw sty 18, 2018 7:14 pm

Jak wyglada tabela danych? Wysylasz 2 wartosci a podajesz ze masz 3.

Wysłane z mojego MI MAX przy użyciu Tapatalka


carpov
Posty: 74
Rejestracja: pt lut 05, 2016 10:17 am
Lokalizacja: Głogów

Re: Arduino UNO -> nettemp (zapis danych do bazy)

Post autor: carpov » sob sty 20, 2018 11:14 am

Cześć

Dzięki uzi18 za zainteresowanie tematem :)

Co do tematu: skrypt python'a opanowany, zbiera dane i co minutę zapisuje dane do wskazanej tabeli bazy. Tymczasowo/testowo utworzyłem tabelę o nazwie 'dane' w bazie NT: nettemp.db, zapisuję tam Timestamp , wartość chwilową przepływu oraz licznik globalny przepływu

I teraz kolej na wyświetlanie danych w NT (status + wykres)
Kto wie jak to jest zorganizowane? bo:
1. W /var/www/netemp/db mamy bazę nettemp.db w której to znajduje się "struktura" GUI nettempa - listy rozwijane, tabele.itd

2. Dane zczytywane z konkretnych czujników wedrują do: /var/www/nettemp/dbf w formie plików *******.sql

No właśnie jak to teraz pogodzić? żeby uzyskać dodatkową pozycję z zapisywaną daną w STATUS + WYKRES. Oczywiście jest możliwość wyciągnięcia php'em danych do OwnWidget w NT ale to rozwiązanie połowiczne - potrzebuję wykresy do analizy tych danych.

Pomoże ktoś?
Jak rozwiąże to ....to kolejnym krokiem będzie odczyt z bazy do NT parametrów głowic EQ-3.

uzi18
Posty: 531
Rejestracja: pn kwie 18, 2016 9:35 pm

Re: Arduino UNO -> nettemp (zapis danych do bazy)

Post autor: uzi18 » sob sty 20, 2018 12:54 pm

w nettemp.db jest konfiguracja i chyba ostatnie srednie wartosci.
Do zbierania danych zakladasz oddzielna tabele.
Ale skoro chcesz to zbierac to moze wykorzystac do tego coś gotowego w nettemp zamiast wynajdywac kolo?
Tzn pythonem przepychac dane przez receiver.php do nettemp.

Wysłane z mojego MI MAX przy użyciu Tapatalka


carpov
Posty: 74
Rejestracja: pt lut 05, 2016 10:17 am
Lokalizacja: Głogów

Re: Arduino UNO -> nettemp (zapis danych do bazy)

Post autor: carpov » sob sty 27, 2018 7:56 pm

uzi18 pisze:
sob sty 20, 2018 12:54 pm
Do zbierania danych zakladasz oddzielna tabele.
OK w której bazie? nettemp.db? w lokalizacji
LOK1

Kod: Zaznacz cały

/var/www/nettemp/dbf/nettemp.db
czy tabelę w nowej bazie kolejnyczujnik.sql w lokalizacji
LOK2

Kod: Zaznacz cały

/var/www/nettemp/db
uzi18 pisze:
sob sty 20, 2018 12:54 pm
Ale skoro chcesz to zbierac to moze wykorzystac do tego coś gotowego w nettemp zamiast wynajdywac kolo?
Tzn pythonem przepychac dane przez receiver.php do nettemp
Jak to jest? skrypt pobiera dane z lokalizacji LOK2 z baz "*.sql" z odczytywanymi wartościami kolejnych urządzeń i przepisuje do bazy nettemp.db do odpowiednich tabel?


Moja wiedza i zdolność analizy kodu receiver,a jest znikoma. Totalnie nie wiem jak to ruszyć.
Dobrzy ludzie ...pomożecie proszę?!

pasiekazj
Posty: 619
Rejestracja: pn wrz 28, 2015 10:35 am
Lokalizacja: Częstochowa
Kontaktowanie:

Re: Arduino UNO -> nettemp (zapis danych do bazy)

Post autor: pasiekazj » ndz sty 28, 2018 11:11 am

Możesz to słać w ten sposób:

Kod: Zaznacz cały

http://192.168.50.107/receiver.php?device=wireless&ip=192.168.50.234&key=1234&type=water&value=10&current=100
resztę NT powinien załatwić, jest problem z wykresami, ale to da się poprawić. Ja tak posyłam licznik prądu na esp.
Rpi 3 + SSD 240 GB + nettemp.

uzi18
Posty: 531
Rejestracja: pn kwie 18, 2016 9:35 pm

Re: Arduino UNO -> nettemp (zapis danych do bazy)

Post autor: uzi18 » wt sty 30, 2018 5:46 pm

wysylaj z arduino dane w 1 linjce i pobieraj poprzez data = arduino.readline() - co jesli druga linijka nie dojdze???
wtedy dane sie zamienia miejscami ...

tak jak wyzej napisano - recejver.php mozesz wywolac poprzez zapytanie http (jak wyzej):

Kod: Zaznacz cały

from urllib2 import urlopen
urlopen(http://192.168.50.107/receiver.php?device=wireless&ip=192.168.50.234&key=1234&type=water&value=10&current=100)
lub poprzez :

Kod: Zaznacz cały

import os
os.system("php-cgi -f receiver.php device=wireless ip=192.168.50.234 key=1234 type=water value=10 current=100")

carpov
Posty: 74
Rejestracja: pt lut 05, 2016 10:17 am
Lokalizacja: Głogów

Re: Arduino UNO -> nettemp (zapis danych do bazy)

Post autor: carpov » śr lut 07, 2018 11:33 pm

Dzięki za odpowiedzi
Rozumiem że jest to przykład dla odpytania ESP.
Tyle że ja mam Arduino fizycznie spięte z Rpi po USB

Tak czy siak :) przetestowałem to. W odpowiedzi dostaję "wrong key"
Gdzie szukać właściwego ciągu dla param. -> key ?

Awatar użytkownika
pimowo
Betatester
Posty: 4651
Rejestracja: czw lut 19, 2015 9:17 am
Lokalizacja: Wołów

Re: Arduino UNO -> nettemp (zapis danych do bazy)

Post autor: pimowo » śr lut 07, 2018 11:39 pm

Key=Twój klucz z NT->Settings->Server-Node
[email protected] HP MicroServer N54L, Raspberry Pi 3B, Raspberry Pi B+

ODPOWIEDZ

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 4 gości