{"id":20963825,"url":"https://github.com/mitjafelicijan/nanocloudlogger","last_synced_at":"2025-05-14T09:31:33.255Z","repository":{"id":4812937,"uuid":"5966573","full_name":"mitjafelicijan/nanocloudlogger","owner":"mitjafelicijan","description":"Simple cloud based logger for microcontrollers.","archived":true,"fork":false,"pushed_at":"2020-08-27T13:06:21.000Z","size":59,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T10:53:45.441Z","etag":null,"topics":["arduino","cloud","data-stream","hardware","microcontroller","sensor"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"sebastianbergmann/phploc","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mitjafelicijan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-09-26T13:56:27.000Z","updated_at":"2024-05-07T19:08:14.000Z","dependencies_parsed_at":"2022-09-10T16:51:14.435Z","dependency_job_id":null,"html_url":"https://github.com/mitjafelicijan/nanocloudlogger","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitjafelicijan%2Fnanocloudlogger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitjafelicijan%2Fnanocloudlogger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitjafelicijan%2Fnanocloudlogger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitjafelicijan%2Fnanocloudlogger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mitjafelicijan","download_url":"https://codeload.github.com/mitjafelicijan/nanocloudlogger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254112248,"owners_count":22016719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","cloud","data-stream","hardware","microcontroller","sensor"],"created_at":"2024-11-19T02:48:31.871Z","updated_at":"2025-05-14T09:31:28.239Z","avatar_url":"https://github.com/mitjafelicijan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"NanoCloudLogger\n===============\n\nSimple cloud based logger for devices like microcontrollers.\n\nGeneral information\n-----------------\n\nNano logger provides user to easily store data in a cloud based environment without having to write any code on server side. Idea behind this is that every user can store his data (POST method) in his own stream (usually different stream id for each application) and then access data via basic GET method.\n\nThe reason behind this project is I needed simple solution for prototyping and I didn't want to write web services every time when I needed to store data remotely.\n\nThis tool is for prototyping use only. It was not intended to be used commercially.\n\nEach stream has its own id and can store x number of inputs. Inputs in this case can be sensor data (examples below). This is especially useful for Arduino developers or any kind of telemetry projects.\n\nServer side code is written in Python on top of Google App Engine. Tested and developed on Google App engine v1.7.2.\n\nIn example below I will demonstrate how to use this tool on a project where I have two sensors I call inputs (temperature, photocell) hooked up on a Arduino. Lets assume I am running Google App Engine locally (http://localhost:8080/). \u003cb\u003eAlert: If you will run this service locally all database records will be lost if you will restart service.\u003c/b\u003e\n\nApplication is located in src/loggergae.\n\n\t\tpython /path-to-your-gae-dir/dev_appserver.py /path-to-nano-logger-dir/src/loggergae\n\t\t\n\t\tIf you are using Windows or Mac please check Google App Engine website on information how to run apps.\n\nIf you point your browser to (eg http://localhost:8080) after you run application help is displayed.\n\nInitializing stream\n-----------------\n\nAll you need to do to initialize stream is to give it an ID. Stream ID is alphanumerical string. Streams are read/write and are public. No authentication is needed for accessing and modifying stream. You can add inputs as you go.\n\n\t\tStream example names:\n\t\t\n\t\tapplication1\n\t\tmy_sensor_stream\n\t\thome_automation\n\n\nReading data stream\n-----------------\n\n\t\tExample:\thttp://localhost:8080/api/get?stream=my_sensor_stream\n\t\tAPI url:\t/api/get\n\t\tFormats:\tjson, csv\n\t\tMethod:\t\tGET\n\t\tReturns:\tarray of values\n\nParameters\n\n\t\tstream\tStream identifier.\n\t\tlastid\tOnly outputs records with biggers id than lastid. Useful when fetching realtime data from service and you only need latest results.\n\t\tformat\tDefines type of response output.\n\t\tlimit\tLimits number of output records.\n\nExamples of usage:\n\n\t\thttp://localhost:8080/api/get?stream=my_sensor_stream\n\t\thttp://localhost:8080/api/get?stream=my_sensor_stream\u0026format=json\n\t\thttp://localhost:8080/api/get?stream=my_sensor_stream\u0026lastid=50\u0026limit=5\u0026format=csv \n\nExamples of response:\n\n\t\tJSON\n\t\t[{ \"input\": \"temperature\", \"data\": \"28\", \"id\": 6, \"datetime\": \"2012-09-27 00:54:00.441780\" }, \n\t\t{\"input\": \"photocell\", \"data\": \"897\", \"id\": 5, \"datetime\": \"2012-09-27 00:54:00.439565\" }]\n\t\t\n\t\tCSV\n\t\t6,2012-09-27 00:54:00.441780,temperature,28\n\t\t5,2012-09-27 00:54:00.439565,photocell,897 \n\nAdding to data stream\n--------------------\n\n\t\tExamples:\thttp://localhost:8080/api/set?stream=my_sensor_stream\n\t\tAPI url:\t/api/set\n\t\tMethod:\t\tPOST\n\t\tReturns:\tstatus\n\nExamples of usage:\n\n\t\thttp://localhost:8080/api/set?stream=my_sensor_stream\n\t\t\n\t\tPOST varibles with this request:\n\t\tkey            value\n\t\t--------------------------------\n\t\ttemperature    28\n\t\tphotocell      755\n\t\t...\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmitjafelicijan%2Fnanocloudlogger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmitjafelicijan%2Fnanocloudlogger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmitjafelicijan%2Fnanocloudlogger/lists"}