{"id":21241250,"url":"https://github.com/icyjoseph/home-iot","last_synced_at":"2026-04-04T20:33:02.550Z","repository":{"id":37738887,"uuid":"170082454","full_name":"icyJoseph/home-iot","owner":"icyJoseph","description":"IoT Project combining Arduino, Raspberry, SocketIO and React","archived":false,"fork":false,"pushed_at":"2020-08-18T14:51:34.000Z","size":1043,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-24T10:51:30.424Z","etag":null,"topics":["arduino","johnny-five","raspberry-pi","react","socket-io"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/icyJoseph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-11T06:58:59.000Z","updated_at":"2022-06-22T08:49:07.000Z","dependencies_parsed_at":"2022-08-24T16:00:43.576Z","dependency_job_id":null,"html_url":"https://github.com/icyJoseph/home-iot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/icyJoseph/home-iot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icyJoseph%2Fhome-iot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icyJoseph%2Fhome-iot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icyJoseph%2Fhome-iot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icyJoseph%2Fhome-iot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/icyJoseph","download_url":"https://codeload.github.com/icyJoseph/home-iot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icyJoseph%2Fhome-iot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31413269,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","johnny-five","raspberry-pi","react","socket-io"],"created_at":"2024-11-21T00:55:05.743Z","updated_at":"2026-04-04T20:33:02.530Z","avatar_url":"https://github.com/icyJoseph.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Home IoT\n\nThis project uses two sensors:\n\n- A soil humidity sensor\n- A thermometer\n\nThese collect data from a plant and the air temperature around it.\n\nAnd it uses two controllers:\n\n- `Raspberry PI`\n- `Arduino UNO`\n\n## Architecture\n\nThe two sensors are connected to an `Arduino UNO` board.\n\nThe `Arduino UNO` board is running tethered, via serial-bluetooth or serial-USB to computer running [`Johnny-Five`](http://johnny-five.io/).\n\n`Johnny-Five` is a JavaScript library, which allows us to communicate with an `Arduino` or `Raspberry PI`.\n\nIn this case, the `Arduino UNO` board is tethered to a `Raspberry PI`.\n\n### Raspberry PI\n\nThe `Raspberry PI`, is a higher order instance in this architecture. Through a `nodejs` script it invokes the `Johnny-Five` library to setup an `Arduino UNO` instance, and then configures how to behave upon successful connection, `ready` state.\n\nThe `ready` state furthermore triggers the configuration of two sensor interfaces and indicates how to react when the readings change.\n\nThis changes are stored, and every 50 data points a log file is created. Every time there is a change, a change event is emitted using `SocketIO` through port `1337`.\n\n### Arduino UNO board\n\nThe `Arduino UNO` board is running `configurableFirmdata` firmware, to handle 1-wire digital read outs.\n\nThe board is also enabled to use an `HC-06` as bluetooth slave to remotely reach other devices and have its data be consumed through a serial port. This is in practice a bluetooth to serial.\n\nHowever, for testing and because of stability issues the board is currently using its serial to USB interface.\n\n### Soil Humidity Sensor\n\nThis sensors offers analog output. It follows then that the precision depends on the ADC number of bits.\nFor this setup ten bits are used, meaning that the peak reading is 1023, and that should indicate 100% humidity.\n\n```javascript\nconst soil = new five.Sensor({ pin: \"A0\", freq: 250, threshold: 20 });\n```\n\n\u003e More on the sensor [here](https://learn.sparkfun.com/tutorials/soil-moisture-sensor-hookup-guide/all).\n\n### DS18B20 - Thermometer\n\nThis sensor offers a digital interface to read its 12 bits register for temperature. Therefore it is connected to a digital input, D2 in the Arduino UNO board.\n\n```javascript\nconst thermometer = new five.Thermometer({\n  controller: \"DS18B20\",\n  pin: 2,\n  freq: 250\n});\n```\n\n\u003e More on the sensor [here](https://create.arduino.cc/projecthub/TheGadgetBoy/ds18b20-digital-temperature-sensor-and-arduino-9cc806).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficyjoseph%2Fhome-iot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficyjoseph%2Fhome-iot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficyjoseph%2Fhome-iot/lists"}