{"id":1172,"date":"2021-04-27T10:09:54","date_gmt":"2021-04-27T09:09:54","guid":{"rendered":"http:\/\/www.igfasouza.com\/blog\/?p=1172"},"modified":"2021-04-27T10:41:23","modified_gmt":"2021-04-27T09:41:23","slug":"kafka-weather-station","status":"publish","type":"post","link":"http:\/\/www.igfasouza.com\/blog\/kafka-weather-station\/","title":{"rendered":"Kafka weather station"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/Kafka_weatherstation.jpg\" alt=\"\" width=\"909\" height=\"462\" class=\"alignnone size-full wp-image-1173\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/Kafka_weatherstation.jpg 909w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/Kafka_weatherstation-300x152.jpg 300w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/Kafka_weatherstation-768x390.jpg 768w\" sizes=\"auto, (max-width: 909px) 100vw, 909px\" \/><\/p>\n<p><b>What\u2019s the craic?<\/b><\/p>\n<p>In this blog, I want to set up a base use case that I can explore in future blogs. The weather stations are a simple idea where I can use a different source of data to get temperature, pressure, or humidity, send this to a Kafka topic, add an aggregator to do some Kafka Streams, like calculate average per hour and on the end, I can create several topics to play around the idea. I can add some kind of visualization and so on. It is a simple idea, but it is an idea that I can explore a lot of scenarios and I can easily expand and add more things.<\/p>\n<p>I can explore not only Kafka, local, or cloud, but I can explore some frameworks, program languages, some tools for visualization, and of course I can add some hardware.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/PXL_20210408_093153928-1-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" class=\"alignnone size-full wp-image-1175\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/PXL_20210408_093153928-1-scaled.jpg 2560w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/PXL_20210408_093153928-1-300x225.jpg 300w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><br \/>\n<small>Picture 1: Hats that I can use to generate some data<\/small><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/Pi_hats_visualization.jpg\" alt=\"\" width=\"505\" height=\"430\" class=\"alignnone size-full wp-image-1182\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/Pi_hats_visualization.jpg 505w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/Pi_hats_visualization-300x255.jpg 300w\" sizes=\"auto, (max-width: 505px) 100vw, 505px\" \/><br \/>\n<small>Picture2: Hats that I can use for visualization<\/small><\/p>\n<p>I created a <a href=\"https:\/\/github.com\/igfasouza\/Kafka-weather-station\" rel=\"noopener\" target=\"_blank\">GitHub<\/a> where I will add all links and codes for my blogs related to this idea.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/raspberry_kafka-1024x476.png\" alt=\"\" width=\"640\" height=\"298\" class=\"alignnone size-large wp-image-1179\" srcset=\"http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/raspberry_kafka-1024x476.png 1024w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/raspberry_kafka-300x139.png 300w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/raspberry_kafka-768x357.png 768w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/raspberry_kafka-1536x713.png 1536w, http:\/\/www.igfasouza.com\/blog\/wp-content\/uploads\/2021\/04\/raspberry_kafka-2048x951.png 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><br \/>\n<small>Picture3: Use Case<\/small><\/p>\n<h2>Use Case<\/h2>\n<p>Submit temperature data to a Kafka topic every 5 seconds. Ideally, I\u2019ll add more than one source, like 2 different sensors or weather APIs and so on. Possibility to explore the Producer and Kafka connect APIs.<\/p>\n<p>Create an aggregator where I can explore the Stream APIs, I can use Kafka Stream or KSQL, and do some ETL.<\/p>\n<p>Create different topics for different sensor data and aggregation values.<\/p>\n<p>Use the Consumer Kafka APIs to read the values and create some visualization.<br \/>\nIt can send the data to some kind of storage, like a database, object store, or Hadoop.<\/p>\n<p>I can explore this idea using Kafka at the Edge or on Cloud, and I can combine this with IOT, MQTT, and Advanced Message Queuing Protocol (AMQP).<\/p>\n<p>I can combine with Spark, Storm Flink, and others Streaming tools.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What\u2019s the craic? In this blog, I want to set up a base use case that I can explore in future blogs. The weather stations are a simple idea where I can use a different source of data to get&hellip; <a href=\"http:\/\/www.igfasouza.com\/blog\/kafka-weather-station\/\" class=\"more-link\">Continue Reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1179,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,24],"tags":[7,13],"class_list":["post-1172","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kafka","category-raspberry-pi","tag-kafka","tag-raspberry-pi"],"_links":{"self":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts\/1172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/comments?post=1172"}],"version-history":[{"count":6,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts\/1172\/revisions"}],"predecessor-version":[{"id":1186,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/posts\/1172\/revisions\/1186"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/media\/1179"}],"wp:attachment":[{"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/media?parent=1172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/categories?post=1172"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.igfasouza.com\/blog\/wp-json\/wp\/v2\/tags?post=1172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}