15 Mart 2021 Pazartesi

Bug'u var ama idare et ilk kodlar

 from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5.QtCore import QThread,pyqtSignal

from PyQt5.QtCore import pyqtSlot

import time

import os

import sys

import datetime

import sqlite3

import serial

import subprocess

from sutmatik2a import Ui_Form

import smtplib

import ssl


#

#

# bu kodlar okey gelenveri değişkenini takip et

#

#

#



global sira

sira=0

global deneme

deneme=0

global sicaklik

sicaklik="0"

global seriport

global vsut

vsut=0.0

global ld

ld=0

global kalann

kalann=0

global verilen

verilen =0


global pp

pp=1

global gsay

gsay=0

global sicaksayac

sicaksayac=0

global config

config=0

global sifre

sifre=0

def sport():

    #

    try:

        global seriport

        seriport=serial.Serial(port="COM3",baudrate=9600,bytesize=8,timeout=2,stopbits=serial.STOPBITS_ONE,parity=serial.PARITY_NONE)

        seriport.close()

        if seriport.is_open!=True:

            seriport.open()

        seriport.write(b'trtrtxkxaa')

    except:

        print("seri haberlesme hatasi")


sport()



def veritabaniolustur():

  con=sqlite3.connect("sicaklikverisi.db")

  cursor=con.cursor()

  cursor.execute("create table if not exists durum(sira text,zaman text,sicaklik text,kalan text,verilen text)")

  con.commit()

  con.close()

def veritabaninadegerekle():

  global saat

  global dakika

  global saniye

  

  zaman=datetime.datetime.now()

  yil=zaman.year

  ay=zaman.month

  gun=zaman.day

  saat=zaman.hour

  dakika=zaman.minute

  saniye=zaman.second

  global sira

  

  dosya=open("s.txt")

  sirano=dosya.readlines()

  siradegeri=sirano[0]

  sira=int(siradegeri)

  dosya.close()

  sira=sira+1

  sira=str(sira)


  

  global zaman2

  zaman2=str(yil)+":"+str(ay)+":"+str(gun)+"-"+str(saat)+":"+str(dakika)

  

  con=sqlite3.connect("sicaklikverisi.db")

  cursor=con.cursor()

  cursor.execute("insert into durum('sira','zaman','sicaklik','kalan','verilen') values('"+str(sira)+"','"+str(zaman2)+"','"+str(sicaklik)+"','"+str(kalann)+"','"+str(verilen)+"')")

  con.commit()

  con.close()

  dosya=open("s.txt","w")

  dosya.write(str(sira))

  dosya.close()


veritabaniolustur()

veritabaninadegerekle()





class serii(QThread):

    gelenveri=pyqtSignal(str) # int ve str degiskenler tnaımlanırken signalde

    

    

    def run(self):

        self.inn=0

        while(True):

            ui.label7.setText(str(zaman2))

            time.sleep(0.3)

            try:

                

                gelen=seriport.readline().decode("utf8")

            except:

                print("seri okuma hatasi")

                seriport.close()

                sport()

                gelen="yok"

            global inn

            self.inn=self.inn+1

       

            self.gelenveri.emit(str(gelen))

            gelen2= gelen

            if(gelen!=""):

                pass

                #

                #print("g.:>>>"+str(gelen))

            if(self.inn>15):

                if(pp==1):

                    #

                    tiktok="trtrtxkxaa"

                    seriport.write(tiktok.encode())

                    self.inn=0

                    #print("ping")

                else:

                    print("ping engelli")

                self.inn=0


class ping(QThread):

    # veri tabanına degerler eklenecek yer

    

   



  

  

    def run(self):

        #

        veritabaniolustur()

        while(True):

            veritabaninadegerekle()

            for b in range (7):

                

                for c in range(60):

              #

                    time.sleep(1)

                    

    

            


class xas():

    

    


    #

    global deneme

    deneme=0



    def __init__(self): 

        import sys

        global app

        global Form

        global ui

        app = QtWidgets.QApplication(sys.argv)

        Form = QtWidgets.QWidget()

        ui = Ui_Form()

        ui.setupUi(Form)


       

        sys._excepthook = sys.excepthook 

        def exception_hook(exctype, value, traceback):

            print(exctype, value, traceback)

            sys._excepthook(exctype, value, traceback) 

            sys.exit(1) 

        sys.excepthook = exception_hook

        

        c=open("config.txt","r")

        cveri=c.readline()

        cveri2=cveri.split(":")

        if(config==0):

            ui.lineEdit.setText(str(cveri2[1]))

            ui.lineEdit_2.setText(str(cveri2[3]))

            ui.lineEdit_3.setText(str(cveri2[5]))

        c.close()

        

        # butonlarrr

        ui.pushButton.clicked.connect(self.doldur) # doldur

        ui.pushButton2.clicked.connect(self.iptall) # iptal

        ui.pushButton3.clicked.connect(self.yarim) # yarimlitre

        ui.pushButton4.clicked.connect(self.birlitre) # 1 litre

        ui.pushButton5.clicked.connect(self.ikilitre) # 2 litre

        ui.pushButton6.clicked.connect(self.uclitre) # 3 litre

        ui.pushButton7.clicked.connect(self.dortlitre) # 4 litre

        ui.pushButton_8.clicked.connect(self.beslitre) # 5 litre


        ui.pushButton_2.clicked.connect(self.kaydet) # kaydet fonk

        ui.pushButton_3.clicked.connect(self.tarihayarla) # tarih ayarlar fonk

        ui.pushButton_4.clicked.connect(self.mailayarla) # mail ayarlama kodu

        ui.pushButton_5.clicked.connect(self.kaydetsifre) 



        self.verial()

        Form.show()

        def cik():

            seriport.close()

            

            app.exec_()

            quit()


        sys.exit(cik())

        # def init fonk sonu

    def kaydetsifre(self):

        global sifre

        sifre=0

        c=open("config2.txt","r")

        cd=c.readline()

        c.close()

        

        sifretext=ui.lineEdit_12.text()

        if(sifretext==cd):

            sifre=1

            ui.lineEdit_12.setText("aktif")

        else:

            ui.lineEdit_12.setText("hatali")

 

    

    def mailayarla(self):

        self.gondericimail=ui.lineEdit_9.text()

        self.gondericisifre=ui.lineEdit_10.text()

        self.hedefmail=ui.lineEdit_11.text()

        mail=open("mail.txt","w")

        mail.writelines("gonderici:"+str(self.gondericimail)+":")

        mail.writelines("sifre:"+str(self.gondericisifre)+":")

        mail.writelines("hedef:"+str(self.hedefmail)+":")

        mail.close()




    def tarihayarla(self):

        self.dakka=ui.lineEdit_4.text()

        self.saat=ui.lineEdit_5.text()

        self.gun=ui.lineEdit_6.text()

        self.ay=ui.lineEdit_7.text()

        self.yil=ui.lineEdit_8.text()

        #os.system("sh "+"/home/pi/Desktop/new.sh")

        #sudo date -s"2020-03-05 18:28:00"

        ayarstr='-s"2020-03-05 18:28:00"'

        ayarstr='-s"'+str(self.yil)+'-'+str(self.ay)+'-'+str(self.gun)+' '+str(self.saat)+':'+str(self.dakka)+':00"'

        

        os.system("sudo date "+ayarstr)

        time.sleep(1)

        os.system("sudo reboot")

    

    def iptall(self):

        global pp

        pp=0

        seriport.write(b'ppppppcccp')

        time.sleep(1)

        seriport.write(b'ppppppcccp')

        time.sleep(0.3)

        seriport.write(b'ppppppcccp')

        ui.pushButton.setStyleSheet("background-color:blue\n")

        ui.pushButton3.setStyleSheet("background-color:blue\n")

        ui.pushButton4.setStyleSheet("background-color:blue\n")

        ui.pushButton5.setStyleSheet("background-color:blue\n")

        ui.pushButton6.setStyleSheet("background-color:blue\n")

        ui.pushButton7.setStyleSheet("background-color:blue\n")

        ui.pushButton_8.setStyleSheet("background-color:blue\n")

  

        pp=1

 

    def kaydet(self):

        global pulse

        global tankhacmi

        global karistirmadakika

        global pp

        pp=0

        

        

        pulse=ui.lineEdit.text()

        #ui.label_102.setText(str(pulse))

        

        if(sifre==1):

            

            tankhacmi=ui.lineEdit_3.text()

            ui.lineEdit_12.setText("kaydedildi")

            time.sleep(0.5)

        else:

            c=open("config.txt","r")

            cs=c.readline()

            cs2=cs.split(":")

            tankhacmi=cs2[5]

            c.close()

        ui.lineEdit_12.setText("sifre gir")

            

        #ui.label_104.setText(str(tankhacmi))

        karistirmadakika=ui.lineEdit_2.text()

        #ui.label_103.setText(str(karistirmadakika))

        #maxsicaklik=ui.lineEdit_9.text()

        #minsicaklik=ui.lineEdit_10.text()

        ayarverisi=str(karistirmadakika)+str(pulse)+"ae"+str(tankhacmi)

        seriport.write(ayarverisi.encode())

        dosya2=open("kalan.txt","w")

        dosya2.write(str(tankhacmi))

        dosya2.close()

        

        pp=1


        configverisi="pulse:"+str(pulse)+":karistici:"+str(karistirmadakika)+":sutmiktari:"+str(tankhacmi)+":"

        c=open("config.txt","w")

        c.write(str(configverisi))

        c.close()


    def  yarim(self):

        global litrex

        global ld

        global gsay

        global pp

        pp=0

       


        gsay=gsay+1

        if(gsay==2):


            litrex="55q1zdyyyy"

            ui.pushButton4.setStyleSheet("background-color:blue\n")

            ui.pushButton5.setStyleSheet("background-color:blue\n")

            ui.pushButton6.setStyleSheet("background-color:blue\n")

            ui.pushButton7.setStyleSheet("background-color:blue\n")

            ui.pushButton_8.setStyleSheet("background-color:blue\n")

            ui.pushButton3.setStyleSheet("background-color:orange\n")

            ld=1

            gsay=0

        elif(gsay==1):

            #print("yarim")

            seriport.write(b'atbkotcggg')

            ui.pushButton3.setStyleSheet("background-color:black\n")

        elif(gsay>2) :

            gsay=0

        pp=1

        vsut=0.5

    def birlitre(self):

        

        global litrex

        global ld

        global gsay

        global pp

        pp=0

       

      

        

        gsay=gsay+1

        if(gsay==2):

            litrex="01w1zdyyyy"

            ui.pushButton4.setStyleSheet("background-color:orange\n")

            


            ui.pushButton3.setStyleSheet("background-color:blue\n")

            #ui.pushButton4.setStyleSheet("background-color:blue\n")

            ui.pushButton5.setStyleSheet("background-color:blue\n")

            ui.pushButton6.setStyleSheet("background-color:blue\n")

            ui.pushButton7.setStyleSheet("background-color:blue\n")

            ui.pushButton_8.setStyleSheet("background-color:blue\n")

            ld=1

            gsay=0

        elif(gsay==1):

            

            seriport.write(b'atbkotcggg')

            ui.pushButton4.setStyleSheet("background-color:black\n")

        elif(gsay>2):

            gsay=0


        vsut=1.0

        pp=1

        

    def ikilitre(self):

        global litrex

        global ld

        global pp

        pp=0

        

       

        

        global gsay


        gsay=gsay+1

        if(gsay==2):

            litrex="02e1zdyyyy"

            

            ui.pushButton5.setStyleSheet("background-color:orange\n")


            ui.pushButton3.setStyleSheet("background-color:blue\n")

            ui.pushButton4.setStyleSheet("background-color:blue\n")

            #ui.pushButton5.setStyleSheet("background-color:blue\n")

            ui.pushButton6.setStyleSheet("background-color:blue\n")

            ui.pushButton7.setStyleSheet("background-color:blue\n")

            ui.pushButton_8.setStyleSheet("background-color:blue\n")

            ld=1

            gsay=0

        elif(gsay==1):

            seriport.write(b'atbkotcggg')

            ui.pushButton5.setStyleSheet("background-color:black\n")

        elif(gsay>2):

            gsay=0

        vsut=2.0

        pp=1

        

    def uclitre(self):

        global litrex

        global ld

        global gsay

        global pp

        pp=0

       

     

        

        gsay=gsay+1

        

        if(gsay==1):

            

            seriport.write(b'atbkotcggg')

            ui.pushButton6.setStyleSheet("background-color:black\n")

        elif(gsay==2):

            

            litrex="03r1zdyyyy"

            

            ui.pushButton6.setStyleSheet("background-color:orange\n")


            ui.pushButton3.setStyleSheet("background-color:blue\n")

            ui.pushButton4.setStyleSheet("background-color:blue\n")

            ui.pushButton5.setStyleSheet("background-color:blue\n")

            #ui.pushButton6.setStyleSheet("background-color:blue\n")

            ui.pushButton7.setStyleSheet("background-color:blue\n")

            ui.pushButton_8.setStyleSheet("background-color:blue\n")

            ld=1

            gsay=0

        elif(gsay>2):

            gsay=0

        vsut=3.0

        pp=1

    def dortlitre(self):

        global litrex

        global ld

        global gsay

        global pp

        pp=0

        

    

        

        gsay=gsay+1

        if(gsay==1):

            

            seriport.write(b'atbkotcggg')

            ui.pushButton7.setStyleSheet("background-color:black\n")


        elif(gsay==2):

            

            litrex="04t1zdyyyy"

            

            ui.pushButton7.setStyleSheet("background-color:orange\n")


            ui.pushButton3.setStyleSheet("background-color:blue\n")

            ui.pushButton4.setStyleSheet("background-color:blue\n")

            ui.pushButton5.setStyleSheet("background-color:blue\n")

            ui.pushButton6.setStyleSheet("background-color:blue\n")

            #ui.pushButton7.setStyleSheet("background-color:blue\n")

            ui.pushButton_8.setStyleSheet("background-color:blue\n")

            ld=1

            gsay=0

        elif(gsay>2):

            gsay=0

        vsut=4.0

        pp=1

    def beslitre(self):

        global litrex

        global ld

        global gsay

        global pp

        pp=0

        

       

        

        gsay=gsay+1

        if(gsay==1):

            

            seriport.write(b'atbkotcggg')

            ui.pushButton_8.setStyleSheet("background-color:black\n")

        elif(gsay==2):

            litrex="05u1zdyyyy"

            

            ui.pushButton_8.setStyleSheet("background-color:orange\n")


            ui.pushButton3.setStyleSheet("background-color:blue\n")

            ui.pushButton4.setStyleSheet("background-color:blue\n")

            ui.pushButton5.setStyleSheet("background-color:blue\n")

            ui.pushButton6.setStyleSheet("background-color:blue\n")

            ui.pushButton7.setStyleSheet("background-color:blue\n")

            #ui.pushButton_8.setStyleSheet("background-color:blue\n")

            ld=1

            gsay=0

        elif(gsay>2):

            gsay=0

        vsut=5.0

        pp=1

        

    def doldur(self):

        global ld

        global pp

        global gsay

        pp=0

        ui.pushButton.setStyleSheet("background-color:red\n")

        

        gsay=0

        try:

            if(ld==1):

                #

                self.litregonder=litrex

                seriport.write(litrex.encode())

                ui.pushButton.setStyleSheet("background-color:blue\n")

                ui.pushButton3.setStyleSheet("background-color:blue\n")

                ui.pushButton4.setStyleSheet("background-color:blue\n")

                ui.pushButton5.setStyleSheet("background-color:blue\n")

                ui.pushButton6.setStyleSheet("background-color:blue\n")

                ui.pushButton7.setStyleSheet("background-color:blue\n")

                ui.pushButton_8.setStyleSheet("background-color:blue\n")

                ld=0

                #os.system('sudo sh /home/pi/Desktop/2/launcher.sh')

                #time.sleep(3)

                #subprocess.run(["sudo","python3","/home/pi/Desktop/2/meleme.py"],capture_output=True)

                

            else:

                ui.label9.setText("secim yap")

                ld=0

        except:

            ui.label9.setText("litre ??")

        pp=1

                

  

    ################################ deger atamalar


    def degerata(self,val):

        global pp

        try:

            #ui.label.setText(str(val))

             #print("val[0]:"+str(val[0]))

                # "xk:sicaklik35:xk"

            global verilen

            global kalann

            if(val[0]=="x" and val[1]=="k"):

              sicaklikverisi=val.split(":")

              #print(sicaklikverisi[2])

              ui.label6.setText(str(sicaklikverisi[1])) # sicaklik labeli

              sicaklikkayit=sicaklikverisi[1].split("=")

              global sicaklik

              sicaklik=str(sicaklikkayit[1])

              sica=sicaklik.split("C")

              

             

              sicak=sica[0]

              

              ksicaklik=float(sicak)

              

              ksicaklik=int(ksicaklik)

              #print("sicaklik:"+str(ksicaklik))

              if(ksicaklik>10):

                  #print("aamma")

                  global sicaksayac

                  #print("sayac:"+str(sicaksayac))

                  sicaksayac=sicaksayac+1

                  if(sicaksayac>5):


                      #print("zza")

                      dosya=open("mail.txt","r")

                      mveri=dosya.readline()

                      mveri2=mveri.split(":")

                      #print(mveri2[1])

                      #print(mveri2[3])

                      #print(mveri2[5])


                      #print(mveri)

                      gmail=mveri2[1]

                      gsifre=mveri2[3]

                      hedef=mveri2[5]

                      s=smtplib.SMTP('smtp.gmail.com',587)

                      s.starttls()

                      s.login(str(gmail),str(gsifre)) # gmail > gonderici  

                      mesaj="sutmatik sicakligi 10 derecenin uzerindedir." #+str(ksicaklik)

                      s.sendmail(str(gmail),str(hedef),mesaj)

                      s.quit()

                      dosya.close()

                      sicaksayac=0

                      print("mail gonderildi")



              

              #print("ssa"+str(kritiksicaklik))

              

            elif(val[0]=="y" and val[1]=="y"):

                #print("yyyyyyyyyyyyyyyyyyy")

                self.sicaklikdurumu=val.split(":")

                #print("sicaklik durumu>>>"+str(self.sicaklikdurumu[1]))

                ui.label8.setText(str(self.sicaklikdurumu[1]))

            elif (val[0]=="k" and val[1]=="l"):

                #print("kalannnnnnnnnnnnn")

                self.kalan=val.split(":")

                ui.label.setText(str(self.kalan[1]))

                kalann=self.kalan[1]

                



            elif(val[0]=="b" and val[1]=="t"):

                ld=0

                ui.pushButton.setStyleSheet("background-color:blue\n")

                ui.pushButton3.setStyleSheet("background-color:blue\n")

                ui.pushButton4.setStyleSheet("background-color:blue\n")

                ui.pushButton5.setStyleSheet("background-color:blue\n")

                ui.pushButton6.setStyleSheet("background-color:blue\n")

                ui.pushButton7.setStyleSheet("background-color:blue\n")

                ui.pushButton_8.setStyleSheet("background-color:blue\n")




                

                '''

                dosya2=open("kalan.txt")

                kalansut=dosya2.readlines()

                kalandeger=float(kalansut[0])

                kalandeger2=kalandeger-vsut

                ui.label.setText(str(kalandeger2))

                dosya2=open("kalan.txt","w")

                dosya2.write(str(kalandeger2))

                dosya2.close()

                '''

              





                

            elif(val[0]=="l" and val[1]=="t"):

                #print("lt>>>>>>>>>>>>>>>")

                self.verilensut=val.split(":")

                ui.label4.setText(str(self.verilensut[1]))

                verilen=self.verilensut[1]

                

            elif(val[0]=="d" and val[1]=="y"):

                self.yazi=val.split(":")

                ui.label9.setText(str(self.yazi[1]))

                if(val[3]=="S" and val[4]=="E"):

                    

                    pp=1

                

            elif(val[0]=="e" and val[1]=="a"):

                if(val[3]=="k" and val[4]=="k"):

                    self.karistirici=val.split(":")

                    ui.label_103.setText(str(self.karistirici[2]))

                    

                elif(val[3]=="c" and val[4]=="c"):

                    self.ccdegeri=val.split(":")

                    ui.label_102.setText(str(self.ccdegeri[2]))

            elif(val[0]=="l" and val[1]=="t"):

                self.kalansut=val.split(":")

                ui.label4.setText(str(self.kalansut[1]))

            

                



            ### gunluk sicaklik verilerini yazdirma##

            #print("saat"+str(saat))

            #print("dakika"+str(dakika))

            #print(type(saat))

            #print(str(sicaklik))

        except:

           #print("komut bekleniyor")

           val="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"

          



    def verial(self):

        self.thread=serii()

        self.thread.gelenveri.connect(self.degerata)

        self.thread.start()

        print("verial fonksiyonu basladi")


        self.thread2=ping()

        self.thread2.start()



if __name__ == "__main__":

  xas()

  pingbasla=xas()

  pingbasla.verial()


  


Hiç yorum yok:

Yorum Gönder