Рубрики
Без рубрики

Создайте смарт-почтовый ящик с помощью Sigfox и Pycom

Узнайте, как создать Sigfox Mail Notifier, используя WIA и Pycom Sypy. Теги с Python, Opensource, IoT, Учебник.

Привет народ,

Сегодня я собираюсь показать вам, как создать почтовый уверенник Sigfox, используя WIA и Pycom Sypy.

Это руководство предполагает, что вы уже подключили Sigfox в WIA, если у вас нет, пожалуйста, нажмите здесь Чтобы найти учебное пособие для начальных данных Sigfox и публикующих данных в WIA.

  • Подключите Sypy до платы расширения. (Логотипы Pycom должны столкнуться с таким же образом)
  • Подключите антенну SIGFOX к Sypy. Соединение – это небольшой золотой круг на левом нижнем углу SIPY-доски. Просто оснастите антенну на месте. [UPL-Image-Preview URL = https://s3-eu-west-1.amazonaws.com/wia-flarum-bucket/2018-07-13/1531486321-146149-sipy-antenna.png Несомненно

Для ультразвукового датчика HC-SR04 вам необходимо подключить следующие контакты к Pycom Sypy:

  • HC-SR0 | Пищевой
  • VCC -> VIN
  • Trig -> G8
  • echo -> g7
  • Gnd -> gnd

В атоме:

  • Создайте новую папку для вашего проекта. Я собираюсь позвонить в My Sigfox-mailbox
  • В Атом пойти в Файл> Новое окно открыть новое окно

  • Добавьте новую созданную папку, нажав Файл> Добавить папку проекта и навигации к этому

  • Если Пимакр Плагин не открыт в нижней части окна атома, нажмите на стрелку на правой стороне, чтобы открыть ее

  • Выберите Настройки> Настройки проекта Отказ В поле адреса замените значение с именем устройства с шага выше E.g. /dev/tty.usbmodempy343431 (Mac OS X), COM3 (Windows), /dev/ttyacm0 (Linux) затем сохранить файл

Нам понадобится три файла для нашего приложения:

  • boot.py который работает, когда устройство включено
  • main.py где находится наш основной код
  • Ultrasonic.py Где наши функции для получения расстояния и калибровки

В атоме:

  • Щелкните правой кнопкой мыши на вашем проекте и нажмите «Новый файл». Введите boot.py как имя файла

  • Скопируйте и вставьте код ниже в файл

from machine import UART
import machine
import os

uart = UART(0, baudrate=115200)
os.dupterm(uart)

machine.main('main.py')
  • Щелкните правой кнопкой мыши на вашем проекте и нажмите «Новый файл». Введите main.py как имя файла

  • Скопируйте и вставьте код ниже в файл

import time
import pycom
import socket
from network import Sigfox
from machine import Pin, Timer
import ultrasonic


pycom.heartbeat(False)

echo = Pin(Pin.exp_board.G7, mode=Pin.IN)
trigger = Pin(Pin.exp_board.G8, mode=Pin.OUT)
trigger(0)

# Get the chronometer object
chrono = Timer.Chrono()

# init Sigfox for RCZ1 (Europe)
sigfox = Sigfox(mode=Sigfox.SIGFOX, rcz=Sigfox.RCZ1)
# create a Sigfox socket
s = socket.socket(socket.AF_SIGFOX, socket.SOCK_RAW)
# make the socket blocking
s.setblocking(True)
# configure it as uplink only
s.setsockopt(socket.SOL_SIGFOX, socket.SO_RX, False)


calibrated_distance = ultrasonic.calibration(chrono, trigger, echo, 1)
mailed_distance = 0
while True:
    time.sleep(30)
    distance = ultrasonic.getDistance(chrono, trigger, echo)
    print("distance: {}, calibration: {}".format(distance, calibrated_distance))
    if distance < calibrated_distance:
        if distance != mailed_distance:
            s.send('') # Send 1 bit
            print("you got mail")
            mailed_distance = ultrasonic.calibration(chrono, trigger, echo)

  • Щелкните правой кнопкой мыши на вашем проекте и нажмите «Новый файл». Введите Ultrasonic.py как имя файла

  • Скопируйте и вставьте код ниже в файл

from machine import Pin, Timer
import pycom
import time
import socket

def calibration(chrono, trigger, echo, led = False):
    if led:
        pycom.rgbled(0x7f0000) # red
    prev_distance = 0
    distance = getDistance(chrono, trigger, echo)
    print("calibration distance is {}".format(distance))
    count = 0
    while True:
        prev_distance = distance
        distance = getDistance(chrono, trigger, echo)
        while prev_distance == distance:
            count+=1
            print("count: {}".format(count))
            if count > 5:
                if led:
                    pycom.rgbled(0x007f00) # green
                    time.sleep(1.5)
                    pycom.rgbled(0) # off
                return distance
            time.sleep(5)
            prev_distance = distance
            distance = getDistance(chrono, trigger, echo)
        else:
            count = 0

def getDistance(chrono, trigger, echo):
    chrono.reset()
    trigger(1)
    time.sleep_us(10)
    trigger(0)

    while echo() == 0:
        pass
    chrono.start()

    while echo() == 1:
        pass
    chrono.stop()

    distance = chrono.read_us() / 58.0
    if distance > 400:
        return -1
    else:
        return int(distance)

    time.sleep(1)

Структура вашей папки должна выглядеть так:

  • ultrasonic.py

  • boot.py

  • main.py

Нажмите Загрузить В плагине Pymakr в нижней части окна в атоме и отправьте код на свою доску Pycom. Теперь перейдите на панель инструментов WIA, и вы должны увидеть отображаемые данные в разделе отладчика вашей панели инструментов.

Для правильной работы датчика необходимо управлять, необходимо калибровать расстояние внутри вашего почтового ящика.

Калибровка

Чтобы откалибровать датчик, поместите датчик в почтовый ящик, где его подходит лучше всего. Питание доски; Когда светодиод на доске красный, датчик калибровка; После того, как светодиод мигает зеленым, датчик был откалиброван. Датчик требует не менее 2 см пространства для того, чтобы он был правильно управлять.

Теперь, когда почта вставлена в ваш почтовый ящик, расстояние будет уменьшено с калиброванного расстояния, а код опубликует событие через Sigfox в WIA.

Теперь для следующего шага, как только мы получим событие SIGFOX в WIA, мы отправим уведомление любым подключенным телефонам, которые есть почта. Для этого нам нужно построить поток.

Перейдите к вашему приборной панели WIA и в пространстве, где удерживается ваше устройство Sigfox. Оттуда щелкните значок потока в левом меню, чтобы пойти на ваши потоки.

Теперь, чтобы создать свой поток, вы можете назвать его все, что вам нравится. Как только вы создали поток, вы должны быть доставлены в студию потока.

В потоке студии:

  • Перетащите Узел спускового мероприятия с левой стороны на холст

  • Нажмите на узел и введите Sigfoxdatauplink в качестве Название события

  • Включите ваше устройство SIGFOX в качестве источника события

Теперь мы собираемся добавить уведомление о событии SIGFOX, поэтому мы получаем уведомление о нашей входящей почте. Для этого вам потребуется мобильное приложение WIA. Вы можете скачать его для iOS здесь и андроид здесь Отказ

В редакторе студии потока:

  • Перетащите узел уведомления и введите следующий текст
You've got Mail!

Теперь вы должны получать данные Sigfox на ваше мобильное устройство.

Оригинал: “https://dev.to/wiaio/build-a-smart-mailbox-with-a-sigfox-and-pycom-167”