def test_blynk(self): # Blynk build id NodeMCU LED # https://lowvoltage.github.io/2017/07/09/Onboard-LEDs-NodeMCU-Got-Two api = METFClient(ESP_HOST) pin = LED_BUILTIN_AUX api.pinMode(pin, OUTPUT) api.digitalWrite(pin, LOW) api.delay(1000) api.digitalWrite(pin, HIGH)
def test_button(host): # Wait You press button # https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/ api = METFClient(host) api.pinMode(D5, INPUT_PULLUP) assert api.digitalRead(D5) == HIGH assert api.wait_digital(D5, LOW, 3.0), "Button wasn't pressed"
def test_button(self): # Wait You press button # https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/ api = METFClient(ESP_HOST) api.pinMode(D5, INPUT_PULLUP) # check D5 is HIGH self.assertEqual(api.digitalRead(D5), HIGH) # 3 seconds for press button self.assertTrue(api.wait_digital(D5, LOW, 3.0), "Button wasn't pressed")
def blynk(host): # Blynk build id NodeMCU LED # https://lowvoltage.github.io/2017/07/09/Onboard-LEDs-NodeMCU-Got-Two api = METFClient(host) pin = LED_BUILTIN_AUX api.pinMode(pin, OUTPUT) api.digitalWrite(pin, LOW) assert api.digitalRead(pin) == LOW api.delay(1000) api.digitalWrite(pin, HIGH) assert api.digitalRead(pin) == HIGH
parser.add_argument('--board', default='2c', help='Waterius 2c or 4c') parser.add_argument('--i2c', action='store_true', help='Setup i2c in ESP') parser.add_argument('--mode', action='store_true', help='Send mode command') parser.add_argument('--sleep', action='store_true', help='Send sleep command') parser.add_argument('--header', action='store_true', help='Send get header command') parser.add_argument('--wakeup', action='store_true', help='Imitation of button press') parser.add_argument('--impulse', type=int, default=0, help='Send impulse') parser.add_argument('--imitation', action='store_true', help='Imitation of waterius ESP turn on for transmitting') args = parser.parse_args() if args.help: print parser.format_help() sys.exit(1) api = METFClient(args.host) if args.board == '2c': w = WateriusClassic(api) elif args.board == '4c': w = Waterius4C2W(api) if args.i2c: w.start_i2c() if args.wakeup: w.wake_up() if args.mode: w.get_mode()
def setUp(self): self.api = METFClient(ESP_HOST) self.w = WateriusClassic(self.api) self.w.start_i2c()
def test_i2c(host): try: api = METFClient(host) api.pinMode(D2, INPUT) # Сигнал о пробуждении устройства assert api.wait_digital(D2, HIGH, 5.0) api.delay(20) # Поехали общаться api.i2c_begin(0, 2) api.i2c_setClock(100000) api.i2c_setClockStretchLimit(1500) addr = 10 ret = api.i2c_ask(addr, 'M', 1) # 'M' mode ret = api.i2c_ask(addr, 'B', 10) # 'B' get data except HTTPError as err: log.error(err.response.text) raise Exception(err.response.text)
class TestGetHeader(unittest.TestCase): def setUp(self): self.api = METFClient(ESP_HOST) self.w = WateriusClassic(self.api) self.w.start_i2c() def test_header(self): try: # имитируем нажатие кнопки, ждем HIGH self.w.wake_up() assert self.w.get_mode() == self.w.TRANSMIT_MODE header = self.w.get_header() #self.assertEqual(self.w.ATTINY_VER, header.version) self.assertGreater(header.voltage, 2700) self.assertLess(header.voltage, 3500) self.w.send_sleep() self.w.wait_off() finally: self.w.manual_turn_off() def test_counter(self): try: self.w.wake_up() self.w.start_i2c() assert self.w.get_mode() == self.w.TRANSMIT_MODE header = self.w.get_header() self.w.send_sleep() log.info('ESP: impules0={}'.format(header.impulses0)) log.info('ESP: impules1={}'.format(header.impulses1)) # Ждем когда снимет питание self.w.wait_off() log.info('ESP -- impulses --- ') self.w.impulse() self.w.wake_up() self.api.i2c_begin(self.w.sda, self.w.sdl) assert self.w.get_mode() == self.w.TRANSMIT_MODE header2 = self.w.get_header() self.w.send_sleep() self.w.wait_off() log.info('ESP: header 2') log.info('ESP: impules0={}'.format(header2.impulses0)) log.info('ESP: impules1={}'.format(header2.impulses1)) assert header2.impulses0 == header.impulses0 + 1 #assert header2.impulses1 == header.impulses1 + 1 finally: self.w.manual_turn_off() def test_counter_while_transmitting(self): """ Включаем, запоминаем текущие показания Делаем 10 импульсов Выключаем Включаем, смотрим, увеличились ли на 10 :return: """ try: self.w.wake_up() self.w.start_i2c() header = self.w.get_header() log.info('ESP: impules0={}'.format(header.impulses0)) log.info('ESP: impules1={}'.format(header.impulses1)) log.info('ESP -- impulses --- ') impulses = 5 for i in range(0, impulses): self.w.impulse() self.w.send_sleep() # Ждем когда снимет питание self.w.wait_off() self.api.delay(2000) self.w.wake_up() self.api.i2c_begin(self.w.sda, self.w.sdl) assert self.w.get_mode() == self.w.TRANSMIT_MODE header2 = self.w.get_header() self.w.send_sleep() self.w.wait_off() log.info('ESP: header 2') log.info('ESP: impules0={}'.format(header2.impulses0)) log.info('ESP: impules1={}'.format(header2.impulses1)) assert header2.impulses0 == header.impulses0 + impulses if not LOG_ON: assert header2.impulses1 == header.impulses1 + impulses finally: self.w.manual_turn_off()