Automation solution to tollbooth issues [human error, ticket vending machine failure, depressing job]. Creates fair pricefeed aggreation using Adapter.js with Chainlink API request with MTA website fee data being webscraped using Puppeteer.

What it does

Tollbooth smart contract with ultrasonic sensors and servo motors. Chainlink node scrapes,filters,scales and aggregates MTA toll fee data with Adapter.js. Chainlink pricefeeds remove need for ERC20 payments. Chainlink Keepers used to close gate [servo] 15 seconds after opened. Ultrasonic sensor sends closeServoGate() Tx with when distance under 30cm AND gate open.

How we built it

In Solidity, Javascript, Python and HTML. Raspberry Pi 4 GPIO pins handle electronics communication.

Challenges we ran into

Deciding what language to use for the ultrasonic sensor. Javascript Node.js packages were not working so I ended up using Python with

Accomplishments that we're proud of

The responsive demo with the ultrasonic sensor and Chainlink Keepers being a backup sensor. Being able to use an IPFS Storage CID inside a Solidity smart contract to point at Javascript logic using an Adapter.js Chainlink request to update toll price states on chain for a custom contract was cool too.

What we learned

That ultrasonic sensors can be used effectively to automate smart contract transactions. IPFS CID Adapter.js request saves gas in the contract compared to the raw Javascript code inside the contract. On top of that, you can have long Javascript code and not have to worry as much about the Spurious Dragon Solidity contract file size limitation (24.576 KB

What's next for HighWei

To inspire more robotics projects with smart contracts. Possibly partner with groups interested in the project.

Built With

Share this project: