trycoon / liam-esp Goto Github PK
View Code? Open in Web Editor NEWHomemade lawnmower robot
License: MIT License
Homemade lawnmower robot
License: MIT License
I downloaded repository files from github and wonted to open schematics in KiCad however when doing it KiCad shows missing library. Any hint how to fix this?
BTW: great work on this lawn mower software and hardware !!!
Currently clients communicate with mower directly, this has several disadvantages:
REST-API and mower UI is hosted inside mower, this adds lots of code and complexity and takes up lots of precious Flash and RAM space that could be better user for other functionality.
Refreshing the browser on the client, or having several clients connected at once, puts a lot of stress on the low powered mower (ESP32). It almost resembles a DOS-attack and make the mower restart itself since it runs out of memory handling all the requests.
Human readable JSON responses from mower API takes up processing power, memory and WiFi bandwidth, still we want well documented and readable APIs.
We want more history from different sensors in the mower, and for a longer period of time, yet the small memory in the mower prevents us from having that.
WiFi is nice, but the weak PCB-antenna on the ESP-boards requires a lot of WiFi accesspoints to have a constant connection and coverage in your garden. Even the better Wrover-IB with external antenna won't have you connected all the time, unless you have a small garden.
......
A solution to this is to introduce a more powerful computer, placed in the docking station(?), that acts as a mediator/proxy for the mower towards the clients. The mower will report real-time information to docking station and clients will connect to the docking station instead. The advantages could be:
Lots of code could be stripped away from mower, saving memory and CPU cycles. (All WiFi, REST-API and MQTT stuff)
LoRa would be used to connect to docking station instead of WiFi. It will make sure that we always are connected to the docking station (LoRa has 20 Km range, few gardens are THAT big).
Communication between mower and docking station could be done over a small binary protocol that would save memory and bandwidth, like Protocol Buffers.
End user REST API could be more verbose and readable since its hosted on the more powerful computer (Raspberry Pi) in the docking station.
The docking station computer with access to much larger secondary storage could preserve history of sensor readings in a greater extent and for a far longer period of time.
Docking station could relay information to more 3rd-party systems that the current ESP-solution never could (because of memory constraints)
Parts of the mower UI resources (fonts, javascripts libraries, ...) are hosted on the Internet today since they won't in Flash-memory, could in the future be served from the docking station. This makes this a complete off-line (Internet) supported solution.
The same UI could in the future serve several mowers at once.
https://github.com/nanopb/nanopb
https://techtutorialsx.com/2018/10/19/esp32-esp8266-arduino-protocol-buffers/
did anyone have the firmware of the mower?
otherwise we are stuck with old logmessages
Does work Mower do the Job already?
How did you created the Housing. Because of TBD.
This not issue, this is a question
I found your project, and it a very interesting project did you project worked?
do you have some instruction about how to connect everything?
Demo site works correctly?
it offers to download "download.gz" file
I tried chrome and safari from mac
I tried to build your project
but it fails
In file included from .piolibdeps/ESP Async WebServer/src/ESPAsyncWebServer.h:32:0, from src/api.h:6, from src/api.cpp:2: src/WiFi.h:39:5: error: 'AsyncWebServer' does not name a type AsyncWebServer& getWebServer(); // code-smell, we should think of a better way than to expose this inner reference when we need to register routes! ^ In file included from .piolibdeps/ESP Async WebServer/src/ESPAsyncWebServer.h:32:0, from src/api.h:6, from src/api.cpp:2: src/WiFi.h:40:5: error: 'AsyncWebSocket' does not name a type AsyncWebSocket& getWebSocketServer(); // code-smell, we should think of a better way than to expose this inner reference when we need to register routes! ^ src/WiFi.h:41:26: error: 'AsyncWebServerRequest' has not been declared bool isAuthenticated(AsyncWebServerRequest *request); ^ src/WiFi.h:42:33: error: 'AsyncWebServerRequest' has not been declared bool isAuthenticatedSession(AsyncWebServerRequest *request);
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.