#!/usr/bin/python # -*- coding:utf-8 -*- import smbus import time from pca9534d import PCA9534D address = 0x78 busNumber = 1 bus = smbus.SMBus(busNumber) str = "" class expBoard: def __init__(self, addr, port): self.addr = addr self.bus = smbus.SMBus(port) def write_block_data(self, byte, array): self.bus.write_i2c_block_data(self.addr, byte, array) def write_data(self, value): self.bus.write_byte(self.addr, value) def read_data(self): self.bus.read_byte(self.addr) def read_nbytes_data(self, data, n): return self.bus.read_i2c_block_data(self.addr, data, n) ''' def send_AT(expBoard): at = [65,84,13,10] hex_AT = [0x41,0x54,0xD,0xA] print("---> {}".format(str.join(chr(n) for n in at))) expBoard.write_block_data(0x00,at) time.sleep(0.7) rx = expBoard.read_nbytes_data(0x00, len("ATrrnOKrn")) print(rx) list = [chr(n) for n in rx] ''' def send_Cz(expBoard): Cz = [0x1A] print("---> {}".format(str.join(chr(n) for n in Cz))) expBoard.write_block_data(0x00,Cz) time.sleep(0.7) rx = expBoard.read_nbytes_data(0x00, len("ATrrnOKrn")) print(rx) list = [chr(n) for n in rx] def send_AT_command(expBoard, commandAT): print('Command:', commandAT) hex_list = [ord(c) for c in commandAT] hex_list.append(ord('\r')) hex_list.append(ord('\n')) #print('Hex list:', hex_list) expBoard.write_block_data(0x0,hex_list) #print("---> {}".format(str.join(chr(n) for n in hex_list))) print("--->", hex_list) time.sleep(0.7) rx = expBoard.read_nbytes_data(0x00, len(hex_list)+5) list = [chr(n) for n in rx] rxwoniv = [x for x in rx if x >= 32] listwoniv = [chr(n) for n in rxwoniv] print("<---", rx) print("Resposta:", str.join(listwoniv)) return hex_list def send_data(expBoard,data): hex_data = [ord(char) for char in data] print('Sending:',hex_data) expBoard.write_block_data(0x0,hex_data) def send_sms(expBoard, num, msg): send_AT_command(expBoard,'AT') send_AT_command(expBoard,'AT+CFUN=1') send_AT_command(expBoard,'AT+CMGF=1') send_AT_command(expBoard,'AT+CMGS="'+num+'"') send_data(expBoard,msg) send_Cz(expBoard) def main(): pca9534d = PCA9534D(i2c_bus=1, device_address=0x20) pca9534d.set_rst_low() i2c_bus = expBoard(address, busNumber) i2c_bus.write_data(123) # reset module time.sleep(0.7) i2c_bus.write_data(16) # set baudrate to 57600 time.sleep(0.1) #send_AT(i2c_bus) #send_Cz(i2c_bus) #send_AT_command(i2c_bus,"AT") while True: cmd=input("Enter command: ") if cmd == 'q': print("DEW :D") break elif cmd == 'Cz': send_Cz(i2c_bus) elif cmd == 'sM': print('Sending message') num = input("Telephone number: ") msg = input("Message: ") send_sms(i2c_bus,num,msg) else: send_AT_command(i2c_bus,cmd) time.sleep(0.5) #necesitan, no la verda if __name__ == "__main__": main()