30 aprilie 2021

T08:Transmitere date (mqtt) : Controller IoT LK3 -> Node Red->grafana.com

 *link pentru configurare grafana :

 https://simonhearne.com/2020/pi-influx-grafana/

http://pdacontrolen.com/complete-installation-grafana-dashboard-in-raspberry-pi-3-b-b/


-pe platforma IoT GRAFANA adaugati o sursa de date catre baza de date influxDB creata in postarea anterioara







-creati un dashboard

-adaugati un panel

-in interogare selectati tabelul "pm10" (creat in postarea anterioara)





T07:Transmitere date(insert) - Node Red <-> baza de date influxDB

 *instalati in Node Red nodul : node-red-contrib-influxdb

*instalati influxDB :

https://simonhearne.com/2020/pi-influx-grafana/

https://pimylifeup.com/raspberry-pi-influxdb/


 1.CONFIGURARE  influxDB

-deschidem un flow in Node Red

-adugati un obiect "influxdb out" si creati o baza de date (ex : senzori)

-va conectati la baza de date "senzori"








-adaugam date in tabelul "pm10"








 2.adaugare/inserare date in influxDB

-adaugam in flow urmatoarele obiecte : "mqtt in" , "change" , "function" si "debug"








-datele (protocol mqtt) sunt primite de la un Lan Controller v3.7 care are conectat pe portul I2C un senzor de praf SPS30

-cu obiectul "change" transform mesajul text in numar

-editam obiectul "function":








-apasati "deploy" si observati in "debug" daca primiti date de la senzor


 3.verificare date in influxDB

-pentru a selecta date din baza de date editati obiectul "function" -SELECT-:







-pentru a sterge date din baza de date editati obiectul "function" -DELETE-:







-apasati "timestamp" si verificati in "debug" datele din baza de date influxDB



29 aprilie 2021

T06:Transmitere date (mqtt) : Controller IoT LK3 -> Node Red->thingspeak.com

*link pentru configurare thingspeak https://thingspeak.com/

1.CONFIGURARE THINGSPEAK

-creati un cont pe platforma IoT 

-mergeti la sectiune "channel setting"

-in acest test voi folosi canalul nr. 4 care va primi date de la un senzor de CO2








-mergeti in sectiunea "api keys" si notati cheia "write api key"

-mergeti in sectiunea "my profile" si notati cheia "mqtt apy key"

 2.conexiunea mqtt

-pentru acest test am folosit un senzor de CO2 model  MH-16 conectat la portul SERIAL al unui controler IoT - Lan Controller v3.7

-transmiterea datelor trebuie sa se faca la un interval de sub 15 secunde








-in Node Red adaugam un flow si  obiectele :  "mqtt in"  , "function" , "mqtt out" si "debug"








-editam obiectul "function" - transform mesaj text in numar








-configuram obiectul "mqtt out"

-editam topicul astfel - in loc de "1354216" completati numarul dvs de canal iar in loc de S..........5 completati "write api key"








-la sectiunea "security" completati orice la "username" iar la "password" completati "mqtt apy key"

-trebuie sa primiti mesaje in "debug"

 3.vizualizarea graficului din THINGSPEAK

-poate dura cateva minute pana apar primele valori pe grafic

-mergeti in sectiune "private view"




T05:Dashboard(Node Red) cu date preluate din SQLite

-adugati la tab ul "BROKER" inca un grup (ex:GENERARE GRAFIC)

-adaugati un obiect tip "button"








-adaugati un obiect tip "function" si editati :

var newMsg = {

    "topic": "select * from senzor_pow_A;"

                        }

return newMsg;


-adaugati un obiect tip "sqlite"

-adaugati un obiect tip "function" si editati :

 var series = ["POW-A"];  

 var labels = ["VALORI"];  

 var data = "[[";  

   

 for (var i=0; i < msg.payload.length; i++) {  

   data += '{ "x":' + msg.payload[i].timp + ', "y":' + msg.payload[i].valoare + '}';  

   if (i < (msg.payload.length - 1)) {  

     data += ","  

   } else {  

     data += "]]"  

   }  

 }  

 var jsondata = JSON.parse(data);  

 msg.payload = [{"series": series, "data": jsondata, "labels": labels}];  

  return msg;


-adaugati un obiect tip "chart"








-apasati "deploy"

-deschideti dashboard ul si apsati butonul "GENERARE GRAFIC"



T04:Transmitere date(insert) - Node Red <-> baza de date SQLite

*instalati in Node Red nodul : node-red-node-sqlite

*instalati SQLLite :  https://www.sqlite.org/download.html


 1.CONFIGURARE  SQLITE

-adugati un obiect "sqlite" si creati o baza de date (ex : senzori)







 2.creare tabel in baza de date

-in baza de date sqlite creati un tabel ("senzor_pow_A") cu structura :

CREATE TABLE `senzor_pow_A` (

`an` INTEGER,

`luna` INTEGER,

`zi` INTEGER,

`ora` INTEGER,

`minut` INTEGER,

`secunda` INTEGER,

`timp` INTEGER,

`tip` TEXT,

`valoare` REAL

);


 3.adaugare/inserare date in tabel

-adugati un obiect functie si editati la "function" :

var newMsg = {

"topic": "INSERT INTO senzor_pow_A VALUES (strftime('%Y','now'),strftime('%m','now'),strftime('%d','now'),strftime('%H','now'),strftime('%M','now'),strftime('%S','now'),(strftime('%s%f','now'))*10, 'pow', " +msg.payload + ")"

                           }

return newMsg;

 4.conexiunea mqtt

-pentru acest test am folosit un senzor de curent SCT-013-000 conectat la portul analog inpa2 al unui controler IoT - Lan Controller v3.5










-in partea de "debug" al Node Red o sa va apara mesajele de inserare date in tabel











T03:Tablou de bord (dashboard) pe platforma Node Red

instalati in Node Red nodul : node-red-dashboard

 -folosim conexiunea mqtt din postarea precedenta

-adaugam un obiect "gauge" si un obiect "chart"








-apasam butonul "dashboard" si adaugam un "tab" (ex :BLOG)








-dupa adaugarea tab ului BLOG adaugam la acest tab un grup (ex: TEMPERATURA)








-dupa adaugarea tab -ului si grupului revenim la configurarea obiectelor "gauge" si "chart"














-apasati butonul "deploy"

-deschideti dashboard




28 aprilie 2021

T02:Transmitere date (mqtt) : Controller IoT LK3 -> Node Red

*link pentru instalarea Node RED : https://nodered.org/docs/getting-started/

*link pentru instalare server/broker Mosquitto : https://mosquitto.org/download/

*https://tinycontrol.pl/en/lan-controller-35/docs/

1.CONFIGURARE PROTOCOL MQTT








Se acceseaza interfata web a controlerului IoT - Lan Controller v3.7

Setari in fereastra MQTT :

-server address : adresa serverului(broker) MQTT

-port:1883 (port server(broker) MQTT

-login/password : user si parola de access la server MQTT

-topic prefix : editati topicul pentru comunicatia MQTT ( ex: lk3/d02)

-sending period : perioada la care se trasnmite valorile senzorilor(secunde)(ex : 30 secunde)






-selectati senzorii care vor transmite date prin protocolul MQTT

-in acest test voi folosi senzorul AM2320 (componenta : temperatura)

-dupa ce conectati senzorul AM2320 la controlerul IoT apasati butonul T1(T9) din fereastra 

-dupa aceste setari controlerul IoT va PUBLICA valorile(temperatura) obtinute de la senzorul AM2320  la fiecare 30 de secunde


 2.CONFIGURARE NODE-RED

-intr un FLOW din NODE-RED adaugati un obiect "mqtt-in" si un obiect "debug"








-deschideti obiectul "mqtt-in" si completati la topic : lk3/d02/t1 (abonare la topicul "lk3/d02"(prefix) publicat de controlerul IoT + "t1" care este topicul pentru senzorul(temperatura) AM2320 )








-configurati conexiunea catre server(broker) mqtt

-la server completati adresa IP  (server mqtt)








-apasati butonul "deploy"

-apasati butonul "debug messages" si o sa obtineti valorile transmise de controlerul IoT 






T01:Controlerul IoT - model Lan Controller v3.7(LK3) - produs de tinycontrol.pl

1.DESCRIERE

Lan Controller este un dispozitiv universal care vă permite să conectați mai mulți senzori diferiți și să vizualizați de la distanță valorile acestora și să controlați de la distanță diferite tipuri de ieșiri.

2.HARDWARE









3.SOFTWARE

  • Protocoale moderne de comunicare: SNMP, HTTP și MQTT.
  • Protocoale de comunicații criptate bazate pe TLS (anterior SSL): HTTPS, e-mail (port 465), MQTTS (port 8883), SNMP v3.
  • Multe opțiuni pentru setarea și controlul utilizând cereri HTTP din afara dispozitivului sau controlul altor receptoare cu comenzi HTTP de pe dispozitiv. 
  • Posibilitatea citirii datelor de la senzori prin MODBUS TCP și controler.

4.SENZORI / DISPOZITIVE ACCEPTATE

  • Intrări analogice (întregul spectru de senzori cu tensiune sau ieșire 4-20mA)
    • Senzor de tensiune AC: contor de curent alternativ, TR-12
    • Senzori de curent alternativ: SCT013-000, SCT-013-03
    • Senzori de curent continuu: ACS711EX_15, ACS711EX_30, ACS709_75, ACS711LC_12, ACS711LC_25, ACS711LC20, WCS1800, LA100P, R = 0.1Ω, R = 0.01Ω, R = 0.05Ω
    • senzor de temperatură: PT1000 (cu rezistor suplimentar)
  • Intrări logice (digitale)
    • senzor magnetic de deschidere a ușii etc.
    • măsurarea energiei și puterii de la ieșirile impulsurilor contoarelor de energie
  • Magistrala cu 1 fir
    • senzor de temperatură DS18B20
  •  Magistrala I2C
    • senzori de umiditate: BME280 (umiditate, temperatură, presiune atmosferică), AM2320 (umiditate, temperatură)
    • senzor de particule SPS30 (PM1, PM2.5, PM4, PM10)
    • Afișaj OLED de 0,96 inch
  • Port serial
    • Modul GSM
    • senzor de particule SPS30 și SDS011
    • Senzori CO2 MH-Z16, MH-Z19
    • Invertoare PV Duraluxe
    • senzor de distanță cu ultrasunete
    • Scaner 2D și cod de bare
    • Cititoare RFID 
  • Port MODBUS (printr-un convertor RS485 suplimentar)
    • Contoare de energie bidirecționale SDM120M și SDM72D-M (putere, energie, tensiune, curent și alte citiri în funcție de contor)
    • senzor profesional pentru parametrii apei RDO-PRO-X
    • Încărcătoare solare Epever Tracer
    • Invertoare fotovoltaice Sofarsolar și GTIL
    • Controler de refrigerare EKC 202C Danfos
  • MODBUS TCP
    • Controlerul MODBUS poate citi senzorii conectați la controlerul Lan (testat cu Siemens LOGO)
4.SETARI COMUNICATIE MQTT