Привет народ,
Сегодня я собираюсь показать вам, как создать почтовый уверенник Sigfox, используя WIA и Pycom Sypy.
Это руководство предполагает, что вы уже подключили Sigfox в WIA, если у вас нет, пожалуйста, нажмите здесь Чтобы найти учебное пособие для начальных данных Sigfox и публикующих данных в WIA.
- Pycom Sipy
- Расширение Pycom
- Sigfox совместимая антенна
- Мобильное устройство (iOS или Android)
- Ультразвуковой датчик HC-SR04
- Подключите 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”