This. Right now, it's early days, and just about every "platform" is either trying to lock you in now, or will realize that they can't capture the market, so they will start milking their existing customers.
​
Your "Version 1" can be as simple as "all the devices simply POST to a webserver that stuffs the data into a database." Then iterate:
When writing a system like this, everything seems easy until you realize you made a big ball of mud.
The way to avoid problems is to make each part as modular as possible (so it's easy to replace), and eliminate coupling between components. (e.g. if your data analysis part is embedded in your webserver, it will be hard to iterate. 'data analysis' should be de-coupled from 'data collection'.) That's why having a pubsub/queue system really helps.
I suggest you start reading these two links:
https://mosquitto.org/man/mqtt-7.html
https://mosquitto.org/man/mosquitto_pub-1.html
That should cover the basics. For logging purposes, you can either have a subscriber to the topic log all the data or store it in a database. Data is only kept until they are delivered to subscribed clients. Node-RED or HiveMQ can do this for you.
Is this what you're looking for? https://www.amazon.com/IoT-Button-AWS-Cloud-Programmable/dp/B0875QVQJW/ref=sr_1_3
Or is there something else you had in mind?
It was developed by IBM for using in that type of environment. I don't know of any mass market products it's used in but I understand it's been using in things like smart metering.
A semi official response here with lots more details is here: https://groups.google.com/forum/#!topic/mqtt/c1dlCdA5eOc
I know it's not embedded but Facebook messenger on mobile used to use it.
Also look at VPN and UPnP -- just don't assume the VPN connection is immediately running.
https://forum.syncthing.net/t/problems-with-global-discovery-when-using-a-vpn-solved/2140/25
Aslo look at the dropcam study for more thoughts on how do this.
ecc508a is an amazing device to look at.
Yes I work with people who make me paranoid about how to secure things (I come up with 10 fool proof idea's, they come up with 11 devious hacks). Why do you think I still want a BJ42 Land Cruiser just in case!
Article: http://hackaday.com/2017/06/19/intel-discontinues-joule-galileo-and-edison-product-lines/
This just shows some of the dangers for developers out there building IoT products. A manufacturer can discontinue a product line overnight, and this can mean you lose months of development effort.
This should be a lesson that jumping on the latest and greatest often isn't a good idea. Go with something supported, something that has been in the market for a long time, as a base to build upon - preferably something that doesn't tie you to just one vendor. Yes, doing this might require one to increase development time and effort, but you'll end up with a much more robust and future proof product.
Well the possibilities are endless. There are lots of sensors and you can easily use them with Arduino. You can also make your project interesting by incorporating some new techniques and technology. For example use the wind from traffic to spin turbines which creates electricity for your Arduino and help it run without battery or solar power. Something like this:- https://weather.com/science/video/highway-traffic-powers-wind-turbine
But on a much smaller scale.
First, figure out what you really want:
LoraWAN is price competitive and similar tech as Sigfox. LoraWAN is generally more accessible than sigfox too. If your devices are is close proximity (lots of variables on how far the signal reaches, think hundreds of meters to a few km) you will be able to run your own network. Running your own network means no subscription costs.
Edit: here’s an example project: https://www.hackster.io/fomi-T/from-zero-to-build-your-own-lora-network-with-rak833-and-rpi-bc3ee1
Hi
VerneMQ comes with file based authentication and authorization out of the box. Here are links to the docs: http://vernemq.com/docs/configuration/authentication.html & http://vernemq.com/docs/configuration/authorization.html. If this is not enough (and it rarely is for large scale systems), VerneMQ can be extended through it's plugin mechanisms: plain erlang, lua scripts and webhooks.
To get the currently connected clients you can use the vmq-admin session list
command, which will display all current cilent sessions (use with care as it doesn't support paging at the moment).
We're working on introducing an expressive query language (SQL-like) to inspect the state of the broker/cluster.
Currently the best service with a usable "free tier" is Thingspeak ( the service mentioned earlier by /u/mfosker). It's easy to get started with basic uploading and graphing, and if you want more complex data visualization, you can write Matlab code. Their free home user tier is hard capped at 3 million data points per year, and upload connections are hard limited at no more often than every 15 seconds.
My home automation friends rave about HundredGraphs, so I also post electric meter data over there, for example https://www.hundredgraphs.com/dashboard/pinesec
I have been using Raspberry Pi and most importantly Node Red ( https://nodered.org) . It enables you to use a local network only, easily use cloud services or a mixture of both. There is an active community with connection to many available products. MQTT and UI is built in so it is the perfect solution for both experienced programmers and beginners
You will absolutely get banned if detected of running that script. Please use the API:
https://developer.shodan.io/api
There's a free tier and the one-time membership payment helps keep the service alive.
There is nothing to manage beyond setting up the configuration file to your needs (see: https://mosquitto.org/man/mosquitto-conf-5.html). Clients publish and Mosquitto makes sure these messages all arrive where they are supposed to go to (your subscribers). Maybe this image helps:
https://i.ytimg.com/vi/JfWMC9Wh30k/hqdefault.jpg
Anything you want to happen on the arrival of a certain message, or logging the data, or analytics etc. are subscribers you need to implement. Your sensors etc. are publishers to a topic (which you don't have to create in advance) - see the links in my previous post.
I would really suggest using a time series database (TSDB), as it's what they are intended for. I'm partial to InfluxDB, but that's just because it's what I started with for saving sensor data.
I got seriously burned by their PyGate debacle and as a result am very reluctant to purchase from them again.
I ordered in the March directly from their website, and at no point was it made clear that the gateways hadn't even been developed yet.
Over a year of emails and social media posts complaining later, and I finally got my PyGate.
It only talks over UDP to a network server, and the PoE modules that were originally shipped with it had pins soldered incorrectly so it didn't even work on arrival.
The coding environment is, at best, a web-based Arduino IDE and pales into insignificance when compared with a proper development platform such as PlatformIO.org, and as it's all online, you can't update the device code unless your laptop is connected to the internet, which isn't always possible when you're in the middle of a farm!
In short, I'd avoid them due to both the product and the customer experience.
If you want a decent IoT development system, checkout the RAK WisBlock range, it's far easier to use, clicks together, and has an excellent company behind it!
As stated before Hackster.io is full of such things. As a python amateur, I feel like suggesting these two examples * mqtt and micropython *web/smartphone app and zerynth
i've been thinking about using this setup, using arduino instead of lua. essentially you set CH_PD high using the button, which turns on the ESP-01, you then do your stuff and set GPIO2 low, to turn the ESP-01 back off again - no sleep mode crap, this is literally turning the device on and off. edit: my arduino version
In that case, you could use ESP-12 modules. You can get 5 of them on Amazon for less than $12, you can run Arduino code on them directly (no need for a separate microcontroller) and they'll connect up to the sensors and WiFi. They're easy to get on a WiFi network.
Thank you for your interest in Kaa! Since we represent the Kaa crew, we will try to avoid advertizing here - however, to address your question on scalability, we’d like to mention that the platform was architected to scale linearly and elastically to support millions of connected devices. We welcome you to join the discussion in the Kaa Forum if you have any technical questions!
Sorry, I don't know about any home brew options, but when I got solar on my house I got this neurio set up. https://www.amazon.com/Neurio-W1-Home-Energy-Monitor/dp/B0149EE5KS
Might be useful if you decide to get more panels.
Anything as small as the ZigBee or wifi toyu ones? https://www.amazon.com.au/SNOOU-Intelligent-Temperature-Mobilephone-Monitoring/dp/B09SHHT9MX/ref=asc_df_B09SHHT9MX/?tag=googleshopmob-22&linkCode=df0&hvadid=604795818879&hvpos=&hvnetw=g&hvrand=13173129777173012572&hvpone=&a...
They look pretty good. That with USB reflashing and rechargeable battery is perfect.
I have my own android app which I'm actively improving. So far it can create MQTT wudget buttons and a permanent notification with MQTT buttons.
It's freshly on the google play store.
MQTT Tools: https://play.google.com/store/apps/details?id=com.mqtt.mqtools
If I’m understanding what you are needing to do, I would look at UHF transmitter/receiver kits where the receiver has relays such as this one on Amazon:
Just make sure the relays can handle what you intend to switch.
You could have an MQTT server somewhere on the internet or even in your home if you can open a port and have a stable connection. Then you could have the sensors send the data to different topics obviously, and perhaps have different users, passwords and ACL so that everybody can see their own data only (or maybe everyone is ok that all your users can see the data from the other users).
Then get an MQTT client for the phones, e.g. https://play.google.com/store/apps/details?id=net.routix.mqttdash and create a nice GUI with it. Check that you can export the GUI to send it to the other users.
You don't need to invent an API for that. But on the other hand you are already using an API: both ends of your connections (sensors -> MQTT server, and MQTT server <-> apps) know how to talk to each other.
If you want to write a web app, you can also do that of course. Either build it from scratch or use something like Node-RED.
https://www.amazon.com/Leviton-ODC0S-I1W-Self-Contained-Ceiling-Mount-Occupancy/dp/B00192EUFY
The nearest I could find.
Most probably it is an IoT device(a motion sensor) but not sure about its features untill the manufacturer is revealed.
Are you referring to creating a BLE device? It should be possible with the NRF connect app.
https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp
It's features are probably more limited compared to the full BLE spec. If you want to better interact with BLE devices, you can try getting a nRF52 dev kit.
this reminds me of an article i read recently about using chromecast in a hotel room using a portable router (same problem with hotel wifi using captive portals) Specifically this portion:
"Although its rare, if the hotel does have a login/authentication splash page for Ethernet users you can simply visit it with one of your devices (while connected to the wi-fi router). The router has a single IP/MAC address and doles out access (just like your home router) to all the attached devices. Once you accept the terms of agreement with one device through the unified access point the security system will let anything connected to the portable Wi-Fi router, including the Chromecast, pass through just fine."
Potentially you could deploy another router solely for your IoT network, and have that uplinking to the Guest LAN? May be BS, just thinking out loud :)
Ahh, thanks for the explanation. Glad to hear it wasn't a problem with AWS per se.
btw, here's what I've been using to run performance tests. If you're still working on this, you might find it interesting.
https://aws.amazon.com/blogs/iot/device-simulation-with-aws-iot-and-aws-lambda/
Why was AWS IoT going to be so expensive for you? Was this due to the # of messages each device was going to need to send per month? or are you talking about costs beyond just AWS IoT? "The AWS IoT free tier gets you started with 250,000 free messages (published or delivered) per month, for 12 months." after that it's $5 per million messages. source: https://aws.amazon.com/iot-platform/pricing/
Been using this one for over a year. Works flawlessly. At home or remote with HomeKit. Cheap and no subscription.
We plan to make SQL integration a first class citizen of VerneMQ, so it 'just works' out of the box with minimal configuration. For now we indirectly support a bunch of databases (Mongo, Redis, Postgres, Mysql a.o.) via the vmq_diversity
plugin: https://github.com/erlio/vmq_diversity. This plugin enables you to write authentication and authorization logic in Lua and provides a driver for the mentioned database.
So unfortunately for now it's not an 'out-of-the-box' experience.
If you're not afraid of trying out and writing Erlang code, you can also write extension using that. Plugins written in Erlang have the added benefit of being more efficient as VerneMQ is implemented in Erlang. The docs for that and how the plugin system works can be found here: http://vernemq.com/docs/plugindevelopment/
Regarding the current limits of IoT-blockchain that linked article points out, here you can read more information https://thenextweb.com/syndication/2018/04/05/nobody-succeeded-running-iot-blockchain/
By platform you means more software or hardware? - or both?
You've go lots of open-source Apis and software that allows you to connect physical to digital: https://alternativeto.net/software/t6/ (this is an short extract list).
Well, then about Startup deploying End-to-End open-source. I believe the reason why we can't see plenty of them in the market is due to their own maturity. They'd need money to grow and get attractive. But the thing is these start-up didn't provide enough "service". so the big question is : what IoT is used for ? if you could ask this question, I believe many start-ups would pop out. :-)
On the cellular side I can vouch for the Notecard from Blues Wireless (blues.io). Makes adding cellular connectivity pretty easy (prepaid, 500MB of global data etc). There are some projects on Hackster using the Notecard for notifications like you mention: https://www.hackster.io/blues-wireless/projects
Is this what you mean? https://telegram.org/ - I think that could do the triggering (so could IFTTT or Zapier). I'm more curious about how to do the audio bit. And the acknowledgment bit. I guess we could acknowledge on the phone, maybe.
I was just going to suggest them as well. Charles the founder has been providing these for years, having enough time to improve reliability, accuracy, and battery life. This would be a turnkey solution though.
If you're looking to build the system yourself, AND a PIR sensor does not suffice, then I'd recommend: - An edge PC running Camlytics, connected wirelessly to several IP cams (perhaps even existing ones?). From Camlytics you can setup a webhook to forward your data to a white labelled Ubidots dashboard, only when an actual person passes by. - A Blues Wireless-powered device with a local ML model that is optimized for people counting. See an example here for cars.
Hiya! In the spirit of open source and giving back a sliver of the help I've gotten here and elsewhere, I wanted to share my basic starter code for working with Thingspeak.
This is straightforward code for anyone looking to connect sensors to the internet via WiFi with the BME280 as a starting point. I've used this for a dozen or so other sensors and it all works rock solid.
Right now I'm using it to monitor the environment for some microgreens I'm growing, you can see the public data here: https://thingspeak.com/channels/1118897
I'll try to answer any questions, but I'm no expert. Also happy to take critiques if you see areas of improvement!
I think I understand it a bit better now. The idea would be to provide a platform for storing data and monitoring an existing IOT solution? My initial thought was that it would be some framework which could power an IOT device itself. (hence the topology question)
It does trigger something to me about the Node-Red project. In which way are they similar, and where do they diverge?
Actuate means to cause something to behave in a specific way, so in electronics an actuator is something that does something, an output.
Rotary actuators are called motors.
Linear actuators are sometimes called as such but electric ones are more often called solenoids. The term linear actuator more often being used for hydraulic/pneumatic devices.
Liquid affecting actuators are called pumps.
A relay or contactor could be classed as an actuator, in that it causes a load to be powered or shut off.
What type of actuator are you trying to research?
Maybe English isn't your first language or maybe I have misread your post but it seems like you have bought a paintbrush and you want to create the next Van Gogh without first learning to draw.
The creation of even a simple viable simulator (one with enough components to be useful and that will also return an accurate result) is the sort of project one might choose for a master's thesis, not something one builds in a weekend after a little Googling. It requires a good deal of fundamental knowledge.
The current leading open source circuit simulator is still undergoing significant improvement even after 15 years of work by an army of developers. To gain an idea of the scale of the task take a look here: http://ngspice.sourceforge.net/devel.html
InfluxData is a good place to go for this
They have a stack that collects data, stores it, puts it into graphs, and does alerting and data processing.
They do it faaaasssssttttt too.
If you want to self-host, there are a billion ways to do it. (random example). If you are looking for ideas, I'd start with Grafana as your dashboard, then look at the plug-ins to see what kind of time-series data sources you want. For example: Graphite, InfluxDB, Prometheus, etc. Each one has different trade-offs: For example Graphite uses a fixed amount of disk per metric, so logging a metric for years will reduce resolution instead of filling up your disk.)
​
If you don't want to self-host, you should pick one of the bigger cloud providers (e.g. AWS). If you pick some random site, it's very likely that they don't win the startup lottery, and will start squeezing their customers for money in a few years just before going out of business. Anyone can slap together a metrics dashboard, but very few of them will make money at it.
You can also look at https://prometheus.io/ which has more features than graphite/statsd. Either way, you should use https://grafana.com/ to view the metrics. It's super-easy to set up once you have a metrics database.
I've been thinking about this kind of project for some time now. Here is what I intend to use:
The idea is that home-assistant will be the backbone of the system. It is running on a RaspberryPi, on the LAN. This way, even if internet is down, all devices connected to it via the LAN (wifi or wired) can still communicate). It supports a lot of consumer smart things if you intend of buying them.
Then, I'll build some custom sensor/actuators (temperature senor, motion sensor, RGB leds,...) based on these Wemos D1. I'm waiting for them, they should arrive any time soon. I'll have to see how I'll program them : MicroPython, C++ (ArduinoIDE, Platform.io),... It's very easy to integrate your custom devices with home-assistant as it support MQTT protocol : just tell it on which topic it should subscribe or publish.
> Is there anything like this?
Yes and no.
From what you've described, it seems like something any good web programmer could write in 5 minutes. Ideally, you would replace the polling with websockets. But I suspect you're not really fully specifying what you want (and all the fun race conditions/failure modes that can happen.)
But I think [https://minio.io/](minio) might do what you want without programming. It's a web server where you can PUT data into URLs, and later GET it. With security.
I'm using Mosquitto and had some issues with connection drops too, there are definitely hiccups and verbose logs don't help at all. HiveMQ, Emitter.io, and VerneMQ are some that I'd like to try in the future.
Yeah, this is one feature of developer mode (under input> show pointer location) which gives you coordinate information. Never used it before so not sure if it supports multitouch info.
I saw on project where they have mobile 'test beds with an overhead camera
Maybe look at mobile testbed frameworks like https://www.browserstack.com/screenshots
You can buy Lora boards for quite cheap (~$15). I use the Heltec-LoRa-32. Out of the box, they are just 'plain radios' that go tens of miles. If that's enough, just hook one up to your computer to send/receive messages as USB serial. (I recommend the open source PlatformIO for managing your code.)
Alternately, you can use it with LoRaWAN which gives you encryption, triangulation, power management, multi-tenant, and sometimes country-wide coverage (depending on the network). Setting up a LoRaWAN network is very complex (I would not recommend it), but you can pay to get on existing ones.
I've been playing with SORACOM as well. Currently Particle does not support the SORACOM SIM though. I was able to hack it for this project The second I wanted to duplicate my project, things decided to blow up in my face.
There is a bug open for the issue.. Not sure when they'll get around to it (if at all!)
You can create your own setup using the same modem as the Boron. SORACOM would be a viable choice there.
Get an RPi 4 with as much RAM as you can. You can start writing in JavaScript immediately, and branch out to Python (or Go) when you want. You can do it in a GUI environment, or drop down and learn the CLI and SSH. You can get USB sticks that talk any radio protocol you want, such as ZigBee, LoRaWAN, NBIoT, etc.
You should also investigate NodeRed and Grafana (and some TimeSeries DBs that Grafana supports).
Later, you can investigate embedded JavaScript on a microcontroller like an ESP32 (or older ESP8266). But this will have lots of awkward limitations to workaround. You won't want to deal with that while learning.
And honestly, most IOT stuff is in C, Go or Rust. Scripting languages don't work so great with limited memory. Most examples you find on the Internet are just "proof of concept" and won't be robust. Many of them are just plain wrong. (For example, many examples of ESP8266 networking code have random "sleep/delay" calls. These are NEVER needed, and only done by lazy programmers who don't understand why their code doesn't work.)
Update: I bought these 5v relays and was able to make it work. https://www.amazon.com/gp/product/B07BVXT1ZK/ref=ppx\_yo\_dt\_b\_asin\_title\_o03\_s00?ie=UTF8&psc=1
I hooked up the relay in a "normally closed mode" as outlined in this pic: https://arduinogetstarted.com/images/tutorial/how-it-works-relay-normally-closed.jpg
Thanks all for the tips!
It's a wifi/programmable LED strip. I keep mine behind the monitor and different services/events can change it's color, light intensity, and turn it on/off.
Arduino for your compute: D1 Mini V3.1.0 WiFi IoT Development Board MicroPython Nodemcu Arduino Compatible (D1 Mini V3.1.0) https://www.amazon.com/dp/B07H22CDQ8/ref=cm_sw_r_cp_api_glt_i_WQB37JMDGKH7M9HNPAME
Sorry, on my phone. *rssi. Signal strength
They’re fairly small. This is what I’m talking about. https://www.amazon.ca/T-Wristband-Programmable-Bracelet-ESP32-PICO-D4-Silicone/dp/B0831D1JWT
It’s cheaper if you get it from Ali express for example.
I bought a camera case off Amazon, cheap and seems to work well.
​
https://www.amazon.com/gp/product/B00R5VZXKY/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
If you are looking for some DIY solutions https://www.amazon.com/Temperature-Humidity-Atmosphetic-BH1750FVI-YellowBlue/dp/B07GPBBY7F , you can add sound detector sensor or microphone for sound.
I have used the amazon kit by myself its fairly simple.
I just checked with our guys and I'm told that our simulator is available for free on the play store https://play.google.com/store/apps/details?id=com.software_logistics.simulator&hl=en_US will help you accomplish what you are looking for. I only know enough to be dangerous, so I'm trusting their opinion :) Good luck, let me know how it works out.
If you're after quick and cheap, then you could do worse than the Ds18b20 sensors in the waterproof housing ( https://www.amazon.co.uk/dp/B00CHEZ250/) - they use the 1-wire protocol so are easy to get working with the devices you're looking at using.
If you want something a bit more substantial and industrial, DM me and I'll contact some of our suppliers to get some options for you.
How hard did you look?
Zooz Z-Wave Plus S2 Power Strip ZEN20 VER. 2.0 with Energy Monitoring and 2 USB Ports, Works with Vera, Wink, SmartThings https://www.amazon.com/dp/B01HAQHQ5I/ref=cm_sw_r_cp_api_i_T2SnCb3SVEF5T
Aeotec Siren Gen5, Z-Wave Plus, 105dB siren with strobe alerts, Plug-in, Backup battery https://www.amazon.com/dp/B00PKKM2HO/ref=cm_sw_r_cp_apa_1GPvBbMBZWJTG
It's super loud and note that you cannot dynamically set the alarm tone through automations. That's the only bad part about it.
Some cell shields are only 2G GSM. This may become problematic in the next couple years. AT&T has talked about shutting down their 2G networks.
This one I believe is 2G only: https://www.amazon.com/SainSmart-Small-GPRS-SIM900-Arduino/dp/B00TEUAJMQ/ref=sr_1_1
So googling, it seems AT&T is still running 2G on the 850mhz band. Likely because they have a HUGE cellular IoT footprint - getting rid of 2G completely is likely going to be difficult/expensive for their industrial customers.
Again, just rumor, but it's something I've heard about and am getting squirrelly about when looking to build a home-security system. I want something that can text/call out, and is relatively future proof for the next 3-5 years.
By more specific, do you mean, "Can you be more specific about what the combination of the disciplines of machine learning and IoT will involve?"
I can certainly give it my best shot.
Taking directly from the book, "Predictive Learning," by Vladimir Cherkassky, a former professor of mine,
> Most learning algorithms developed in various fields try to estimate models providing good prediction (or generalization). [...] However, estimating a good predictive model from finite noisy data is an inherently difficult problem.
We have seen a massive growth in computational capability server-side, decrease in the cost of edge-side "sensing," as well as edge-side computational capability. There are far more permutations and combinations of nodes and ways of sensing things than there have ever been before.
Basically whether you are an electrical engineer or a data scientist or anyone in between, we are all essentially applied mathematicians - so it's important to recognize the combination of this, "server side," stuff with "edge-side" stuff as being a domain in it of itself, because of the sheer number of possibilities of the ways we could look at architecting devices and data. Looking at the abstract combination of IoT and Machine Learning would be akin to combinatorics as a branch of mathematics.
The argument, "loading the edge with fancy techniques is missing the mark," presumes one possible solution among a vast array of possibilities. IoTML is meant to widen the discussion to many different possibilities, and bring different practitioners together to better understand the different possibilities of what the future might hold.
Thanks for the info, it;s quite pricey, but I might consider it later. I will try the powered usb hub. What kind do you use? Could you recommend any USB powered hub that would work? Thank you in advance.
By the way, do the usb sticks like this https://www.amazon.de/4G-Systems-Stick-P14-HSDPA/dp/B003QCJHQC/ref=pd_cp_147_1?_encoding=UTF8&psc=1&refRID=39T04GTF4JJB6QPQJESG have many connection problems with Raspberry Pi? Or will it work? If there is any other and better usb styick that support 3G and works out of the box with raspberry pi, let me know.
I'd say try the Amazon Echo to begin with. Maybe a smart thermostat (Nest?) or a collection of smart lights.
^That's ^why ^I'm ^here, ^I ^don't ^judge ^you. ^PM ^/u/xl0 ^if ^I'm ^causing ^any ^trouble. ^WUT?
I am currently writing a paper on the IoT and found "Designing the Internet of Things" by Adrian McEwen and Hakim Cassimally a good start. If you want to get more thorough I'd recommend the IEEE Internet of Things Journal.