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)
Пример #2
0
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")
Пример #4
0
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
Пример #5
0
    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()
Пример #6
0
    def setUp(self):
        self.api = METFClient(ESP_HOST)
        self.w = WateriusClassic(self.api)

        self.w.start_i2c()
Пример #7
0
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)
Пример #8
0
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()