Taula de continguts:

Postino: El carter va lliurar alguna cosa ?: 6 passos (amb imatges)
Postino: El carter va lliurar alguna cosa ?: 6 passos (amb imatges)

Vídeo: Postino: El carter va lliurar alguna cosa ?: 6 passos (amb imatges)

Vídeo: Postino: El carter va lliurar alguna cosa ?: 6 passos (amb imatges)
Vídeo: Собачий рынок Одесса. КОТЫ/ СОБАКИ. Пошли на БАРАХОЛКУ а купили ПОПУГАЯ. 2024, De novembre
Anonim
Postino: el carter va lliurar alguna cosa?
Postino: el carter va lliurar alguna cosa?

Ni idea meva: un dia un amic em va demanar una manera de comprovar remotament si hi havia cap missatge de correu a la seva bústia. La bústia de correus no es troba al camí de la porta, de manera que, com que és un noi mandrós, es va preguntar si un aparell tecnològic hauria de poder advertir-lo de qualsevol carta a la bústia. Vaig fer una ullada al mercat i no vaig poder trobar cap dispositiu ja preparat i adequat a les seves necessitats, així que em vaig plantejar un repte: per què no dissenyar-lo i construir-lo?

Les restriccions eren:

  • alimentat per bateria amb una vida útil raonable entre els canvis de bateria;
  • Comunicació WiFi;
  • comproveu només un cop al dia si hi havia correu o no;

La pregunta principal era: quin tipus de sensor podia ajustar-se als meus requisits? Un sensor de proximitat no podia funcionar, ja que la comprovació s’havia de fer només un cop al dia i no en temps real; cap sensor de pes tampoc, ja que això hauria afegit problemes de complexitat i sensibilitat (un full de paper podria ser molt lleuger). La meva elecció es va basar en un sensor de temps de vol (un micro làser). Un cop calibrat per a la mida de la bústia, qualsevol cosa que estigués al centre hauria activat el sensor. Tenint en compte les 3 restriccions, vaig decidir utilitzar un ESP8266 (executant el programari i enllaçant a WiFi), un sensor de temps de vol VL6180 per a la mesura i un rellotge en temps real DS3231 per activar tots els circuits un cop al dia: així era. Va néixer Postino!

Pas 1: parts i components

  • ESP8266-01 (o ESP-12E NodeMCU)
  • VL6108 Sensor de temps de vol
  • DS3231 Rellotge en temps real
  • IRLZ44 MosFET del canal N
  • BC547 Transistor
  • Resistències
  • Bateria CR123

Pas 2: el sensor

El sensor
El sensor

El cor del sistema és el sensor VL6180. Es tracta d’una tecnologia innovadora que permet mesurar la distància absoluta independentment de la reflectància de l’objectiu. En lloc d’estimar la distància mesurant la quantitat de llum reflectida des de l’objecte (que està influenciada significativament pel color i la superfície), el VL6180X mesura amb precisió el temps que la llum triga a viatjar fins a l’objecte més proper i a reflectir-se cap al sensor (Temps -de-vol). Combinant un emissor IR, un sensor d’abast i un sensor de llum ambiental en un paquet refluxable llest per utilitzar tres en un, el VL6180X és fàcil d’integrar i estalvia al fabricant de productes finals llargues i costoses optimitzacions de disseny òptic i mecànic.

El mòdul està dissenyat per a un funcionament de baixa potència. He utilitzat la placa de sortida Pololu que té reguladors de tensió a bord que li permeten treballar en un rang de tensió d’entrada de 2,7 V a 5,5 V.

El sensor permet 3 factors d’escala vàlids que estableixen l’interval màxim de la mesura de 20 a 60 cm, amb diferents sensibilitats. En configurar un factor d’escala d’abast, es pot augmentar l’abast màxim potencial del sensor a costa d’una resolució més baixa. Establir el factor d’escala a 2 proporciona un abast de fins a 40 cm amb una resolució de 2 mm, mentre que un factor d’escala de 3 proporciona un abast de fins a 60 cm amb una resolució de 3 mm. Heu de provar les 3 escales amb les dimensions de la vostra bústia de correu. Com que el meu feia 25 cm (H), vaig utilitzar un factor d’escala = 1.

Pas 3: Personalització del rellotge en temps real

Per al RTC he utilitzat un tauler DS3231 que inclou una EEPROM (inútil per al meu propòsit) i una bateria de mida de moneda. Quan vaig decidir alimentar el RTC mitjançant la bateria del dispositiu principal (un CR123 de 3v), vaig treure la bateria de la moneda; per estalviar energia, també vaig treure l'EEPROM (tallant amb cura els passadors) i el led de bord.

La bateria de monedes no em va ser útil perquè no calia mantenir la data / hora / minut / segon en temps real, però l’RTC només havia de comptar durant 24 hores i després activar l’alarma per encendre el dispositiu.

Pas 4: Altres varis a bord

Altres diversos a bord
Altres diversos a bord
Altres diversos a bord
Altres diversos a bord

L'encesa del dispositiu es realitza mitjançant un transistor i un circuit MosFET, activat per l'alarma RTC. Un cop restablerta l'alarma, el circuit tanca l'alimentació del dispositiu durant un cicle de 24 hores més. Quan s’arriba a l’alarma, el DS3231 commuta un pin d’alç a baix: en condicions normals, el transistor està saturat i es posa curt a la porta de MosFET. Un cop l’alarma porta a terra la base del transistor, s’obre i permet al MosFET tancar el circuit i donar energia a la resta de components.

A més, he afegit un pont “test-1M”. L'objectiu d'aquest commutador és, si està activat, canviar el cicle d'una vegada al dia a un per minut, per tal d'executar proves de desplegament. Per canviar l'interval d'un dia a un minut, primer heu de tancar el pont "Test-C" durant uns 15 segons, passar el període d'activació de l'alarma del rellotge i encendre el dispositiu. Quan hagueu fet les proves, obriu els ponts i reinicieu el dispositiu (alimentació del cicle).

Pas 5: esquema

Esquema
Esquema

Pas 6: programari i lògica

Durant les proves he utilitzat (per raons pràctiques) un controlador NodeMCU, de manera que el programari s’encarrega establint la variable CHIP a “NodeMCU” o “esp8266”.

L’esbós implementa la biblioteca WiFiManager per permetre que el dispositiu es connecti a un punt de connexió WiFi vàlid durant la primera execució. En aquest cas, el dispositiu passa al mode AP, cosa que us permet connectar-vos-hi i triar la xarxa WiFi adequada per unir-vos-hi. Després d'això, la configuració de xarxa es desa a l'EPROM per a cicles posteriors.

La variable REST_MSG conté el missatge http que cal enviar quan el sensor troba un objecte a la bústia de correu. En el meu cas, envia un missatge a un servidor REST domòtic, però el podeu canviar segons vulgueu: un missatge Telegram BOT, un esdeveniment IFTTT WebHook, etc.

La resta de l'esbós es troba a la funció setup (), ja que no s'arriba mai al bucle. Després de les configuracions necessàries per a les diverses biblioteques, el programari estableix l'hora del rellotge a 00:00:01 i l'alarma a un cop al dia (o un cop al minut si el pont "test-1M" està activat). A continuació, fa la mesura, envia la notificació (si es troba algun objecte a la bústia de correu) i restableix el pin d'alarma, apagant el dispositiu. Al final del cicle, només s’encén el RTC, comptant durant 24 hores. El pont Test-1M està connectat al pin RX de l'ESP8266, utilitzat com GPIO-3 mitjançant la configuració: setMode (PIN, FUNCTION_3). Per això, no podeu utilitzar el monitor de sèrie mentre executeu l’ESP8266: la línia “#define DEBUG” (que permet fer totes les impressions en sèrie a l’esbós) només s’utilitza quan s’instal·la un NodeMCU en lloc d’un ESP8266.

L'ESP8266 gestiona la comunicació I2C amb el RTC i el sensor a través dels seus pins GPIO-0 i GPIO-2, inicialitzats a la biblioteca Wire.

El codi complet es pot descarregar des d’aquest enllaç.

Concurs d'assistència tècnica
Concurs d'assistència tècnica
Concurs d'assistència tècnica
Concurs d'assistència tècnica

Accèssit al concurs d'assistència tècnica

Recomanat: