Inhoudsopgave:

Sewer'Sway: 3 stappen
Sewer'Sway: 3 stappen

Video: Sewer'Sway: 3 stappen

Video: Sewer'Sway: 3 stappen
Video: 3-КОЛЕСНЫЙ Э-СКУТЕР СКЛАДЫВАЕТСЯ, НАКЛОНЯЕТСЯ И КАТИТСЯ НА НЕРОВНОЙ ПОЧВЕ 2024, November
Anonim
Sewer'Sway
Sewer'Sway

Het huidige proces van rioolreiniging is eerder reactief dan proactief. Telefoongesprekken worden geregistreerd bij een verstopt riool in een gebied. Bovendien is het voor poepruimers moeilijk om in te zoomen op het foutpunt. Ze gebruiken de hit-and-trial-methode om het reinigingsproces in meerdere mangaten in het getroffen gebied uit te voeren, waardoor veel tijd wordt verspild. Bovendien leidt de hoge concentratie van de giftige gassen tot prikkelbaarheid, hoofdpijn, vermoeidheid, sinusitis, bronchitis, longontsteking, verlies van eetlust, slecht geheugen en duizeligheid.

De oplossing is om een prototype te ontwerpen, een klein apparaatje - met een vormfactor van een pen - ingebed in het deksel van een mangat. Het onderste deel van het apparaat dat wordt blootgesteld aan de binnenkant van het mangat terwijl het deksel gesloten is - bestaat uit sensoren die het waterniveau in het riool en de concentratie van gassen detecteren, waaronder methaan, koolmonoxide, kooldioxide en stikstofoxiden. De gegevens worden verzameld naar een hoofdstation, dat via LoRaWAN communiceert met deze apparaten die bij elk mangat zijn geïnstalleerd, en de gegevens naar een cloudserver stuurt, die een dashboard host voor bewakingsdoeleinden. Bovendien overbrugt dit de kloof tussen de gemeentelijke autoriteiten die verantwoordelijk zijn voor het rioolonderhoud en de afvalinzameling. Door deze apparaten in de hele stad te installeren, kan een preventieve oplossing worden gevonden om de locatie van een verstopte rioolleiding te identificeren en te lokaliseren voordat het afvalwater aan de oppervlakte komt.

Benodigdheden

1. Ultrasone sensor - HC-SR04

2. Gassensor - MQ-4

3. LoRa-gateway - Raspberry pi 3

4. LoRa-module - Semtech SX1272

5. NodeMCU

6. Zoemermodule

7. 500mAh, 3.7V Li-ionbatterij

Stap 1:

Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding
Afbeelding

Voor het eerste prototype gebruikte ik een tic-tac (doos met verse pepermuntjes) als behuizing. De bevestiging van ultrasone sensoren is zo gedaan dat de Tx en Rx naar de rioolstroom wijzen. Aansluitingen op de ultrasone sensor en de gassensor zijn zeer eenvoudig. U hoeft alleen de afzonderlijke sensoren van stroom te voorzien en een van de 8 digitale pinnen in de NodeMCU te gebruiken voor het lezen van gegevens. Ik heb de verbanden getekend voor een beter begrip.

Stap 2: Kennismaken met SEMTECH SX1272

Onze volgende stap zou zijn om de bibliotheken op onze NodeMCU te installeren.

U kunt de bibliotheken voor de Semtech LoRa-module vinden via deze link:

Om deze bibliotheek te installeren:

  • Installeer het met behulp van de Arduino-bibliotheekmanager ("Sketch" -> "Bibliotheek opnemen" -> "Bibliotheken beheren…"), of
  • Download een zipbestand van github met behulp van de knop "Download ZIP" en installeer het met behulp van de IDE ("Sketch" -> "Include Library" -> "Add. ZIP Library…"
  • Kloon deze git-repository naar je map Sketchbook/libraries.

Om deze bibliotheek te laten werken, moet je Arduino (of welk Arduino-compatibel bord je ook gebruikt) op de transceiver zijn aangesloten. De exacte verbindingen zijn een beetje afhankelijk van het gebruikte zendontvangerbord en Arduino, dus deze sectie probeert uit te leggen waar elke verbinding voor is en in welke gevallen deze (niet) vereist is.

Merk op dat de SX1272-module op 3,3V werkt en waarschijnlijk niet van 5V op zijn pinnen houdt (hoewel de datasheet hier niets over zegt, en mijn transceiver niet duidelijk kapot ging na per ongeluk 5V I/O een paar uur te hebben gebruikt). Gebruik voor de zekerheid een niveauverschuiver of een Arduino die op 3,3 V draait. Het evaluatiebord van Semtech heeft 100 ohm weerstanden in serie met alle datalijnen die schade zouden kunnen voorkomen, maar daar zou ik niet op rekenen.

De SX127x-transceivers hebben een voedingsspanning nodig tussen 1,8 V en 3,9 V. Het gebruik van een 3.3V-voeding is typisch. Sommige modules hebben een enkele voedingspin (zoals de HopeRF-modules, gelabeld 3.3V), maar andere hebben meerdere voedingspinnen voor verschillende onderdelen (zoals het Semtech-evaluatiebord met VDD_RF, VDD_ANA en VDD_FEM), die allemaal met elkaar kunnen worden verbonden. Alle GND-pinnen moeten worden aangesloten op de Arduino GND-pin(s).

De primaire manier om met de zendontvanger te communiceren is via SPI (Serial Peripheral Interface). Deze gebruikt vier pinnen: MOSI, MISO, SCK en SS. De eerste drie moeten direct worden aangesloten: dus MOSI naar MOSI, MISO naar MISO, SCK naar SCK. Waar deze pinnen zich op uw Arduino bevinden, varieert, zie bijvoorbeeld het gedeelte "Verbindingen" van de Arduino SPI-documentatie. De SS (slave select) aansluiting is iets flexibeler. Aan de SPI-slavezijde (de transceiver) moet deze worden aangesloten op de pin (meestal) met het label NSS. Aan de SPI-master (Arduino)-zijde kan deze pin worden aangesloten op elke I/O-pin. De meeste Arduino's hebben ook een pin met het label "SS", maar dit is alleen relevant als de Arduino werkt als een SPI-slave, wat hier niet het geval is. Welke pin je ook kiest, je moet de bibliotheek vertellen welke pin je hebt gebruikt via de pintoewijzing (zie hieronder).

De DIO (digitale I/O)-pinnen op de zendontvangerkaart kunnen voor verschillende functies worden geconfigureerd. De LMIC-bibliotheek gebruikt ze om onmiddellijke statusinformatie van de transceiver te krijgen. Wanneer bijvoorbeeld een LoRa-transmissie start, wordt de DIO0-pin geconfigureerd als een TxDone-uitgang. Wanneer de transmissie is voltooid, wordt de DIO0-pin hoog gemaakt door de transceiver, wat kan worden gedetecteerd door de LMIC-bibliotheek. De LMIC-bibliotheek heeft alleen toegang nodig tot DIO0, DIO1 en DIO2, de andere DIOx-pinnen kunnen losgekoppeld blijven. Aan de Arduino-kant kunnen ze verbinding maken met elke I/O-pin, aangezien de huidige implementatie geen interrupts of andere speciale hardwarefuncties gebruikt (hoewel dit in de functie kan worden toegevoegd, zie ook de sectie "Timing").

In LoRa-modus worden de DIO-pinnen als volgt gebruikt:

  • DIO0: TxDone en RxDone
  • DIO1: RxTimeoutIn

FSK-modus worden ze als volgt gebruikt:

  • DIO0: PayloadReady en PacketSent
  • DIO2: TimeOut

Beide modi hebben slechts 2 pinnen nodig, maar de tranceiver staat ze niet toe om ze op zo'n manier in kaart te brengen dat alle benodigde interrupts naar dezelfde 2 pinnen worden toegewezen. Dus als zowel de LoRa- als de FSK-modus worden gebruikt, moeten alle drie de pinnen worden aangesloten. De pinnen die aan de Arduino-kant worden gebruikt, moeten worden geconfigureerd in de pintoewijzing in uw schets (zie hieronder). Reset De transceiver heeft een reset-pin die kan worden gebruikt om deze expliciet te resetten. De LMIC-bibliotheek gebruikt dit om ervoor te zorgen dat de chip bij het opstarten in een consistente staat verkeert. In de praktijk kan deze pin losgekoppeld blijven, aangezien de transceiver al in een normale toestand verkeert bij het inschakelen, maar het aansluiten ervan kan in sommige gevallen problemen voorkomen. Aan de Arduino-kant kan elke I/O-pin worden gebruikt. Het gebruikte pinnummer moet worden geconfigureerd in de pintoewijzing (zie hieronder).

De transceiver bevat twee aparte antenne-aansluitingen: een voor RX en een voor TX. Een typisch zendontvangerbord bevat een antenneschakelchip, waarmee een enkele antenne tussen deze RX- en TX-verbindingen kan worden geschakeld. Een dergelijke antenneschakelaar kan meestal worden verteld welke positie deze moet zijn via een invoerpin, vaak aangeduid met RXTX. De eenvoudigste manier om de antenneschakelaar te bedienen, is door de RXTX-pin op de SX127x-transceiver te gebruiken. Deze pin wordt automatisch hoog ingesteld tijdens TX en laag tijdens RX. De HopeRF-kaarten lijken bijvoorbeeld deze verbinding te hebben, zodat ze geen RXTX-pinnen blootleggen en de pin kan worden gemarkeerd als ongebruikt in de pintoewijzing. Sommige boards leggen de antenneschakelaarpin bloot, en soms ook de SX127x RXTX-pin. Het SX1272-evaluatiebord roept bijvoorbeeld de voormalige FEM_CTX en de laatste RXTX aan. Nogmaals, deze eenvoudig aan elkaar te verbinden met een jumperdraad is de gemakkelijkste oplossing. Als alternatief, of als de SX127x RXTX-pin niet beschikbaar is, kan LMIC worden geconfigureerd om de antenneschakelaar te bedienen. Sluit de besturingspin van de antenneschakelaar (bijv. FEM_CTX op het Semtech-evaluatiebord) aan op een I/O-pin aan de Arduino-zijde en configureer de pin die wordt gebruikt in de pinkaart (zie hieronder). Het is echter niet helemaal duidelijk waarom de transceiver de antenne niet rechtstreeks zou willen bedienen.

Stap 3: 3D-printen van een behuizing

3D-printen van een behuizing
3D-printen van een behuizing
3D-printen van een behuizing
3D-printen van een behuizing

Toen ik alles eenmaal in gebruik had, besloot ik een behuizing voor de module in 3D te printen voor een mooier ontwerp.

Met het eindproduct in de hand was installatie in het mangat en het verkrijgen van realtime resultaten op een dashboard eenvoudig. De realtime gasconcentratiewaarden met de waterpeilindicatie stelden de autoriteiten in staat om proactief te handelen en het probleem op een veiligere manier aan te pakken.

Aanbevolen: